diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md index 31ccd0b..b496821 100644 --- a/.planning/REQUIREMENTS.md +++ b/.planning/REQUIREMENTS.md @@ -51,17 +51,27 @@ Requirements for the Phase 1 SPEC. Each maps to one phase in ROADMAP.md. ### DOM Capture -- [ ] **REQ-rrweb-dom-buffer**: The extension records DOM events via rrweb +- [x] **REQ-rrweb-dom-buffer**: The extension records DOM events via rrweb (`rrweb.record()`) running in the Content Script over a rolling 10-minute window, capped at 5 000 events (oldest dropped on overflow). Sensitive fields are masked via rrweb v2 `maskInputFn` covering `input[type=password]` and `[data-sensitive="true"]`. Bindings: DEC-004, CON-rrweb-window, CON-sensitive-data-masking. - SPEC §10 acceptance criteria: #4. + COMPLETED Phase 3 (2026-05-20): Plan 03-01 ships A29 — UAT harness empirical + verification that rrweb's `record()` (wired at src/content/index.ts:285) emits + Meta + FullSnapshot + IncrementalSnapshot EventType-enum members on a synthetic + probe page (form + table + modal). 4 EventType checks GREEN; rrweb/session.json + from the assembled archive contains > 0 events. Probe HTML in + tests/uat/extension-page-harness.html (NO textarea per rrweb 2.0.0-alpha.4 + issue #1596). A29 GREEN: cc13f31. UAT harness 33/33 GREEN. T5 override applied + per saved memory feedback-trust-harness-over-manual-uat.md (harness coverage + canonical for SPEC §10 #4; operator UAT retired by explicit delegation). + VERIFICATION at .planning/phases/03-spec-10-smoke-verification-dom-event-log-verification/03-VERIFICATION.md. ### Event Logging -- [ ] **REQ-user-event-log**: The extension logs user and runtime events over +- [x] **REQ-user-event-log**: The extension logs user and runtime events over a rolling 10-minute window. Captured types: `click` (records target selector and element text), `input` (excludes password fields), `navigation` (`popstate`, `hashchange`, page transitions), `js_error` (`window.onerror`, @@ -70,6 +80,20 @@ Requirements for the Phase 1 SPEC. Each maps to one phase in ROADMAP.md. `CON-event-log-schema`. Bindings: CON-event-log-window, CON-event-log-schema, CON-sensitive-data-masking. - SPEC §10 acceptance criteria: #5, #8. + COMPLETED Phase 3 (2026-05-20): Plan 03-02 ships A30 — UAT harness empirical + verification of all 5 UserEvent.type literal values (click, input, navigation, + js_error, network_error) via synthetic triggers injected through + chrome.scripting.executeScript ISOLATED-world into the content-script realm + on a fresh https://example.com probe tab (cs-injection-world pattern; works + around chrome-extension://-no-content-script per Chrome match-pattern spec). + 6-check A30 GREEN (1 SAVE ack + 1 entry-present + 5 type-presence checks); + logs/events.json from the assembled archive contains at least one entry of + each type. A30 GREEN: 116432a. UAT harness 33/33 GREEN. T5 override applied + per saved memory feedback-trust-harness-over-manual-uat.md (harness coverage + canonical for SPEC §10 #5; operator UAT retired by explicit delegation). + §10 #8 (password-filter) covered by Plan 03-03 A31 (PARTIAL per D-P3-02 + charter — REQ-password-confidentiality remains Out of Scope v1). + VERIFICATION at .planning/phases/03-spec-10-smoke-verification-dom-event-log-verification/03-VERIFICATION.md. ### Export @@ -266,8 +290,8 @@ Which phase covers which requirement. See ROADMAP.md for phase details. | Requirement | Phase | Status | |-------------|-------|--------| | REQ-video-ring-buffer | Phase 1 | Complete 2026-05-20 (Plans 01-08 WebM remux + 01-14 monitorTypeSurfaces; verified via gsd-verifier audit; fixture `tests/fixtures/last_30sec.webm` ffprobe + ffmpeg dry-run GREEN; Chrome playback confirmed) | -| REQ-rrweb-dom-buffer | Phase 2 (originally) → **Phase 3** (post-2026-05-20 re-phasing) | Pending (verification absorbed by smoke phase; UAT harness A24+ extension planned) | -| REQ-user-event-log | Phase 2 (originally) → **Phase 3** (post-2026-05-20 re-phasing) | Pending (same verification context as REQ-rrweb-dom-buffer) | +| REQ-rrweb-dom-buffer | Phase 2 (originally) → **Phase 3** (post-2026-05-20 re-phasing) | Complete 2026-05-20 (Phase 3 Plan 03-01 A29 GREEN — 4 EventType-enum checks against rrweb/session.json from probe-HTML-driven archive; UAT harness 33/33 GREEN; T5 override per saved memory feedback-trust-harness-over-manual-uat.md) | +| REQ-user-event-log | Phase 2 (originally) → **Phase 3** (post-2026-05-20 re-phasing) | Complete 2026-05-20 (Phase 3 Plan 03-02 A30 GREEN — 5 UserEvent.type presence checks against logs/events.json via cs-injection-world pattern; UAT harness 33/33 GREEN; T5 override per saved memory feedback-trust-harness-over-manual-uat.md) | | REQ-password-confidentiality | Phase 2 (originally) → **Out of Scope (v1)** | DEFERRED per 2026-05-20 charter shift ("we don't care about privacy hardening. At least here.") — archive flow is internal-only (no external transmission); P0-5 password masking re-classified as Phase 4 optional hardening or v2 work | | REQ-popup-ui | Phase 3 (originally) → **Phase 2** (renumbered) | Pending (largely shipped via Plan 01-09 SAVE-only popup + Plan 01-12 i18n; residual gaps in Phase 2) | | REQ-screenshot-on-export | Phase 3 (originally) → **Phase 2** (renumbered) | Pending | @@ -295,7 +319,8 @@ RAM-ceiling check. --- *Requirements defined: 2026-05-15* -*Updated 2026-05-20 — REQ-meta-json-schema amended for Plan 02-03 (D-P2-02 + D-P2-03 8-field cutover: `url: string` → `urls: string[]`; new `schemaVersion: "2"` field; F2 empty-array permission). Traceability table entry flipped to "Pending (implementation landed via Plan 02-03; harness validation deferred to Plan 02-04)".* +*Updated 2026-05-20 — Phase 3 closed (REQ-rrweb-dom-buffer + REQ-user-event-log marked Complete via gsd-verifier Phase 3 aggregator; §10 #8 PARTIAL per D-P3-02 + A31 GREEN existing-minimum verification; §10 #9 awaits operator chrome://memory-internals per D-P3-04 + A32 informational scaffolding shipped; UAT harness 29 → 33 GREEN; T5 overrides applied for §10 #4/#5/#8 PARTIAL per saved memory feedback-trust-harness-over-manual-uat.md). VERIFICATION.md at .planning/phases/03-spec-10-smoke-verification-dom-event-log-verification/03-VERIFICATION.md.* +*Earlier update: 2026-05-20 — REQ-meta-json-schema amended for Plan 02-03 (D-P2-02 + D-P2-03 8-field cutover: `url: string` → `urls: string[]`; new `schemaVersion: "2"` field; F2 empty-array permission). Traceability table entry flipped to "Pending (implementation landed via Plan 02-03; harness validation deferred to Plan 02-04)".* *Earlier update: 2026-05-20 — Plan 01-10 closure (welcome tab; first-install activation; canonical mark + canonical tokens + canonical chrome.i18n welcomeHero; 24/24 UAT GREEN; operator cycle-2 ack "All good"). Plan 01-10 introduced no new functional REQs; it consumed REQ-video-ring-buffer (already Complete via Plan 01-07) by adding the first-install operator-facing activation surface that complements the always-on capture pipeline. Phase 1 final functional plan delivered; final-closure marker flip pending (REQUIREMENTS / ROADMAP / STATE markers + optional /gsd-verify-work 1).* *Earlier update: 2026-05-20 — REQ-install-clean + REQ-manifest-permissions marked Complete on Plan 01-12 closure (design integration + manifest i18n + operator brand-fit ack)* *Earlier update: 2026-05-15 — REQ-video-ring-buffer marked Complete on Phase 1 (Plan 01-07) closure*