Milestone v1 (v2.0.0): Mokosh — Session Capture #1
@@ -0,0 +1,75 @@
|
|||||||
|
---
|
||||||
|
context: phase-4-plan-preferences
|
||||||
|
captured: 2026-05-20
|
||||||
|
expires_when: /gsd-plan-phase 4 completes
|
||||||
|
---
|
||||||
|
|
||||||
|
# Phase 4 plan-phase preferences (captured pre-UI-SPEC exit)
|
||||||
|
|
||||||
|
User invoked `/gsd-plan-phase 4` 2026-05-20 and answered both initial gate
|
||||||
|
questions before workflow exited at UI-SPEC gate. These preferences should be
|
||||||
|
re-honored on next `/gsd-plan-phase 4` invocation (after `/gsd-ui-phase 4`
|
||||||
|
completes):
|
||||||
|
|
||||||
|
## UI Design Contract gate
|
||||||
|
|
||||||
|
**Decision:** Generate UI-SPEC.md first → run `/gsd-ui-phase 4` before
|
||||||
|
re-running plan-phase.
|
||||||
|
|
||||||
|
**Caveat to revisit:** Unlike Phase 3 (false-positive null-spec), Phase 4 has
|
||||||
|
genuine UI work — specifically the dark-surface logo contrast fix (Plan 01-10
|
||||||
|
obs 2026-05-20). The cursor visibility constraint is purely behavioral
|
||||||
|
(getDisplayMedia `video: {cursor: 'always'}` — 1 line in src/offscreen/recorder.ts)
|
||||||
|
and does not need designer iteration. /gsd-ui-phase 4 should produce a
|
||||||
|
thin-but-real UI-SPEC covering ONLY:
|
||||||
|
- dark-surface logo contrast strategy (media query + alt-color SVG vs wrapper
|
||||||
|
background vs neutral palette swap — designer picks)
|
||||||
|
- (informational only) cursor visibility constraint — list as inherited
|
||||||
|
behavioral change, not a design surface
|
||||||
|
|
||||||
|
If /gsd-ui-phase 4 surfaces the "is this a UI phase?" question, answer
|
||||||
|
"yes — but narrow scope (dark-logo design only; cursor is behavioral)".
|
||||||
|
|
||||||
|
## Research gate
|
||||||
|
|
||||||
|
**Decision:** Research first (light) → spawn gsd-phase-researcher before
|
||||||
|
planning.
|
||||||
|
|
||||||
|
**Scope for researcher (~10-20 min):**
|
||||||
|
1. **setimmediate polyfill replacement strategy** — current source is
|
||||||
|
`vite-plugin-node-polyfills` (per Plan 01-12 disclosure). Options:
|
||||||
|
(a) inline manual polyfill `globalThis.setImmediate ||= (fn, ...args) =>
|
||||||
|
queueMicrotask(() => fn(...args))` — bypasses plugin entirely
|
||||||
|
(b) configure vite-plugin-node-polyfills to disable setimmediate inclusion
|
||||||
|
(c) document acceptance with explicit CSP-allow rationale (already-done
|
||||||
|
Phase 1 acceptance log path)
|
||||||
|
Recommend best path for v1 close.
|
||||||
|
|
||||||
|
2. **SW state persistence 5-min idle test patterns under MV3** —
|
||||||
|
ROADMAP SC #1 requires "extension idle for >5 minutes, then exporting,
|
||||||
|
the archive still contains a non-empty video buffer". Best practices for:
|
||||||
|
- Forcing SW unload in Puppeteer (`chrome.runtime.reload()`? or just wait
|
||||||
|
for natural idle eviction at 30s?)
|
||||||
|
- Verifying buffer survives across reload (IndexedDB? `chrome.storage.local`?
|
||||||
|
existing keepalivePort architecture from Plan 01-05?)
|
||||||
|
- 5min Puppeteer timeout considerations (CI lane vs default)
|
||||||
|
|
||||||
|
3. **chrome.scripting.executeScript world:'ISOLATED' best practices** for
|
||||||
|
the A29 cs-injection-world fix (per Plan 03-02 introduced pattern).
|
||||||
|
Confirm: re-targeting the rrweb probe to a fresh probe tab (instead of
|
||||||
|
reading iana.org leftover) is the canonical fix; identify any pitfalls.
|
||||||
|
|
||||||
|
Researcher should NOT investigate:
|
||||||
|
- rrweb v2 upgrade implementation path (deferred to v1.1/v2 per D-P3-03 +
|
||||||
|
D-P4-01)
|
||||||
|
- Full rrweb maskInputFn or data-sensitive masking (out of scope v1 per
|
||||||
|
charter shift)
|
||||||
|
- Programmatic SW-RAM measurement via chrome.devtools Memory API
|
||||||
|
(deferred to v1.1/v2 per D-P3-04 + D-P4-01)
|
||||||
|
- Any audit P1 #11/#14/#15 deep-dive (already-understood fixes; planner
|
||||||
|
works directly from CONTEXT.md `<specifics>`)
|
||||||
|
|
||||||
|
## Auto-cleanup
|
||||||
|
|
||||||
|
Delete this file when /gsd-plan-phase 4 successfully completes planner
|
||||||
|
spawn (after honoring these preferences).
|
||||||
Reference in New Issue
Block a user