diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md index 8c816eb..6b96f98 100644 --- a/.planning/REQUIREMENTS.md +++ b/.planning/REQUIREMENTS.md @@ -104,11 +104,13 @@ Requirements for the Phase 1 SPEC. Each maps to one phase in ROADMAP.md. - SPEC §10 acceptance criteria: #7. - [ ] **REQ-meta-json-schema**: `meta.json` inside the archive conforms to the - verbatim schema: + verbatim schema (D-P2-02 + D-P2-03 cutover; replaces the 7-field + `url: string` shape per audit P1 #10 amendment 2026-05-20): ```json { + "schemaVersion": "2", "timestamp": "2025-05-15T14:32:10Z", - "url": "https://...", + "urls": ["https://example.com/", "https://app.example.com/dashboard"], "userAgent": "Chrome/...", "extensionVersion": "1.0.0", "videoBufferSeconds": 30, @@ -116,7 +118,23 @@ Requirements for the Phase 1 SPEC. Each maps to one phase in ROADMAP.md. "totalEvents": 143 } ``` - All fields required. Binding: CON-meta-json-schema. + All 8 fields required. Acceptance: + - `schemaVersion === '2'` (marks the D-P2-02 url→urls cutover; future + schema bumps increment) + - `timestamp` ISO-8601 with `Z` suffix + - `urls` is a `string[]` whose entries each match + `/^(https?|chrome-extension):\/\//` (per CONTEXT.md `` + filter rules — exclude chrome://, about:, devtools://, file://). Empty + array IS permitted per F2 (whole-desktop-no-tab session is a + meaningful operator state); non-empty arrays validate each entry. + - `urls` is deduplicated; ordering is first-seen-first across the + rolling recording window + - `extensionVersion` matches semver + - `totalEvents` is a non-negative integer + - exactly 8 keys; no extras + Binding: CON-meta-json-schema (this REQ-text supersedes the original + CON-meta-json-schema 7-field shape — the original is preserved in the + SPEC for provenance; this REQ documents the Phase 2 cutover). ### Manifest & Install @@ -222,7 +240,7 @@ Which phase covers which requirement. See ROADMAP.md for phase details. | 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 | | REQ-archive-layout | Phase 3 (originally) → **Phase 2** (renumbered) | Pending (substantively shipped via Plans 01-08 webm-remux + JSZip; verification in Phase 2) | -| REQ-meta-json-schema | Phase 3 (originally) → **Phase 2** (renumbered) | Pending | +| REQ-meta-json-schema | Phase 2 | Pending (implementation landed via Plan 02-03; harness validation deferred to Plan 02-04) | | REQ-archive-export-latency | Phase 3 (originally) → **Phase 2** (renumbered) | Pending | | REQ-manifest-permissions | Phase 3 (originally) → Phase 1 closure via Plan 01-12 i18n migration | Complete (2026-05-20 — manifest __MSG_*__ + default_locale='en' + 16 i18n keys per locale; permissions DEC-011 baseline unchanged; operator brand-fit ack) | | REQ-install-clean | Phase 4 (originally) → Phase 1 closure via Plan 01-12 design integration | Complete (2026-05-20 — fresh build + load unpacked clean; zero remote-font CSP errors; branded icons rendering; en+ru manifest:name resolution; operator brand-fit ack) | @@ -245,6 +263,7 @@ RAM-ceiling check. --- *Requirements defined: 2026-05-15* -*Last updated: 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).* +*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)".* +*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*