Newer
Older
gnexus-tasks / extension / README.md

gntodo-extension — браузерное расширение быстрого захвата

Расширение для Chrome/Firefox (MV3): клик по иконке в трее → попап с двумя вкладками. Требования — docs/TZ.md §3.18.

  • «Добавить» — многострочное поле: первая строка — название задачи, остальное — описание. Ctrl+Enter или кнопка «Добавить»; опционально — проект. Фидбек: анимация-галочка + тост «Задача добавлена (+N XP)».
  • «Активные» — только просмотр: задачи в статусах «в работе/в стеке/отложено»; клик по строке открывает задачу в сервисе (новая вкладка браузера).

Аутентификация

Сессионная кука сервиса из extension-контекста не уходит (SameSite=Lax режет cross-site запросы), поэтому расширение ходит на REST /api/* с Authorization: Bearer <MCP-токен> (тем же механизмом, что и ИИ-агенты на MCP).

Подключение:

  1. Откройте сервис → «Настройки» → «Токены MCP» → создайте токен (gnt_…, показывается один раз).
  2. В попапе расширения вставьте токен → «Подключить».

Отзыв токена в «Настройках» отключает расширение (как и агентов).

Базовый URL настраивается в попапе (шестерёнка): по умолчанию http://localhost:15134; для другого адреса расширение запросит host-разрешение (chrome.permissions).

Сборка

cd extension
npm install          # кит — git-зависимость (см. .npmrc)
npm run build        # vue-tsc + vite build → dist/

npm 12 блокирует postinstall-скрипт esbuild — при первом npm install согласуйте его (npm install-scripts approve esbuild).

Загрузка unpacked

  • Chrome/Chromium: chrome://extensions → «Developer mode» → «Load unpacked» → каталог extension/dist.
  • Firefox: about:debugging#/runtime/this-firefox → «Load Temporary Add-on…» → файл extension/dist/manifest.json (id дополнения задан в browser_specific_settings.gecko.id).

Проверка

E2E-прогон (playwright, persistent context с загрузкой расширения): /tmp/gnt-e2e-ext.mjs — подготовка данных через API, открытие попапа табом из service worker, проверки вкладок/добавления/фидбека и уборка тестовых объектов.