Files
mokosh/.planning/intel/context.md

127 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Context (synthesized from SPEC §1, §9 and DOC)
Background, stakeholders, scope boundaries, and developer-facing operational
context. Functional requirements are in `requirements.md`; technical decisions
are in `decisions.md`; non-functional constraints are in `constraints.md`.
---
## Topic: Project goal
- Source: `Тз расширение фаза1.md` §1 (Контекст и цель)
- Notes:
- Operators work inside a browser and periodically make mistakes that are
hard to diagnose after the fact.
- The goal of Phase 1 is to silently and continuously record an operator's
session so that, on a button press, a self-contained archive of the
session can be exported to the "Downloads" folder for handoff to support.
- Phase 1 is local-only; no server, no AI, no auto-ticketing.
---
## Topic: Phase 1 scope (what is in)
- Source: `Тз расширение фаза1.md` §4, §5, §6, §7, §10; `README.md` §"Особенности"
- Notes:
- Continuous in-memory recording of:
- Last 30 s of active-tab video (`chrome.tabCapture` + MediaRecorder)
- Last 10 min of DOM events via rrweb (cap 5 000 events)
- Last 10 min of user/runtime events (click, input, navigation, js_error,
network_error)
- One-shot screenshot at export time (`chrome.tabs.captureVisibleTab`).
- Local ZIP packaging via JSZip and delivery via `chrome.downloads`.
- Sensitive-data masking for passwords and `[data-sensitive="true"]` fields.
- Single-button popup UI with idle / saving / done state machine.
---
## Topic: Phase 1 non-goals (Phase 2 work)
- Source: `Тз расширение фаза1.md` §9 (Что НЕ входит в Фазу 1)
- Notes — explicitly excluded from Phase 1 and reserved for Phase 2:
- Sending data to a server
- AI-driven diagnostics
- Automatic ticket creation
- Analytics dashboard
- Audio recording
---
## Topic: Developer workflow (install, build, debug)
- Source: `README.md` §"Установка и запуск", §"Отладка", §"Структура проекта"
- Provenance: This topic is DOC-only — the SPEC does not specify a build
toolchain. Per precedence `SPEC > DOC`, any future SPEC/ADR that prescribes a
different toolchain auto-overrides what is recorded here.
- Notes:
- **Install deps:** `npm install`
- **Dev build with HMR:** `npm run dev`
- **Prod build:** `npm run build`
- **Load in Chrome:**
1. `npm run build`
2. Open `chrome://extensions/`
3. Enable Developer mode
4. "Load unpacked"
5. Select the `dist/` folder
- **Debugging entry points:**
- Service Worker: Chrome DevTools → Extensions → Service Worker → Console
- Content Script: Chrome DevTools on the page → Console
- Popup: right-click popup → "Inspect"
- **Project layout (DOC-described, may be stale relative to actual repo):**
```
ai-call-extension/
├── src/
│ ├── background/ # Service Worker
│ │ └── index.ts
│ ├── content/ # Content Script
│ │ └── index.ts
│ ├── popup/ # Popup UI
│ │ ├── index.html
│ │ ├── index.ts
│ │ └── style.css
│ └── shared/ # Common types + utilities
│ ├── types.ts
│ └── logger.ts
├── icons/
├── dist/
├── manifest.json
├── vite.config.ts
├── tsconfig.json
└── package.json
```
---
## Topic: User-facing flow
- Source: `Тз расширение фаза1.md` §5; `README.md` §"Использование"
- Notes:
1. First popup open requests screen-recording permission (mandatory).
2. Recording starts automatically once granted.
3. To file an error report:
- Click the extension icon.
- Click "Сохранить отчёт об ошибке".
- Archive lands in the user's "Downloads" folder automatically.
4. Button state cycle: `idle` → "Сохраняю..." → "Готово! ✓" → `idle`
(3 s revert).
---
## Topic: Licensing and support
- Source: `README.md` §"Лицензия", §"Контакты"
- Notes:
- License: **MIT**
- Support contact: addressed to "support" (no concrete channel listed in
DOC).
---
## Topic: Russian-source provenance
- Source: both documents (`Тз расширение фаза1.md`, `README.md`)
- Notes: Both source documents are authored in Russian. UI strings ("Сохранить
отчёт об ошибке", "Последние 30 сек видео + 10 мин лога", "Сохраняю...",
"Готово! ✓") are part of the user-facing contract and MUST be preserved
verbatim. Section identifiers and technical names use Latin script.