Mark
52dc2e6a6e
docs(01-10): summary — welcome tab + 5-cycle debug closure + brand polish (153/153 vitest, 24/24 UAT GREEN, ack 2026-05-20)
Plan 01-10 (welcome tab) full SUMMARY landing closure of Phase 1's final
functional plan. Welcome tab landed end-to-end across 4 waves + Wave 4
operator empirical UAT cycle 2 ack "All good" 2026-05-20.
Architecture:
- chrome.runtime.onInstalled('install') + chrome.storage.local
flag-gating (onboarding-completed:true + installed-at:<Date.now()>)
+ chrome.tabs.create + fire-and-forget .catch defense-in-depth.
- Plan 01-12 must_have #9 path-B contract honored: welcome.css opens
with `@import '../shared/tokens.css';` (canonical Lora display +
IBM Plex Sans UI + D-04 Loom palette); NO placeholder
welcome-tokens.css file.
- chrome.i18n.getMessage for welcomeHeroRu + welcomeHeroEn with
`|| <en-const>` fallback (Plan 01-12 fallback pattern preserved).
- Vite `?url` import + auto-WAR idiom bundles canonical
mokosh-mark.svg as inline data URL in welcome chunk
(closure-cycle debug 01-10-welcome-page-missing-mark).
- Three-pipeline DOM population: populateMark walks
[data-mokosh-slot='mark']; populateCopy walks [data-mokosh-key]
from in-file COPY map; populateI18n walks [data-mokosh-i18n-key]
from chrome.i18n.getMessage.
- D-16-toolbar charter preserved: welcome page is informational +
read-only; NO REQUEST_PERMISSIONS / chrome.runtime.sendMessage
start path. CTA copy directs operator at toolbar icon.
Wave structure (4 plan-wave commits):
- 89e1e09 Wave 0 RED onboarding tests (3 tests A/B/C)
- 49f087f Wave 1 welcome bundle + Vite entries + manifest
web_accessible_resources
- 8f329d8 Wave 2 openWelcomeIfFirstInstall + onInstalled wiring
- b112cb7 Wave 3 harness A15+A16+A17
Cycle-1 operator UAT rejection 2026-05-20 ~08:56 surfaced two
concerns + 5 inter-cycle debug fixes (in commit order):
- 4bba679 fix(01-09): notifStartup text split (notifStartupCta for
onStartup; notifRecordingStarted reserved for manual-start)
- d48a715 fix(01-10): welcome page mark — bundle canonical
mokosh-mark.svg via Vite ?url + populateMark + A17.8 sub-check
(Plan 01-12 must_have #9 path-A swap-in gap closed)
- 0854baf fix(01-10): vitest build-test it() timeout bump to 30s
for slower welcome-page build
- a2dfc8c fix(01-09): startVideoCapture — remove stale active-tab
dependency (D-01 cleanup gap; +3 RED→GREEN tests at
start-video-capture-no-tab.test.ts)
- d21ed17 fix(01-12): brand polish — replace stale 'AI Call Recorder'
refs with Mokosh (4 files; .planning/intel/* preserved as audit
trail)
Harness deltas:
- A15-A17 added at b112cb7 (24/24 UAT GREEN; A17 with 7 sub-checks
incl. A17.7 --mks-rec getComputedStyle probe resolving to
rgb(178,84,61) canonical).
- A17.8 mark-bundling sub-check added at d48a715 (verifies welcome
chunk JS contains inlined data:image/svg+xml URL with canonical
viewBox='0 0 32 32' preserved).
- FORBIDDEN_HOOK_STRINGS unchanged at 12 (A15-A17 use chrome.tabs
.query + chrome.storage.local.get + fetch + DOMParser +
getComputedStyle production APIs exclusively).
Test deltas:
- vitest 147 → 153 GREEN (+6: 3 onboarding tests Wave 0 + 3
start-video-capture-no-tab tests closure-cycle debug a2dfc8c).
- UAT harness 21/21 → 24/24 GREEN (A0-A14 + A15-A17 + A18-A22 + A23).
Pre-checkpoint bundle gates per saved memory
feedback-pre-checkpoint-bundle-gates.md: Tier-1 hook-string grep
+ SW CSP-safety + Node-globals + DOM-globals + manifest validation
+ en↔ru parity — all PASS. setimmediate polyfill new Function in
SW chunk confirmed pre-existing (logged at
.planning/phases/01-stabilize-video-pipeline/deferred-items.md
for Phase 5 hardening per Plan 01-12 Wave 7 disclosure).
Operator brand-fit cycle-2 ack received verbatim "All good" + cycle-2
follow-up brand-rename ack via d21ed17. Phase 1's final functional
plan delivered; Phase 1 final-closure unblocked pending REQUIREMENTS
/ ROADMAP / STATE marker flip + optional /gsd-verify-work 1.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 12:10:30 +02:00
..
2026-05-20 11:49:46 +02:00
2026-05-17 21:25:35 +02:00
2026-05-20 12:10:30 +02:00
2026-05-15 15:23:53 +02:00
2026-05-15 15:16:30 +02:00
2026-05-15 17:14:59 +02:00
2026-05-20 08:33:52 +02:00
2026-05-20 08:33:52 +02:00
2026-05-20 08:33:52 +02:00