diff --git a/CLAUDE.md b/CLAUDE.md index 5634ef5..b154ca4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -33,18 +33,17 @@ The README is the primary user-facing documentation and must accurately reflect ## Development Servers -**IMPORTANT**: When the user requests it OR when backend code changes are made (files in `packages/server/`), you MUST restart the standalone server: -1. Kill the existing process on port 8420 -2. Reinstall: `cd packages/server && pip install -e .` -3. Start: `cd && IMMICH_WATCHER_DATA_DIR=./test-data IMMICH_WATCHER_SECRET_KEY=test-secret-key-minimum-32chars nohup python -m uvicorn immich_watcher_server.main:app --host 0.0.0.0 --port 8420 > /dev/null 2>&1 &` -4. Verify: `curl -s http://localhost:8420/api/health` +**IMPORTANT**: When the user requests it OR when backend code changes are made (files in `packages/server/`), you MUST restart the standalone server using this one-liner: +```bash +PID=$(netstat -ano 2>/dev/null | grep ':8420.*LISTENING' | awk '{print $5}' | head -1) && [ -n "$PID" ] && taskkill //F //PID $PID 2>/dev/null; sleep 1 && cd packages/server && pip install -e . 2>&1 | tail -1 && cd ../.. && IMMICH_WATCHER_DATA_DIR=./test-data IMMICH_WATCHER_SECRET_KEY=test-secret-key-minimum-32chars nohup python -m uvicorn immich_watcher_server.main:app --host 0.0.0.0 --port 8420 > /dev/null 2>&1 & sleep 3 && curl -s http://localhost:8420/api/health +``` **IMPORTANT**: Overlays (modals, dropdowns, pickers) MUST use `position: fixed` with inline styles and `z-index: 9999`. Tailwind CSS v4 `fixed`/`absolute` classes do NOT work reliably inside flex/overflow containers in this project. Always calculate position from `getBoundingClientRect()` for dropdowns, or use `top:0;left:0;right:0;bottom:0` for full-screen backdrops. -**IMPORTANT**: When the user requests it, restart the frontend dev server: -1. Kill existing process on port 5173 -2. Start: `cd frontend && npx vite dev --port 5173 --host &` -3. Verify: `curl -s -o /dev/null -w "%{http_code}" http://localhost:5173/` +**IMPORTANT**: When the user requests it, restart the frontend dev server using this one-liner: +```bash +PID=$(netstat -ano 2>/dev/null | grep ':5173.*LISTENING' | awk '{print $5}' | head -1) && [ -n "$PID" ] && taskkill //F //PID $PID 2>/dev/null; sleep 1 && cd frontend && npx vite dev --port 5173 --host > /dev/null 2>&1 & sleep 4 && curl -s -o /dev/null -w "Frontend: %{http_code}" http://localhost:5173/ +``` ## Frontend Architecture Notes diff --git a/frontend/src/routes/telegram-bots/+page.svelte b/frontend/src/routes/telegram-bots/+page.svelte index 445c0ac..13cdcfe 100644 --- a/frontend/src/routes/telegram-bots/+page.svelte +++ b/frontend/src/routes/telegram-bots/+page.svelte @@ -118,7 +118,7 @@ function copyChatId(e: Event, chatId: string) { e.stopPropagation(); navigator.clipboard.writeText(chatId); - snackInfo(`${t('telegramBot.clickToCopy')}: ${chatId}`); + snackInfo(`${t('snack.copied')}: ${chatId}`); } function toggleCommand(botId: number, cmd: string) {