Extension: picker, note composer, recorder + infra (Makefile, prod compose, README)
- MV3 extension for Chrome and Firefox: single codebase, per-entry IIFE
  builds (background / content / options), manifests generated per target
- Background service worker owns all networking (Bearer token from
  storage.local), captureVisibleTab (windowId!), recorder event buffer
  with offset_ms and auto-screenshots on clicks
- Content overlay in a closed shadow root (constructable stylesheets,
  kit CSS fetched from assets/style.css with /assets URL rewrite);
  PickerLayer, NoteComposer (autofocus, Ctrl+Enter submit),
  RecorderBar (step counter, note, stop)
- Options page: server URL, login, default project
- Recorder steps link screenshots by uploaded file id (server accepts
  attachment id or file id); environment/element JSONB serialized with
  mode="json" (datetime captured_at broke inserts)
- e2e harness: headless Chromium + extension, note + recording flows
- Makefile, docker-compose.prod.yml (caddy :8081 + static panel),
  deploy/Caddyfile, README (ru) with extension install and /assets notes

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent bcea6ff commit 9a8d0feb18a0d5b35ea237cdded4d37f392b2d8d
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 1 day ago
Showing 29 changed files
View
Makefile 0 → 100644
View
README.md 0 → 100644
View
deploy/Caddyfile 0 → 100644
View
docker-compose.prod.yml 0 → 100644
View
package-lock.json
View
packages/extension/e2e.mjs 0 → 100644
View
packages/extension/manifest.template.json 0 → 100644
View
packages/extension/package.json 0 → 100644
View
packages/extension/scripts/build-manifest.mjs 0 → 100644
View
packages/extension/scripts/build.mjs 0 → 100644
View
packages/extension/src/background/api.ts 0 → 100644
View
packages/extension/src/background/index.ts 0 → 100644
View
packages/extension/src/background/settings.ts 0 → 100644
View
packages/extension/src/content/index.ts 0 → 100644
View
packages/extension/src/content/overlay/App.vue 0 → 100644
View
packages/extension/src/content/overlay/NoteComposer.vue 0 → 100644
View
packages/extension/src/content/overlay/PickerLayer.vue 0 → 100644
View
packages/extension/src/content/overlay/RecorderBar.vue 0 → 100644
View
packages/extension/src/content/overlay/mount.ts 0 → 100644
View
packages/extension/src/content/overlay/overlay.css 0 → 100644
View
packages/extension/src/lib/messages.ts 0 → 100644
View
packages/extension/src/lib/selector.ts 0 → 100644
View
packages/extension/src/options/Options.vue 0 → 100644
View
packages/extension/src/options/main.ts 0 → 100644
View
packages/extension/src/options/options.html 0 → 100644
View
packages/extension/src/types-gnexus-ui-kit.d.ts 0 → 100644
View
packages/extension/tsconfig.json 0 → 100644
View
packages/extension/vite.config.ts 0 → 100644
View
server/app/routers/reports.py