release: v0.7.0 — extension restructure complete (Plan C Phases 3/4/6)
Completes the extension restructure begun in v0.6.0. Phases 3 (setup wizard SW migration + step registry), 4 (vault.ts split + vault_locked lift), and 6 (get_vault_status + sidebar status indicator) all merged to main (9df2fee,3b8368d,397cc78) via three parallel worktree streams. This commit is the release-prep wrap-up: - Version bump to v0.7.0 across the three relicario crates + Cargo.lock, extension/package.json, and both extension manifests (the manifests had lagged at 0.5.0 — corrected here). - CHANGELOG.md v0.7.0 entry. - STATUS.md: extension restructure moved to shipped; Phases 3/4/6 landing section added. - ROADMAP.md: v0.7.0 row added; Up-next now command palette. - extension/ARCHITECTURE.md: all three phases integrated (new vault-* modules, setup-steps.ts, get_vault_status protocol + status indicator, vault_locked lift, git-host sync cache). - Plan completion checkboxes ticked. Task 7.1 verification: done-criteria sweep all green; 423/423 vitest; build:all clean (only the pre-existing 4MB WASM size warning). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
64
CHANGELOG.md
64
CHANGELOG.md
@@ -1,5 +1,69 @@
|
||||
# Changelog
|
||||
|
||||
## v0.7.0 — 2026-06-01
|
||||
|
||||
Completes the extension restructure (Plan C) begun under v0.6.0. Phases
|
||||
1/2/5 (StateHost typing, SW storage extract, the P2 cluster) shipped
|
||||
2026-05-30; this tag adds the remaining three phases — executed as three
|
||||
parallel worktree streams under PM coordination — which eliminate the
|
||||
two steepest learning cliffs in the extension and close the last
|
||||
`relicario status` CLI/extension parity gap. No crypto, wire-format, or
|
||||
Rust-API changes; this is an internal-architecture + one-feature release.
|
||||
|
||||
### Added
|
||||
|
||||
- **`relicario status` parity in the extension.** New `get_vault_status`
|
||||
service-worker message returns a cached sync summary
|
||||
`{ ahead, behind, lastSyncAt, pendingItems }` with no network call —
|
||||
`ahead`/`behind`/`lastSyncAt` read straight off the cached git-host
|
||||
state (populated by the `sync` handler), `pendingItems` a live count of
|
||||
active (non-trashed) manifest entries. A sidebar-footer status indicator
|
||||
(`vault-status.ts` → `renderStatusIndicator`) renders `N pending` /
|
||||
`N ahead` / `N behind` / `in sync` plus a `last sync …` / `never synced`
|
||||
line, refreshed on mount and on a manual `↻` button — no timer polling,
|
||||
matching the no-network-without-user-intent discipline.
|
||||
|
||||
### Changed
|
||||
|
||||
- **Setup wizard crypto moved into the service worker.** The wizard no
|
||||
longer imports `relicario-wasm` or orchestrates the master key directly.
|
||||
New `create_vault` / `attach_vault` SW handlers own the full flow
|
||||
(image-secret embed/extract, unlock, manifest+settings encrypt + push,
|
||||
`register_device` + `addDevice`, persist config + reference image,
|
||||
`session.setCurrent`); on failure the SessionHandle is locked then freed,
|
||||
with ownership transferring only on success. `setup.ts` collapses from
|
||||
~1230 LOC to a 58-LOC UI-only shell; the six render/attach step pairs
|
||||
become a `SetupStep` registry in the new `setup/setup-steps.ts`. Adds
|
||||
`clearWizardState` (bound to `beforeunload` and `goto('mode')`) to wipe
|
||||
sensitive Uint8Array fields when the wizard is abandoned. The
|
||||
non-extension copy-vault-config-JSON escape hatch is preserved.
|
||||
- **`vault.ts` split from a 1037-LOC monolith to 194 LOC of routing +
|
||||
state.** Extracted into five focused modules — `vault-shell` (DOM
|
||||
scaffolding, color-scheme, onMessage wiring), `vault-sidebar` (category
|
||||
nav, 80ms debounced search, bottom nav, status-indicator footer),
|
||||
`vault-list` (list + row rendering), `vault-drawer` (open/close/render +
|
||||
`ensureDrawerClosedForRoute`), `vault-form-wrapper` (wrapped form + sticky
|
||||
bar) — plus two support modules for an acyclic split (`vault-context`,
|
||||
the VaultController contract; `vault-router`, hash routing + pane
|
||||
dispatch).
|
||||
- **`vault_locked` RPC intercept unified.** Lifted out of `vault.ts` into
|
||||
the `sendMessage` wrapper in `shared/state.ts`, so both popup and
|
||||
vault-tab surfaces share one lock-redirect path.
|
||||
- **`state.gitHost` now nulled on explicit lock**, symmetric with the
|
||||
session-timer expiry path, so the new status indicator can't surface a
|
||||
stale `lastSyncAt` after a lock → re-unlock within one service-worker
|
||||
lifetime.
|
||||
|
||||
### Internal
|
||||
|
||||
- Three-stream parallel execution (Dev-A Phase 3, Dev-B Phase 4, Dev-C
|
||||
Phase 6) coordinated via the relay message bus; merges sequenced
|
||||
Phase 3 → 4 → 6 with per-phase done-criteria verification.
|
||||
- Final merged-tree validation: **423/423** vitest (62 files);
|
||||
`npm run build:all` clean for both Chrome and Firefox targets (only the
|
||||
pre-existing ~4 MB WASM asset-size warning). Task 7.1 done-criteria
|
||||
sweep all green. No change to `wasm.d.ts`.
|
||||
|
||||
## v0.6.0 — 2026-05-30
|
||||
|
||||
Rolls up four weeks of post-v0.5.0 work into one tag: the Phase 2B
|
||||
|
||||
Reference in New Issue
Block a user