diff --git a/docs/TZ.md b/docs/TZ.md index 7e54579..b6a37d9 100644 --- a/docs/TZ.md +++ b/docs/TZ.md @@ -4,7 +4,7 @@ | | | |---|---| -| Версия ТЗ | 0.41 | +| Версия ТЗ | 0.42 | | Дата | 2026-09-22 | | Статус | На обсуждении | @@ -222,7 +222,8 @@ - Аутентификация агентов — **per-user токены** (с 0.34): Bearer-токен из «Токенов MCP» → агент действует от имени своего пользователя и видит только его данные. Переменная окружения `MCP_TOKEN` удалена — старые конфиги агентов получат 401, - пока владелец не создаст токен в «Настройках». + пока владелец не создаст токен в «Настройках». С 0.42 Bearer-токен принимается + и на REST `/api/*` — им ходит браузерное расширение (3.18). - Закрытие задачи агентом (`update_task`/`complete_task`) идёт по тому же общему пути, что и в UI: спавн регулярной, XP, монеты, растение (3.5, 3.13); в открытых вкладках — скромный тост о награде (3.14). @@ -483,6 +484,32 @@ залогинен» — оффлайн-оболочка открывается без редиректа. +### 3.18. Браузерное расширение быстрого захвата (0.42) + +Расширение для Chrome/Firefox (MV3): клик по иконке в трее браузера → попап с двумя +вкладками — «Добавить» и «Активные». Быстрый захват входящих (3.1) вне страницы +сервиса. + +- **Вкладка «Добавить»**: многострочное поле (первая строка — название, + остальное — описание), Ctrl+Enter или кнопка; опциональный выбор проекта + (создание = POST `/api/tasks` + PATCH `project_id`, как в веб-форме). Фидбек — + анимация-галочка и тост «Задача добавлена (+N XP)»; поле очищается, выбранный + проект сохраняется; кнопка «Открыть GNexus Tasks» ведёт на главную. +- **Вкладка «Активные» — только просмотр**: задачи в статусах + `to_do`/`in_progress`/`deferred` (название, чип проекта, метка просрочки, теги); + клик открывает задачу в сервисе, действий в попапе нет. +- **Аутентификация — Bearer MCP-токен** (3.10): сессионная кука сервиса не уходит + запросам из extension-контекста (SameSite=Lax режет cross-site), поэтому попап + ходит на REST `/api/*` с `Authorization: Bearer `. Токен вставляется + один раз из «Настроек → Токены MCP», хранится в `chrome.storage.local`; отзыв + токена отключает расширение (как и агентов, 3.10). +- **Базовый URL настраиваемый**: по умолчанию `http://localhost:15134`; произвольный + адрес задаётся в настройках попапа и запрашивает host-разрешение + (`optional_host_permissions` + `chrome.permissions.request`). +- Сборка — vite + Vue 3 + **gnexus-ui-kit** (тот же кит, что веб-интерфейс); + язык интерфейса — русский. + + ## 4. Нефункциональные требования | Требование | Значение |