Minor frontend fixes: nav highlight, agents tab, token autosave, dashboard session previews #21

Merged
forgejo-admin merged 5 commits from feature/13_minor_frontend_fixes into main 2026-09-26 16:04:42 +00:00
Collaborator

Closes #13

Что сделано (по пунктам постановки)

  1. Кнопка «Дашборд» больше не подсвечена как активная на других вкладках — причина была в том, что #/ является префиксом любого хэша. Теперь «Дашборд» активен только на #/, остальные вкладки — по префиксу пути.
  2. Список агентов вынесен в отдельную вкладку «Список агентов» (после «Лог gate»): таблица реестра (имя, адрес, описание, наличие токена), активный агент помечен, клик по строке — выбор активного, кнопка «Проверить» — healthcheck /api/health. Переключалка агентов в шапке сохранена без изменений.
  3. Крестик удаления убран из шапки — удаление теперь только из вкладки «Список агентов» (кнопка «✕ Удалить» с подтверждением).
  4. Кнопка «Сохранить» убрана: она сохраняла Bearer-токен активного агента (поле в шапке) в localStorage, поэтому просто удалить её нельзя — вход бы сломался. Токен теперь сохраняется автоматически при вводе (debounce 300 мс + мгновенно при потере фокуса). Подпись об этом — в title поля и в тексте ошибки 401.
  5. Вкладка «Сессии» убрана. На «Дашборде» последние 2 сессии показаны большими карточками-превью с несколькими последними сообщениями (user/assistant/tool), клик по карточке — полный просмотр. Остальные сессии — списком ниже, с пагинацией (учитывает «резерв» первых двух). Для превью добавлен серверный параметр GET /api/sessions/:id/messages?limit=N (последние N сообщений + total), чтобы не тянуть весь транскрипт.
  6. Дефолт ACTIVE_SESSION_TTL_MIN снижен 15 → 5 минут (src/config.js, шаблон конфига в deploy/install.sh, README, тесты). Уже установленные конфиги не меняются — правка влияет на новые установки; при желании можно вручную поправить строку в /etc/default/pi-web-monitor.

Как проверить

curl -fsSL https://forgejo.lamanshe.ru/forgejo-admin/watcherenish/raw/branch/feature/13_minor_frontend_fixes/deploy/install.sh | sudo bash -s feature/13_minor_frontend_fixes

(ветку можно передать аргументом — это появилось в #12, eeb5e70.)

Затем в UI (http://<IP-агента>:8787):

  • «Дашборд» подсвечен только на главной; на «Лог gate»/«Список агентов» не подсвечен;
  • в шапке нет «✕» и кнопки «Сохранить», токен сохраняется сам;
  • вкладка «Список агентов»: реестр, «Проверить», «✕ Удалить»;
  • дашборд: две большие карточки последних сессий с превью сообщений, клик — полный просмотр; остальные сессии — списком с пагинацией;
  • плашка «Активно сейчас» учитывает окно 5 минут.

Тесты

npm test — 34/34 зелёные (добавлен тест на limit=N, обновлён тест дефолта TTL).
Дополнительно прогнан смоук UI в браузере на тестовых фикстурах: подсветка навигации, добавление/удаление агента через вкладку, автосохранение токена, две превью-карточки + пагинация.

Closes #13 ## Что сделано (по пунктам постановки) 1. **Кнопка «Дашборд» больше не подсвечена как активная на других вкладках** — причина была в том, что `#/` является префиксом любого хэша. Теперь «Дашборд» активен только на `#/`, остальные вкладки — по префиксу пути. 2. **Список агентов вынесен в отдельную вкладку «Список агентов»** (после «Лог gate»): таблица реестра (имя, адрес, описание, наличие токена), активный агент помечен, клик по строке — выбор активного, кнопка «Проверить» — healthcheck `/api/health`. Переключалка агентов в шапке сохранена без изменений. 3. **Крестик удаления убран из шапки** — удаление теперь только из вкладки «Список агентов» (кнопка «✕ Удалить» с подтверждением). 4. **Кнопка «Сохранить» убрана**: она сохраняла Bearer-токен активного агента (поле в шапке) в localStorage, поэтому просто удалить её нельзя — вход бы сломался. Токен теперь сохраняется автоматически при вводе (debounce 300 мс + мгновенно при потере фокуса). Подпись об этом — в title поля и в тексте ошибки 401. 5. **Вкладка «Сессии» убрана**. На «Дашборде» последние **2 сессии** показаны большими карточками-превью с несколькими последними сообщениями (user/assistant/tool), клик по карточке — полный просмотр. Остальные сессии — списком ниже, с пагинацией (учитывает «резерв» первых двух). Для превью добавлен серверный параметр `GET /api/sessions/:id/messages?limit=N` (последние N сообщений + `total`), чтобы не тянуть весь транскрипт. 6. **Дефолт `ACTIVE_SESSION_TTL_MIN` снижен 15 → 5 минут** (`src/config.js`, шаблон конфига в `deploy/install.sh`, README, тесты). Уже установленные конфиги не меняются — правка влияет на новые установки; при желании можно вручную поправить строку в `/etc/default/pi-web-monitor`. ## Как проверить ```bash curl -fsSL https://forgejo.lamanshe.ru/forgejo-admin/watcherenish/raw/branch/feature/13_minor_frontend_fixes/deploy/install.sh | sudo bash -s feature/13_minor_frontend_fixes ``` (ветку можно передать аргументом — это появилось в #12, `eeb5e70`.) Затем в UI (`http://<IP-агента>:8787`): - «Дашборд» подсвечен только на главной; на «Лог gate»/«Список агентов» не подсвечен; - в шапке нет «✕» и кнопки «Сохранить», токен сохраняется сам; - вкладка «Список агентов»: реестр, «Проверить», «✕ Удалить»; - дашборд: две большие карточки последних сессий с превью сообщений, клик — полный просмотр; остальные сессии — списком с пагинацией; - плашка «Активно сейчас» учитывает окно 5 минут. ## Тесты `npm test` — 34/34 зелёные (добавлен тест на `limit=N`, обновлён тест дефолта TTL). Дополнительно прогнан смоук UI в браузере на тестовых фикстурах: подсветка навигации, добавление/удаление агента через вкладку, автосохранение токена, две превью-карточки + пагинация.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
forgejo-admin/watcherenish!21
No description provided.