diff --git a/ROADMAP.md b/ROADMAP.md index d5320bb..62e7f7b 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -16,9 +16,9 @@ See `CHANGELOG.md` for tagged-release detail and `STATUS.md` for the per-train c Per the 2026-05-30 post-v0.6.0 audit: of the three 2026-05-04 architecture-review specs, two are already shipped (CLI restructure = Plan B Cycles 1+2; security polish = Stream A Cycle 1). Only the third is genuinely outstanding: -- **Extension restructure** — `vault.ts` split (5 modules), setup.ts SW-abstraction routing, type-checked `shared/state.ts`, SW router-helper dedup, `relicario status` parity, plus P2 cleanups (inactivity timer / gitHost-on-expiry / debounced detector). Effort: **L (multi-day to multi-week)**. +- **Extension restructure** — half-shipped 2026-05-30. Phases 1 (StateHost typing) + 2 (SW storage extract) + 5 (P2 cluster) merged via 3 parallel worktrees. Remaining: Phase 3 (setup wizard SW migration, L), Phase 4 (vault.ts split, M), Phase 6 (vault status indicator, S-M). Spec: `docs/superpowers/specs/2026-05-04-extension-restructure-design.md` - Plan: `docs/superpowers/plans/2026-05-30-extension-restructure.md` (6 phases, 24 tasks) + Plan: `docs/superpowers/plans/2026-05-30-extension-restructure.md` ## Medium-term diff --git a/STATUS.md b/STATUS.md index 1e78b49..4246b7d 100644 --- a/STATUS.md +++ b/STATUS.md @@ -5,7 +5,7 @@ ## Version **Last release tagged:** v0.6.0 — rolled up Phase 2B, v0.5.1 Streams A/B/C, 1C-γ, Plan B refactor (Cycles 1+2), management-surfaces revamp, and the doc-structure redesign into one tag. -**Active track:** extension restructure planning (CLI restructure + security polish both confirmed shipped; only extension restructure is genuinely outstanding from the 2026-05-04 architecture-review specs) +**Active track:** extension restructure execution — Plan C Phases 1, 2, 5 merged 2026-05-30 (three parallel worktree streams). Phases 3, 4, 6 remain. ## What landed on main since the v0.5.0 version bump @@ -128,15 +128,14 @@ Per the 2026-05-30 post-v0.6.0 audit of the three 2026-05-04 architecture-review - **CLI restructure** (`2026-05-04-cli-restructure-design.md`) — *already shipped* as Plan B Cycles 1+2 (`b9bd152`, `3dd1e1b`, `3759f6a`, `e69b347`); the last gap (read-side `refresh_groups_cache` callers in list/get) closed in `d717f0d`. Done-criteria all met. - **Security polish** (`2026-05-04-security-polish-design.md`) — *already shipped* as Stream A Cycle 1 (`89090a8`) plus follow-ups (`0c9387f` start.sh fourth window, `229e483` recovery_qr.rs docs). All four phases done. -- **Extension restructure** (`2026-05-04-extension-restructure-design.md`) — **the only genuinely outstanding spec.** Plan written 2026-05-30: `docs/superpowers/plans/2026-05-30-extension-restructure.md` (6 phases, 24 tasks, ~145 bite-sized steps). - - Phase 1 (S-M): `StateHost` typing + `__resetHostForTests` — foundation, blocks 3 + 4. - - Phase 2 (S): Extract `service-worker/storage.ts` + move `itemToManifestEntry` — independent. - - Phase 3 (L): Setup-wizard SW migration + step registry + `clearWizardState`. - - Phase 4 (M): Split `vault.ts` into 5 modules + lift `vault_locked` channel. - - Phase 5 (M): Five P2 fixes (timer reset rule, gitHost on expiry, teardown dedup, allSettled, MutationObserver debounce) — independent. - - Phase 6 (S-M): `get_vault_status` SW handler + sidebar status indicator (closes the `relicario status` CLI/extension parity gap). - - Recommended sequence: Phase 1 → Phase 2 → Phase 5 → Phase 4 → Phase 6 → Phase 3 (independents first, Phase 3 last because it's the biggest single phase and benefits from all the supporting infrastructure landing first). - - Maximum parallelism (subagent-driven): 3 streams (Phases 1+2+5 concurrent; Phases 4 + 6 sequential after 1; Phase 3 sequential after 1). +- **Extension restructure** (`2026-05-04-extension-restructure-design.md`, plan `docs/superpowers/plans/2026-05-30-extension-restructure.md`) — half-shipped: + - ✅ **Phase 1 (StateHost typing)** — merged `c3f8e35` (4 commits, 378/378 tests). View+PopupState moved to `shared/popup-state.ts`; `StateHost` interface fully typed; `__resetHostForTests` exported; double-registration guard. PopupState widened to absorb VaultState's vault-tab-only fields. + - ✅ **Phase 2 (SW storage extract)** — merged `b6707f4` (1 commit, 376/376 tests). `loadDeviceSettings` / `saveDeviceSettings` / `loadBlacklist` / `saveBlacklist` consolidated in `service-worker/storage.ts`; `itemToManifestEntry` moved to `service-worker/vault.ts`. Router files shrank ~70 LOC combined. + - ✅ **Phase 5 (P2 cluster)** — merged `0496dfe` (5 commits, 377/377 tests). Inactivity timer rule inverted (READ_ONLY_CONTENT_CALLABLE exclusion set); `state.gitHost` cleared on session expiry; `teardownSettingsCommon` extracted; `Promise.allSettled` in devices (trash.ts was a no-op — single-message load path on current main); MutationObserver `scan()` debounced 200ms. + - ⏳ **Phase 3 (Setup wizard SW migration + step registry)** — Effort: L. Depends on Phase 1 ✅. Biggest single phase. Adds `create_vault` / `attach_vault` SW handlers; setup.ts drops direct WASM imports + collapses six renderStepN/attachStepN pairs into a step registry + adds `clearWizardState`. + - ⏳ **Phase 4 (vault.ts split + vault_locked channel lift)** — Effort: M. Depends on Phase 1 ✅. Splits 1037-LOC vault.ts into 5 modules (vault-shell, vault-sidebar, vault-list, vault-drawer, vault-form-wrapper); lifts the vault_locked RPC intercept into shared/state.ts's sendMessage wrapper. + - ⏳ **Phase 6 (get_vault_status + sidebar status indicator)** — Effort: S-M. Depends on Phase 4. Closes the `relicario status` CLI/extension parity gap. + - Combined test count at end of three-stream merge: **389/389** vitest passing (baseline 371 + 18 new across the three phases). Beyond extension restructure, ROADMAP medium-term holds Phase 4 command palette (no spec yet). Long-term: relay server, mobile.