musememory 3.2.0 β†’ 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/.agents/artifacts/2026-10-26-dashboard-rehaul-rashin-research-and-wave-23-tickets.md +2 -0
  2. package/.agents/artifacts/TECHNICAL_DEBT-wave24-25.md +12 -0
  3. package/.agents/artifacts/TECHNICAL_DEBT-wave26.md +11 -0
  4. package/.agents/artifacts/TECHNICAL_DEBT-wave27.md +13 -0
  5. package/.agents/artifacts/gauntlet-wave23-pr1/ACCEPTANCE_PACKET.md +85 -0
  6. package/.agents/artifacts/gauntlet-wave23-pr1/GAUNTLET_JOB_CONTRACT.md +50 -0
  7. package/.agents/artifacts/gauntlet-wave23-pr1/ITERATION_LEDGER.md +131 -0
  8. package/.agents/artifacts/gauntlet-wave23-pr1/TECHNICAL_DEBT.md +28 -0
  9. package/.agents/artifacts/gauntlet-wave23-pr456/ACCEPTANCE_PACKET.md +22 -0
  10. package/.agents/artifacts/gauntlet-wave23-pr456/GAUNTLET_JOB_CONTRACT.md +41 -0
  11. package/.agents/artifacts/gauntlet-wave23-pr456/ITERATION_LEDGER.md +36 -0
  12. package/.agents/artifacts/gauntlet-wave24-25/ACCEPTANCE_PACKET.md +13 -0
  13. package/.agents/artifacts/gauntlet-wave24-25/ITERATION_LEDGER.md +28 -0
  14. package/.agents/artifacts/gauntlet-wave25-wiring/ACCEPTANCE_PACKET.md +7 -0
  15. package/.agents/artifacts/gauntlet-wave25-wiring/ITERATION_LEDGER.md +27 -0
  16. package/.agents/artifacts/gauntlet-wave27/ACCEPTANCE_PACKET.md +7 -0
  17. package/.agents/artifacts/gauntlet-wave27/ITERATION_LEDGER.md +36 -0
  18. package/.agents/context/current.md +56 -1
  19. package/.agents/context/decisions.md +8 -0
  20. package/.agents/context/deep-research-agentic-memory-evolution.md +1 -1
  21. package/.agents/context/evidence-ledger.md +89 -0
  22. package/.agents/context/roadmap.md +7 -7
  23. package/.agents/context/ticket-plan.md +140 -40
  24. package/.agents/standards/frontend-astro.md +3 -1
  25. package/README.md +7 -4
  26. package/claims.json +5 -5
  27. package/dist/index.js +10488 -6577
  28. package/docs/cli-reference.md +18 -6
  29. package/docs/mcp-tool-matrix.json +5 -1
  30. package/package.json +1 -1
  31. package/schema.json +1 -0
@@ -5,6 +5,32 @@
5
5
 
6
6
  ---
7
7
 
8
+ ## 🧾 Session β€” Ticket Ledger Renumber & Remainder Audit (2026-11-08)
9
+
10
+ Wave 23's `T-405`–`T-422` collided with the already-landed `T-405` (conflicted injection) and `T-406` (project casing), so that block is now `T-451`–`T-468` across the plan, roadmap and this file. The historical blueprint keeps its original IDs with a translation note; `HANDOFF.md`'s `T-405`/`T-406` are the unrelated landed fixes and were left untouched. Every unchecked ticket was then verified against source: 4 were already implemented (`T-150`, `T-151`, `T-153`, `T-384`) and are now marked done, 15 are partial, 86 are genuinely unbuilt, `T-163` is dropped by principal decision D3, and `T-449`/`T-450` remain filed/deferred. Full evidence table: `.agents/context/ticket-plan.md` β†’ v15. Doc-claim gate re-run green (20/20).
11
+
12
+ ### Wave 23 PR 1 implemented (local, not landed)
13
+
14
+ `T-451`–`T-453` are implemented in the new `src/ui_assets.ts` module and wired through `src/ui.ts`:
15
+
16
+ - **T-451** β€” the studio now renders a fixed 76px left rail with six numbered sections (`01 OVERVIEW` … `06 ABOUT`), a tools group for the pre-existing views, a warm `#0c0a09` palette, and Archivo Black / JetBrains Mono typography. The rail uses words and numbers, not emoji.
17
+ - **T-452** β€” the header carries a project / global / mesh segmented switcher that refetches live. `/api/memories`, `/api/stats`, `/api/current`, `/api/wiki`, `/api/user-profile` and `/api/audit` resolve the scope; the global store (`~/.memory`) opens lazily and is never created by a read; mesh results carry `origin_project`. Mutations stay project-scoped and the studio shows a scope banner whenever it is not viewing the project store.
18
+ - **T-453** β€” CSS, markup and client JS are split out of the old 2,700-line template literal and served from `/assets/studio.css` and `/assets/studio.js` with strong ETags, pre-gzipped buffers, `Vary: Accept-Encoding` and 304 fast paths. The standalone export inlines the same modules.
19
+
20
+ Gate at merge: `bun test` **1451 pass / 0 fail** across 217 files, `tsc --noEmit` clean, `bun run build` 434 modules. **Landed in [PR #337](https://github.com/harshsinghmp/musememory/pull/337) at `d0c9600`** (2026-11-08); `check:landed` β†’ `RESULT: LANDED`.
21
+
22
+ ### Gauntlet run β€” CAPPED at the 5-round ceiling (2026-11-08)
23
+
24
+ Ran the bounded gauntlet loop against this PR (contract + ledger + packet in `.agents/artifacts/gauntlet-wave23-pr1/`). Five rounds: Fresh Critic scores **5.95 β†’ 7.63 β†’ 7.90 β†’ 8.85 β†’ 7.99**. Both R5 blockers were confirmed closed (mesh-link cache invalidation; scope-generation guards on every scoped fetch); the final critic left only small markup/ARIA/banner defects, which were fixed in the post-ceiling Integrator delta and verified by the gate but not re-critiqued. The packet is explicitly **CAPPED, not a PASS**. Final gate: **1450/0**, tsc clean, build 434 modules, zero overflow at 375/768/1280, 44Γ—44 targets at 375/768, headers 4/4 (HSTS N/A), per-encoding ETags + wildcard 304 + 406 negotiation, secret scan clean. Residual debt (scope-race test, CSP `unsafe-inline`, mesh read-only store minting, duplicated `escapeHtml`, standalone export zeros) is in `TECHNICAL_DEBT.md`.
25
+
26
+ ---
27
+
28
+ ## πŸ”§ Session β€” Sync Recovery (2026-11-03)
29
+
30
+ Restored `AGENTS.md` byte-exact from HEAD after an `updateagents` run from the umbrella directory replaced it (and persona files in sibling repos) with three-line adapters. Added `.commandcode/` and `.stversions/` to `.gitignore`, made the Syncthing ignore rules canonical in `~/.dotfiles/syncthing/`, and recorded the workspace-isolation invariant. The engine fix now stops at nested repository roots and refuses umbrella directories; the global install was refreshed. Repo-local recovery for `muse-agents` and `muse-skills` is owned by their respective agents.
31
+
32
+ ---
33
+
8
34
  ## πŸ›οΈ Wave 29 β€” Sovereign Ecosystem Migration & Decommissioning Complete (2026-10-26)
9
35
 
10
36
  All personal identity, telos, operational rules, and hardware terrain scanning migrated into sovereign `musememory` engines, native Vibeguard secret scanning, and de-LifeOSified agent governance. Legacy import tools have been permanently purged from source:
@@ -139,7 +165,7 @@ on any blocking failure, so CI runs it. Report:
139
165
  ---
140
166
 
141
167
  ## ⏭️ Next Up (Post-Release Focus)
142
- - **Wave 23: Dashboard Overhaul, Terrain Maps & High-Speed Agent Hub (`T-405`–`T-422`)**:
168
+ - **Waves 23–25 are complete.** Next is **Wave 26–29** (`T-432`–`T-443`): AST associative retrieval (`T-432`–`T-435`), branchable/enclave memory (`T-436`–`T-439`), test-driven reinforcement (`T-440`–`T-443`). Site note: unblock the Astro/cookie prerender error before any visual QA on the new pages:
143
169
  - Full UI overhaul inspired by Ryoku Rashin (`http://127.0.0.1:3600`): fixed 76px left-rail cyber-minimalist navigation, instant Canvas Graph ↔ Filterable List toggle, 60fps kinetic-settling physics loop, and 52-week activity calendar heatmap.
144
170
  - Multi-scope switcher: Project Scope (`./.memory`) vs Global User Scope (`~/.memory`) vs Cross-Project Mesh.
145
171
  - Workspace Terrain Maps (`stack.md`, `habits.md`, `ownership.md`, `packages.md`, `repo.md`, `logs.md`) for token-efficient agent orientation.
@@ -154,6 +180,34 @@ on any blocking failure, so CI runs it. Report:
154
180
  ---
155
181
 
156
182
  ## 🏁 Recently Landed Waves (Verified on `dev`)
183
+ - [x] **Outcome pilot + RC blockers** (2026-11-09) β€” with/without pilot 2/2 vs 1/2; latency claims corrected to p95 targets; T-450 ADR-008 boundary; overlay GC, branch root identity, enclave put lock.
184
+ - [x] **Evidence + key lifecycle** (2026-11-09) β€” dogfood benchmark (hit@3 10/10, MRR 0.933, 68% token savings), evidence ledger with 2 quarantined claims, benchmark title-less crash fixed, `enclave keys/prune`, backup drill, runbook.
185
+ - [x] **Enclave key rotation + client-scope descope** (2026-11-09) β€” versioned keyring, `enclave rotate`, old-key rollback; `scope: client` descoped per ADR-007.
186
+ - [x] **Attestation v2 + merge guard** (2026-11-09) β€” seq/head/key-id pinning, truncation rejection; semantic merge blocks untrusted lineage, inflation and protected constraints.
187
+ - [x] **Wave 27 hardening** (2026-11-09) β€” audit-REJECT fixes: strict names, GCM AAD/key id, audited overlay merge via T-439, fail-closed merge3, corrected claims. Gate 1521/0; CAPPED.
188
+ - [x] **Wave 27 (`T-436`–`T-439`)** (2026-11-09) β€” branch overlays (#377), encrypted enclaves (#378), packet attestations (#379), three-way merge (#380). Tests 1514/0.
189
+ - [x] **Sensitive-read audit + project identity** (2026-11-09) β€” `read` audit events for `scope: "all"`/untrusted; configured project via env/config/`memory project`.
190
+ - [x] **Code-context security boundary** (2026-11-09) β€” project-scoped by default, untrusted opt-in, read-time redaction/sanitization, bounded inputs; `muse_memory_for_code` accepts project/include_untrusted.
191
+ - [x] **Unified code resolver** (2026-11-09) β€” `resolveMemoriesForCode` is the single matcher; pre-flight and PR context adapt it.
192
+ - [x] **Pre-flight surfaces** (2026-11-09) β€” PreToolUse hook + read-only `muse_preflight` MCP tool; 119 tools.
193
+ - [x] **Wave 26 (`T-432`–`T-435`)** (2026-11-09) β€” recursive-CTE associative expansion (`T-432`, direct `dev`), pre-flight context (`T-433`, #370), blast-radius risk (`T-434`, #371), anchor-matched auto-recall (`T-435`, #372). Tests 1495/0.
194
+ - [x] **Site build + scaffolding wiring** (2026-11-08) β€” PR #367 (Node Astro launcher; site:qa 17/17 SHIP) and #368 (briefing episodes, explicit `asserted_at` belief clock in `as_of`, duplicate decay removed).
195
+ - [x] **Wave 24–25 review hardening** (2026-11-08) β€” PR #366 merged at `a485875`; playbook rail preservation, fail-loud corrupt store, id-keyed updates, unique episode ids, goal-first phases, epoch timestamps, CLI flags, doc honesty. Gauntlet: REJECT β†’ fixed, CAPPED; website visual gate blocked by pre-existing Astro/cookie prerender error.
196
+ - [x] **Wave 24 (`T-423`–`T-426`)** (2026-11-08) β€” terminal demo script/recipe, vendored sql.js playground, capability-only benchmark matrix, accessible agent demos. PRs #362–#365. Site prerender has a pre-existing Astro/cookie CJS blocker (entrypoints compile).
197
+ - [x] **Wave 25 (`T-427`–`T-431`)** (2026-11-08) β€” playbooks, episodes, bi-temporal belief windows, reinforced decay, and playbook CLI/MCP commands. PRs #356–#361.
198
+ - [x] **Post-Wave-23 debt sweep** (2026-11-08) β€” PR #355 merged at `432cf01`: agents discovery cache, backup retention, unwire tool-grant cleanup, mesh freshness bucket.
199
+ - [x] **Wave 23 gauntlet hardening** (2026-11-08) β€” PR #354 merged at `d2ea59c`; complete config backups (XDG-aware, timestamped, fail-loud), unknown-agent 404s, honest wire reporting, WAL/layout cache freshness, 44px phone controls. Gauntlet: 7.35 critic β†’ REQUEST-CHANGES review β†’ fixed; **CAPPED, not a PASS**. Evidence: `.agents/artifacts/gauntlet-wave23-pr456/`.
200
+ - [x] **Wave 23 PR 6 (`T-466`–`T-468`)** (2026-11-08) β€” projection cache, hidden-tab pause and the UI performance benchmark. **Wave 23 complete.** PRs #351–#353.
201
+ - [x] **Wave 23 PR 5 (`T-463`–`T-465`)** (2026-11-08) β€” poster About panel, quick-start cards and searchable command deck. PRs #348–#350.
202
+ - [x] **Wave 23 PR 4 (`T-460`–`T-462`)** (2026-11-08) β€” agents hub: discovery statuses, one-click wire/unwire with `.bak` backups and harness opt-in, point-any-agent manifest. PRs #345–#347.
203
+ - [x] **Wave 23 PR 3 / `T-459`** (2026-11-08) β€” PR #344 merged; generation-time redaction plus a token-savings and leak test (`test/vault_terrain.test.ts`).
204
+ - [x] **Wave 23 PR 3 / `T-458`** (2026-11-08) β€” PR #343 merged at `65113af`; terrain vault split-pane (tree, GEN badges, markdown viewer, REINDEX scanline).
205
+ - [x] **Wave 23 PR 3 / `T-457`** (2026-11-08) β€” PR #342 merged at `8006427`; deterministic workspace terrain generator and `terrain --workspace` CLI.
206
+ - [x] **Wave 23 PR 2 / `T-455`** (2026-11-08) β€” PR #340 merged at `05b4fdf`; energy-settling loop with wake hooks, deterministic ring seed, pointer capture.
207
+ - [x] **Wave 23 PR 2 / `T-456`** (2026-11-08) β€” PR #341 merged at `436d198`; scope-aware activity endpoint, 52-week heatmap and agent session cards.
208
+ - [x] **T-449 test hermeticity** (2026-11-08) β€” PR #338 merged at `94620895`; `findProjectRoot` no longer adopts `$HOME`/`/` as a project root, doc-link scan skips local sync state, regression test with a fake home. Earlier caller-scan fix merged via #337 (`c0f7aef`). Issue #336 closes.
209
+ - [x] **Wave 23 PR 2 / `T-454`** (2026-11-08) β€” PR #339 merged at `3e621fa`; instant graph/list toggle with a sortable table, `aria-sort`, and a 100ms debounced filter.
210
+ - [x] **Wave 23 PR 1 (`T-451`–`T-453`)** (2026-11-08) β€” merged in PR #337 at `d0c9600`; `check:landed` β†’ **LANDED**. Left rail, dual-scope switcher, modular ETag/gzip assets, read-only global/mesh reads, 375/768/1280 verified, 1451/0 at merge. Follow-ups in PR #337's thread: stateful-regex flake fixed (`c0f7aef`), npm Bun CI fallback (`b298beb`). Gauntlet verdict: CAPPED at 7.99 (not a 9.0 PASS) β€” evidence in `.agents/artifacts/gauntlet-wave23-pr1/`.
157
211
  - [x] **Released: v3.1.2** (2026-10-25) β€” completes the silent-casing fan-out:
158
212
  - PR #330 merged at `d7e875b` (*"Release: v3.1.2"*); annotated tag
159
213
  [`v3.1.2`](https://github.com/harshsinghmp/musememory/releases/tag/v3.1.2)
@@ -415,6 +469,7 @@ Removed remaining competitor product names and external comparison links from we
415
469
  - **Zero External Daemons**: All operations must execute in-process via SQLite (`memory.db`) or flat files. Never depend on background servers.
416
470
  - **Fail Fast**: Throw loudly on secret detection, invalid schema shapes, or unconfirmed supersessions.
417
471
  - **Verification Gate**: Before declaring changes complete, `bun test`, `bun run build`, and `tsc --noEmit` must pass.
472
+ - **Workspace Isolation & Sync Boundary**: Never run repo-mutating scaffolders from a parent directory; nested clones are separate scopes. Never sync `.git` or a live SQLite store (`.memory/`).
418
473
 
419
474
  ## 1. Verified Shipped Reality
420
475
  - **2026-10-22**: T-321 per-project health gate scope
@@ -27,3 +27,11 @@
27
27
  ### ADR-006: Harness-Independent Hook Installation (Global Standard First)
28
28
  - **Decision**: `memory hooks install` resolves its target as explicit `settingsPath` β†’ explicit `--harness` opt-in β†’ global standard (project `.agents/hooks.json` when a `.agents/` directory exists, otherwise `~/.agents/hooks.json`). A harness path (e.g. `~/.claude/settings.json`) is never auto-selected, and `connectAgent` skips harness-specific agents without an explicit `--harness` opt-in.
29
29
  - **Rationale** (principal ruling, 2026-10-15): the runtime is vendor-neutral β€” hooks must not couple memory to one harness or create a harness directory unprompted. A pre-existing harness settings file does not imply consent; only `--harness claude` does.
30
+
31
+ ### ADR-007: Client Scope Descoped from the Memory Store
32
+ - **Decision** (2026-11-09): `scope: client` is not added to `MemoryScope`. Client enclaves remain an explicit encrypted vault (`memory enclave create|list|put|rotate`) outside normal retrieval, recall, and MCP surfaces.
33
+ - **Rationale**: wiring a tenant scope through store/retrieval/sync would make cross-tenant disclosure a single filter bug away. The encrypted vault has its own key lifecycle and is auditable at the CLI boundary. Revisit only with a tenant-aware store substrate and per-client key rotation tests.
34
+
35
+ ### ADR-008: Agent Workspace Tracking Boundary (T-450)
36
+ - **Decision** (2026-11-09): keep `.agents/standards/`, `.agents/skills/`, `.agents/context/`, `.agents/brand/`, `.agents/artifacts/` and `.agents/research/` tracked. Ignore new ephemeral state under `.agents/plans/`, `.agents/archive/`, `.agents/worktree-leases/` and `.agents/scratch/`. Already-tracked files stay tracked for history; the rule applies to new files.
37
+ - **Rationale**: standards, skills, decisions, evidence and audit artifacts are collaborator-facing truth. Plans, leases and scratch are per-agent working state that causes churn and merge noise. Removing already-tracked history would break links in prior tickets, so the boundary moves forward only.
@@ -181,7 +181,7 @@ Currently, Muse Memory excels at **Semantic Memory** (facts, rules, ADRs, prefer
181
181
  #### B. Multi-Tenant Agency Enclaves (`scope: client`)
182
182
  - Tailored for Harsh's agency model with 4 internal divisions: Sol, Jasper, Crew, Nexus.
183
183
  - **Isolation Rule**:
184
- - `scope: client`: Enclave isolated per client ID (`client_id: "client-acme"`).
184
+ - `scope: client`: **Descoped** (ADR-007). Enclaves are explicit encrypted vaults; not a store scope.
185
185
  - Client A’s confidential database schemas and domain logic are never exposed to Client B.
186
186
  - Universal architectural principles (`scope: global`) propagate freely across all client workspaces.
187
187
 
@@ -0,0 +1,89 @@
1
+ # Evidence Ledger
2
+
3
+ ## Dashboard
4
+
5
+ | Category | Count |
6
+ |---|---|
7
+ | DECISION | 1 |
8
+ | CLAIM | 5 |
9
+ | STATUS | 1 |
10
+
11
+ | Status | Count |
12
+ |---|---|
13
+ | VERIFIED | 4 |
14
+ | QUARANTINED | 1 |
15
+ | ACTIVE | 1 |
16
+
17
+ **Health score**: 5 / 6 verifiable entries (83%) β€” one claim is quarantined, not contradicted.
18
+
19
+ ---
20
+
21
+ ### EVD-001 | 2026-11-09 | STATUS
22
+ **Statement**: `memory benchmark` crashed on title-less memories; fixed in the token-budget packing loop.
23
+ **Category**: `STATUS`
24
+ **Confidence**: `[RAW]` β€” reproduced with `bun bin/musememory.ts benchmark --iterations 5` (TypeError at `item.entry.title.length`), then passed after the null-safe patch.
25
+ **Epistemology**: `[EMPIRICAL]`
26
+ **Evidence**: `src/retrieval/ranking.ts` token estimate; `test/ranking_titleless.test.ts`.
27
+ **Status**: `ACTIVE`
28
+
29
+ ---
30
+
31
+ ### EVD-002 | 2026-11-09 | CLAIM
32
+ **Statement**: On a 34-entry synthetic corpus, retrieval hit the target in the top 3 for 10/10 queries (MRR 0.933, 2.69 ms average, 68% token savings).
33
+ **Category**: `CLAIM`
34
+ **Confidence**: `[RAW]` β€” scratch benchmark run, output JSON retained in session.
35
+ **Epistemology**: `[EMPIRICAL]`
36
+ **Evidence**: `docs/evidence/2026-11-dogfood.md`; query set and metrics table.
37
+ **Status**: `VERIFIED`
38
+
39
+ ---
40
+
41
+ ### EVD-003 | 2026-11-09 | CLAIM
42
+ **Statement**: On the real 799-memory store, the benchmark reports FTS5 p50 12.81 ms, context assembly p50 15.64 ms, and 99% token compression.
43
+ **Category**: `CLAIM`
44
+ **Confidence**: `[RAW]` β€” `bun bin/musememory.ts benchmark --iterations 10`.
45
+ **Epistemology**: `[EMPIRICAL]`
46
+ **Evidence**: benchmark table in `docs/evidence/2026-11-dogfood.md`.
47
+ **Status**: `VERIFIED`
48
+
49
+ ---
50
+
51
+ ### EVD-004 | 2026-11-09 | CLAIM
52
+ **Statement**: The engine targets p95 latency: hot cache < 250 Β΅s, FTS5 < 50 ms, context < 50 ms.
53
+ **Category**: `CLAIM`
54
+ **Confidence**: `[RAW]` β€” 50-iteration benchmark: 176.25 Β΅s, 15.66 ms, 26.69 ms.
55
+ **Epistemology**: `[EMPIRICAL]`
56
+ **Evidence**: `docs/evidence/2026-11-dogfood.md`; benchmark `[TARGET]` line.
57
+ **Status**: `VERIFIED` β€” the earlier "< 15 ms" claim was a p50 value mislabeled as a bound; it has been corrected.
58
+
59
+ ---
60
+
61
+ ### EVD-005 | 2026-11-09 | CLAIM
62
+ **Statement**: Muse Memory improves coding-agent task success.
63
+ **Category**: `CLAIM`
64
+ **Confidence**: `[INFER]` β€” plausible from retrieval quality, but no with/without task-outcome study exists.
65
+ **Epistemology**: `[SPECULATIVE]`
66
+ **Evidence**: none yet; retrieval evidence only (EVD-002/003).
67
+ **Status**: `QUARANTINED` β€” a 2-task pilot (EVD-007) is suggestive, not sufficient.
68
+
69
+ ---
70
+
71
+ ### EVD-006 | 2026-11-09 | DECISION
72
+ **Statement**: Before starting Wave 28, fix the benchmark defect, record evidence, harden the enclave key lifecycle, then cut a release candidate.
73
+ **Category**: `DECISION`
74
+ **Confidence**: `[RAW]` β€” based on EVD-001 through EVD-005.
75
+ **Epistemology**: `[EMPIRICAL]`
76
+ **Options considered**: (a) continue feature waves; (b) evidence + security + release gate; (c) release immediately without evidence.
77
+ **Trade-offs**: (b) delays new features but converts unverified claims into measurable ones and protects client data.
78
+ **Evidence**: this ledger + `TECHNICAL_DEBT-wave27.md`.
79
+ **Status**: `ACTIVE`
80
+
81
+ ---
82
+
83
+ ### EVD-007 | 2026-11-09 | CLAIM
84
+ **Statement**: In a 2-task pilot, an agent with memory passed 2/2 hidden tests; the same model without memory passed 1/2 (missed the 32-character tag cap).
85
+ **Category**: `CLAIM`
86
+ **Confidence**: `[RAW]` β€” hidden Bun tests run against both fixture implementations.
87
+ **Epistemology**: `[EMPIRICAL]`
88
+ **Evidence**: `docs/evidence/2026-11-outcome-pilot.md`.
89
+ **Status**: `VERIFIED` β€” pilot only (n=2, single run).
@@ -53,7 +53,7 @@
53
53
  - **Git-Aware Branchable Memory Overlays (`memory branch`)**:
54
54
  - Branch-isolated working memory overlays that mirror git branch lifecycles (`feature/*`, `fix/*`).
55
55
  - Automated `memory branch-merge` command with interactive semantic contradiction resolution when merging feature branches into `main`.
56
- - **Agency Multi-Tenant Enclaves (`scope: client`)**:
56
+ - **Agency Multi-Tenant Enclaves** (`scope: client` descoped β€” ADR-007; vaults are explicit):
57
57
  - Cryptographically isolated client memory vaults tailored for multi-client agency delivery (Sol, Jasper, Crew, Nexus).
58
58
  - Enforces zero cross-client knowledge contamination while allowing global engineering invariants (`scope: global`) to propagate safely.
59
59
  - **Zero-Knowledge Memory Attestation**:
@@ -380,11 +380,11 @@ Exploded ticket plan: `.agents/context/ticket-plan.md` (269 tracked tickets, 21
380
380
  - `T-387`: Client configuration recipes & shared+personal scoping governance
381
381
 
382
382
  9. **Wave 23: Dashboard Overhaul, Workspace Terrain Maps & High-Speed Agent Hub (v3.1.0 Roadmap)**
383
- - `T-405`–`T-407`: Cyber-minimalist left-rail poster navigation shell, dual-scope switcher (`project` | `global` | `mesh`), and sub-10ms UI static route serving
384
- - `T-408`–`T-410`: Memory Studio 2.0 with instant Canvas Graph ↔ Filterable List toggle, 60fps kinetic-settling physics loop, and 52-week activity calendar heatmap
385
- - `T-411`–`T-413`: Workspace Terrain Generator (`stack.md`, `habits.md`, `ownership.md`, `packages.md`, `repo.md`, `logs.md`) & split-pane markdown reader with scanline reindexing
386
- - `T-414`–`T-416`: Universal Agents Hub with live auto-discovery (Antigravity, OpenCode, Claude Code, Cursor, Copilot, Hermes), 1-click MCP wiring, and drop-in prompt snippets
387
- - `T-417`–`T-419`: Poster-style About panel (WHAT, THE PIECES live facts table, PRIVACY guarantee), multi-agent quick start guide, and interactive CLI command deck
388
- - `T-420`–`T-422`: In-memory SQLite read projection cache, tab visibility sensors for zero idle CPU burn, and headless UI performance benchmark suite
383
+ - `T-451`–`T-453`: Cyber-minimalist left-rail poster navigation shell, dual-scope switcher (`project` | `global` | `mesh`), and sub-10ms UI static route serving
384
+ - `T-454`–`T-456`: Memory Studio 2.0 with instant Canvas Graph ↔ Filterable List toggle, 60fps kinetic-settling physics loop, and 52-week activity calendar heatmap
385
+ - `T-457`–`T-459`: Workspace Terrain Generator (`stack.md`, `habits.md`, `ownership.md`, `packages.md`, `repo.md`, `logs.md`) & split-pane markdown reader with scanline reindexing
386
+ - `T-460`–`T-462`: Universal Agents Hub with live auto-discovery (Antigravity, OpenCode, Claude Code, Cursor, Copilot, Hermes), 1-click MCP wiring, and drop-in prompt snippets
387
+ - `T-463`–`T-465`: Poster-style About panel (WHAT, THE PIECES live facts table, PRIVACY guarantee), multi-agent quick start guide, and interactive CLI command deck
388
+ - `T-466`–`T-468`: In-memory SQLite read projection cache, tab visibility sensors for zero idle CPU burn, and headless UI performance benchmark suite
389
389
 
390
390
 
@@ -158,10 +158,10 @@
158
158
 
159
159
  ## Wave E β€” P2 TEAM / SERVER / UI
160
160
 
161
- - [ ] T-150 Β· MCP Streamable HTTP transport (2025-06-18 spec) Β· mcp.ts Β· new Β· F
162
- - [ ] T-151 Β· Origin validation + session id + protocol version headers Β· mcp.ts Β· new Β· F
161
+ - [x] T-150 Β· landed Wave 7 (PR #84) β€” verified 2026-11-08: `startHttpMcpServer` + `StreamableHTTPServerTransport` (`src/mcp.ts:3353-3494`), covered by `test/mcp_http_transport.test.ts` Β· mcp.ts Β· F
162
+ - [x] T-151 Β· landed Wave 7 (PR #86) β€” verified 2026-11-08: protocol-version allowlist/echo (`src/mcp.ts:3199,3406-3426`), Origin 403 (`:3428-3445`), Host/DNS-rebind 403 (`:3447-3464`), session id (`:3360`); `test/mcp_http_transport.test.ts:129-365` Β· mcp.ts Β· F
163
163
  - [ ] T-152 Β· SSE resumability for long polls Β· mcp.ts Β· new Β· F
164
- - [ ] T-153 Β· per-tenant SQLite DB files (team mode) Β· store, root Β· new Β· F
164
+ - [x] T-153 Β· landed Wave 7 (PR #90) β€” verified 2026-11-08: `resolveDbFilename` team/tenant DBs (`src/store.ts:138-158`), tenant dirs + `tenant_<id>.db` (`src/root.ts:153-175`), covered by `test/tenant_isolation.test.ts` Β· store, root Β· F
165
165
  - [ ] T-154 Β· extend `sync/pool.ts` to HTTP transport Β· sync Β· new Β· F
166
166
  - [ ] T-155 Β· git/YAML-mirror distribution path for team sync Β· sync Β· new Β· F
167
167
  - [ ] T-156 Β· Litestream sidecar backup docs+compose Β· docs, scripts Β· new Β· N
@@ -430,7 +430,7 @@ Two independent senior reviews of the plan (strategic + implementation-executabi
430
430
  - [x] T-381 Β· landed Wave 6 β€” embeddings spike: validate llama-cpp local embeddings E2E on the spec branch before ANY of T-071/136/137/138/139 ships Β· branch: feat/wave-6-embeddings-eval-harness Β· F
431
431
  - [ ] T-382 Β· deprecation policy: `deprecated: true` metadata + alias retention + "removed in vX"; prerequisite for T-201/T-202/T-203 Β· N
432
432
  - [x] T-383 Β· landed #71 β€” R1 red test: legacy store + added column throws before YAML write, passes after runMigrations Β· test/migrate.test.ts Β· F
433
- - [ ] T-384 Β· R2 fixture: 120 memories / 3 projects / 30 superseded / 30 expired β†’ assert `hybridSearch` returns only matching-project non-superseded rows. Baselines T-303 + T-308 + T-140 at once Β· F
433
+ - [x] T-384 Β· R2 fixture β€” verified 2026-11-08: `test/retrieval_engine.test.ts:53-91` builds 3 projects Γ— 40 = 120 entries (20 live / 10 superseded / 10 expired per project) and asserts project isolation at scale through the hybrid path. Variance: 60 expired rows, not 30; driven via `RetrievalEngine.search` rather than `hybridSearch()` directly Β· F
434
434
  - [ ] T-385 Β· R3 baseline: 40 must-return queries from the principal's own `.memory/` + recall-set grading β€” gate Wave 2 on the number before T-070 ships Β· F
435
435
 
436
436
  **Principal decisions β€” all resolved 2026-10-14:**
@@ -552,7 +552,7 @@ Canonical detailed artifact: `.agents/artifacts/audit-and-realigned-roadmap-2026
552
552
  21. **Wave 20: Quality Telemetry, Honesty Gates & Retrieval Fault Signals** (`T-127`–`T-135`) β€” [x] Landed on dev
553
553
  22. **Wave 21: Invariant Mutation Safety & Constitutional Immunity** (`T-050`, `T-313`) β€” [x] Landed on dev
554
554
  23. **Wave 22: Failure Attribution & Negative Mining** (`T-144`, `T-314`, `T-315`) β€” [x] Landed on dev
555
- 24. **Wave 23: Dashboard Overhaul, Terrain Maps & High-Speed Agent Hub** (`T-405`–`T-422`) β€” [ ] Active Roadmap
555
+ 24. **Wave 23: Dashboard Overhaul, Terrain Maps & High-Speed Agent Hub** (`T-451`–`T-468`) β€” [ ] Active Roadmap
556
556
 
557
557
  ---
558
558
 
@@ -560,35 +560,37 @@ Canonical detailed artifact: `.agents/artifacts/audit-and-realigned-roadmap-2026
560
560
 
561
561
  Source: Deep research on local Agent OS (Ryoku Rashin `http://127.0.0.1:3600`) and architectural design blueprint (`.agents/artifacts/2026-10-26-dashboard-rehaul-rashin-research-and-wave-23-tickets.md`).
562
562
 
563
+ > **Renumbered 2026-11-08.** This wave originally used `T-405`–`T-422`, which collided with the already-landed `T-405` (conflicted-memory injection, PR #321) and `T-406` (project-casing, PR #322). The block is now `T-451`–`T-468`; ticket text is unchanged. **PR 1 (`T-451`–`T-453`) implemented locally 2026-11-08** β€” see the annotations below and v15; not committed/pushed, so not landed.
564
+
563
565
  ## PR 1 / Issue #1: Left-Rail Cyber-Minimalist Shell, Typography & Dual-Scope Switcher
564
- - [ ] T-405 Β· UI Shell: Fixed 76px vertical left rail with clean brand mark, numbered sections (`01 OVERVIEW`..`06 ABOUT`), warm-dark aesthetic, JetBrains Mono & Archivo Black typography (English-only, zero kanji) Β· src/ui.ts Β· F
565
- - [ ] T-406 Β· Dual-Scope Memory Switcher: Header segment toggle `[ Local Project Scope (./.memory) | Global User Scope (~/.memory) | Cross-Project Mesh ]` with instant live refetch Β· src/ui.ts, src/store.ts, src/root.ts Β· F
566
- - [ ] T-407 Β· Sub-10ms UI Route Architecture: Split single embedded HTML into modular static cached templates with ETag headers and pre-compressed buffers Β· src/ui.ts Β· F
566
+ - [x] T-451 Β· UI Shell: Fixed 76px vertical left rail with clean brand mark, numbered sections (`01 OVERVIEW`..`06 ABOUT`), warm-dark aesthetic, JetBrains Mono & Archivo Black typography (English-only, zero kanji) Β· src/ui.ts Β· F β€” **LOCAL 2026-11-08**: implemented in `src/ui_assets.ts` (rail with six numbered sections + tools group, warm `#0c0a09` palette, Archivo Black / JetBrains Mono, zero emoji in the rail, About anchor); `test/ui.test.ts` T-451; gate 1449/0, tsc clean, build 434 modules; gauntlet CAPPED at the 5-round ceiling (last critic 7.99 β€” see `.agents/artifacts/gauntlet-wave23-pr1/`); landed PR #337 at `d0c9600`.
567
+ - [x] T-452 Β· Dual-Scope Memory Switcher: Header segment toggle `[ Local Project Scope (./.memory) | Global User Scope (~/.memory) | Cross-Project Mesh ]` with instant live refetch Β· src/ui.ts, src/store.ts, src/root.ts Β· F β€” **LOCAL 2026-11-08**: segmented switcher wired to `?scope=`; `/api/memories`, `/api/stats`, `/api/current`, `/api/wiki`, `/api/user-profile` and `/api/audit` resolve project / lazy global `~/.memory` / mesh aggregation (`origin_project`, first 200); global and mesh reads open with `skipSyncConstraints`/`skipAutoWiki` and never re-sync a store; mutations stay project-scoped behind a visible scope banner and `requireProjectScope()`; `test/ui.test.ts` T-452 + `test/mesh.test.ts` read-only test; landed PR #337 at `d0c9600`.
568
+ - [x] T-453 Β· Sub-10ms UI Route Architecture: Split single embedded HTML into modular static cached templates with ETag headers and pre-compressed buffers Β· src/ui.ts Β· F β€” **LOCAL 2026-11-08**: `src/ui_assets.ts` splits CSS / markup / client JS; `/assets/studio.css` + `/assets/studio.js` serve strong ETags, pre-gzipped buffers, `Vary: Accept-Encoding` and 304 fast paths; standalone export inlines the same modules; `test/ui.test.ts` T-453; landed PR #337 at `d0c9600`.
567
569
 
568
570
  ## PR 2 / Issue #2: Memory Studio 2.0: Instant Graph/List View Toggle, Physics Settling & Activity Heatmap
569
- - [ ] T-408 Β· Graph vs List Toggle Switch: Instant segment toggle between interactive Canvas Graph and filterable/sortable data table with live 100ms debounced search Β· src/ui.ts Β· F
570
- - [ ] T-409 Β· Energy-Settling Canvas Physics Engine: Ring-seeded 60fps force-directed graph with auto-settling kinetic loop (`energy < SETTLE` halts rAF) and pointer capture Β· src/ui.ts Β· F
571
- - [ ] T-410 Β· Activity Calendar Heatmap & Agent Sessions Card: 52-week activity commit-style calendar for memory mutations + agent session log cards with model tags, timestamps, message counts Β· src/ui.ts, src/audit.ts Β· F
571
+ - [x] T-454 Β· LANDED 2026-11-08 β€” PR #339 (`3e621fa`): Graph vs List Toggle Switch: Instant segment toggle between interactive Canvas Graph and filterable/sortable data table with live 100ms debounced search Β· src/ui.ts Β· F
572
+ - [x] T-455 Β· LANDED 2026-11-08 β€” PR #340 (`05b4fdf`): Energy-Settling Canvas Physics Engine: Ring-seeded 60fps force-directed graph with auto-settling kinetic loop (`energy < SETTLE` halts rAF) and pointer capture Β· src/ui.ts Β· F
573
+ - [x] T-456 Β· LANDED 2026-11-08 β€” PR #341 (`436d198`): Activity Calendar Heatmap & Agent Sessions Card: 52-week activity commit-style calendar for memory mutations + agent session log cards with model tags, timestamps, message counts Β· src/ui.ts, src/audit.ts Β· F
572
574
 
573
575
  ## PR 3 / Issue #3: Workspace Terrain Vault: Auto-Generated Context Maps & Split Markdown Reader
574
- - [ ] T-411 Β· Workspace Terrain Generator Engine: Compile deterministic workspace maps: `stack.md`, `habits.md`, `ownership.md`, `packages.md`, `repo.md`, `logs.md` Β· src/vault/index.ts, src/cli.ts Β· F
575
- - [ ] T-412 Β· Terrain Vault Split-Pane UI: Left file tree with `GEN` badges and right rendered markdown viewer with scanline animation on `REINDEX` Β· src/ui.ts Β· F
576
- - [ ] T-413 Β· Terrain Token-Efficiency Test & Benchmark: Test suite verifying deterministic generation, zero secret leaks, and token savings Β· test/vault_terrain.test.ts Β· F
576
+ - [x] T-457 Β· LANDED 2026-11-08 β€” PR #342 (`8006427`): Workspace Terrain Generator Engine: Compile deterministic workspace maps: `stack.md`, `habits.md`, `ownership.md`, `packages.md`, `repo.md`, `logs.md` Β· src/vault/index.ts, src/cli.ts Β· F
577
+ - [x] T-458 Β· LANDED 2026-11-08 β€” PR #343 (`65113af`): Terrain Vault Split-Pane UI: Left file tree with `GEN` badges and right rendered markdown viewer with scanline animation on `REINDEX` Β· src/ui.ts Β· F
578
+ - [x] T-459 Β· LANDED 2026-11-08 β€” PR #344: Terrain Token-Efficiency Test & Benchmark: Test suite verifying deterministic generation, zero secret leaks, and token savings Β· test/vault_terrain.test.ts Β· F
577
579
 
578
580
  ## PR 4 / Issue #4: Universal Agents Hub: Detection, 1-Click MCP Wiring & Prompt Snippets
579
- - [ ] T-414 Β· Coding Agent Auto-Discovery: Detect installed agents (Antigravity, OpenCode, Claude Code, Cursor, Copilot CLI, Hermes, Crush, Goose, Aider, Codex) with `WIRED`/`UNWIRED`/`ABSENT` status Β· src/connect.ts, src/ui.ts Β· F
580
- - [ ] T-415 Β· 1-Click Wire / Unwire API: `POST /api/agents/wire` and `POST /api/agents/unwire` writing safe native MCP configs with backup protection Β· src/ui.ts, src/connect.ts Β· F
581
- - [ ] T-416 Β· "Point Any Agent" Manifest & One-Click Copy Snippet: Display exposed filesystem paths, MCP endpoints, and one-click copyable system prompt snippet for custom LLMs Β· src/ui.ts Β· F
581
+ - [x] T-460 Β· LANDED 2026-11-08 β€” PR #345: Coding Agent Auto-Discovery: Detect installed agents (Antigravity, OpenCode, Claude Code, Cursor, Copilot CLI, Hermes, Crush, Goose, Aider, Codex) with `WIRED`/`UNWIRED`/`ABSENT` status Β· src/connect.ts, src/ui.ts Β· F
582
+ - [x] T-461 Β· LANDED 2026-11-08 β€” PR #346: 1-Click Wire / Unwire API: `POST /api/agents/wire` and `POST /api/agents/unwire` writing safe native MCP configs with backup protection Β· src/ui.ts, src/connect.ts Β· F
583
+ - [x] T-462 Β· LANDED 2026-11-08 β€” PR #347: "Point Any Agent" Manifest & One-Click Copy Snippet: Display exposed filesystem paths, MCP endpoints, and one-click copyable system prompt snippet for custom LLMs Β· src/ui.ts Β· F
582
584
 
583
585
  ## PR 5 / Issue #5: About & Cognitive Mission Control: Architecture Specs, Quick Start & CLI Cheatsheet
584
- - [ ] T-417 Β· Poster-Style About Panel: Architectural poster with WHAT (mission), THE PIECES live facts table (SQLite, Scope, Constraints, Tools, Wiki, Audit), and PRIVACY zero-cloud guarantee Β· src/ui.ts Β· F
585
- - [ ] T-418 Β· Quick-Start Interactive Onboarding: Multi-step interactive setup cards for leading agents (Antigravity, OpenCode, Claude Code, Cursor) with copyable commands Β· src/ui.ts Β· F
586
- - [ ] T-419 Β· "Go Deeper" Interactive Command Deck: Searchable CLI command palette with copyable one-liners (`muse recall`, `muse capture`, `muse current`, `muse brief`, `muse doctor`, `muse adr`, `muse sync`) Β· src/ui.ts Β· F
586
+ - [x] T-463 Β· LANDED 2026-11-08 β€” PR #348: Poster-Style About Panel: Architectural poster with WHAT (mission), THE PIECES live facts table (SQLite, Scope, Constraints, Tools, Wiki, Audit), and PRIVACY zero-cloud guarantee Β· src/ui.ts Β· F
587
+ - [x] T-464 Β· LANDED 2026-11-08 β€” PR #349: Quick-Start Interactive Onboarding: Multi-step interactive setup cards for leading agents (Antigravity, OpenCode, Claude Code, Cursor) with copyable commands Β· src/ui.ts Β· F
588
+ - [x] T-465 Β· LANDED 2026-11-08 β€” PR #350: "Go Deeper" Interactive Command Deck: Searchable CLI command palette with copyable one-liners (`muse recall`, `muse capture`, `muse current`, `muse brief`, `muse doctor`, `muse adr`, `muse sync`) Β· src/ui.ts Β· F
587
589
 
588
590
  ## PR 6 / Issue #6: System Speed, In-Memory Caching & Performance Hardening
589
- - [ ] T-420 Β· In-Memory SQLite Read Projection Cache: Cache UI list and graph responses in memory, invalidated automatically on write transactions Β· src/ui.ts, src/cache.ts Β· F
590
- - [ ] T-421 Β· Fast-Exit & Visibility Sensors: Document `visibilitychange` listeners to stop all background polling intervals and animation frames when browser tab is inactive Β· src/ui.ts Β· F
591
- - [ ] T-422 Β· Automated UI Performance Benchmark Suite: Headless benchmark asserting sub-10ms UI responses, 60fps graph rendering, and zero memory leaks Β· test/ui_performance.test.ts Β· F
591
+ - [x] T-466 Β· LANDED 2026-11-08 β€” PR #351: In-Memory SQLite Read Projection Cache: Cache UI list and graph responses in memory, invalidated automatically on write transactions Β· src/ui.ts, src/cache.ts Β· F
592
+ - [x] T-467 Β· LANDED 2026-11-08 β€” PR #352: Fast-Exit & Visibility Sensors: Document `visibilitychange` listeners to stop all background polling intervals and animation frames when browser tab is inactive Β· src/ui.ts Β· F
593
+ - [x] T-468 Β· LANDED 2026-11-08 β€” PR #353: Automated UI Performance Benchmark Suite: Headless benchmark asserting sub-10ms UI responses, 60fps graph rendering, and zero memory leaks Β· test/ui_performance.test.ts Β· F
592
594
 
593
595
  ---
594
596
 
@@ -597,29 +599,29 @@ Source: Deep research on local Agent OS (Ryoku Rashin `http://127.0.0.1:3600`) a
597
599
  Source: Strategic roadmaps, developer experience assets, R17–R20 tri-cognitive horizons, and LifeOS sovereignty audit.
598
600
 
599
601
  ## Wave 24: Showcase, Interactive Playground & DX Assets
600
- - [ ] T-423 Β· Terminal Showreel & GIF Recording: Script and record high-fidelity terminal demo (`showreel.mp4`, `muse-memory-demo.gif`) on v3.0.0 highlighting failure attribution, negative mining, and HOT.md compounding Β· assets/, docs/ Β· N
601
- - [ ] T-424 Β· Interactive WASM/SQLite Web Playground: In-browser memory studio preview on `apps/website` with zero backend server dependencies Β· apps/website Β· F
602
- - [ ] T-425 Β· Competitive Benchmark Showcase: Real-time latency, recall accuracy, and token-cost comparison matrix vs Mem0, Zep, and Letta Β· apps/website, docs/ Β· N
603
- - [ ] T-426 Β· Multi-Agent Interactive Demos: Interactive agent switcher in website docs demonstrating context injection across Antigravity, OpenCode, Claude Code, and Cursor Β· apps/website Β· N
602
+ - [x] T-423 Β· LANDED 2026-11-08 β€” PR #362: Terminal Showreel & GIF Recording: Script and record high-fidelity terminal demo (`showreel.mp4`, `muse-memory-demo.gif`) on v3.0.0 highlighting failure attribution, negative mining, and HOT.md compounding Β· assets/, docs/ Β· N
603
+ - [x] T-424 Β· LANDED 2026-11-08 β€” PR #365: Interactive WASM/SQLite Web Playground: In-browser memory studio preview on `apps/website` with zero backend server dependencies Β· apps/website Β· F
604
+ - [x] T-425 Β· LANDED 2026-11-08 β€” PR #363: Competitive Benchmark Showcase: Real-time latency, recall accuracy, and token-cost comparison matrix vs Mem0, Zep, and Letta Β· apps/website, docs/ Β· N
605
+ - [x] T-426 Β· LANDED 2026-11-08 β€” PR #364: Multi-Agent Interactive Demos: Interactive agent switcher in website docs demonstrating context injection across Antigravity, OpenCode, Claude Code, and Cursor Β· apps/website Β· N
604
606
 
605
607
  ## Wave 25: R17 Tri-Cognitive Playbooks & Episodic Narrative Horizon
606
- - [ ] T-427 Β· Procedural Playbook Engine (`ProceduralMemory`): Model and persist executable step trajectories, pre-conditions, verification assertions, and rollback recipes Β· src/cognition/playbooks.ts Β· F
607
- - [ ] T-428 Β· Episodic Causal Narrative Horizon: Group linear observations into causal episodes (`Goal βž” Hypothesis βž” Trajectory βž” Verification βž” Retrospective`) Β· src/cognition/episodes.ts Β· F
608
- - [ ] T-429 Β· Bi-Temporal Validity Windows: Stored dual timestamps (`asserted_at` vs `valid_from`/`valid_until`) allowing historical queries without clobbering active state Β· src/schema.ts, src/store.ts Β· F
609
- - [ ] T-430 Β· Ebbinghaus Utility-Reinforced Cognitive Forgetting Curve: Exponential decay for unverified candidate notes; reinforcement for green test executions Β· src/quality/decay.ts Β· F
610
- - [ ] T-431 Β· CLI & MCP Playbook Commands: Wire `memory playbook --run <id>`, `memory playbook --list`, and `muse_playbook_recall` / `muse_playbook_record` MCP tools Β· src/cli/playbook.ts, src/mcp.ts Β· F
608
+ - [x] T-427 Β· LANDED 2026-11-08 β€” PR #356: Procedural Playbook Engine (`ProceduralMemory`): Model and persist executable step trajectories, pre-conditions, verification assertions, and rollback recipes Β· src/cognition/playbooks.ts Β· F
609
+ - [x] T-428 Β· LANDED 2026-11-08 (wired: memory briefing prints recent episodes) β€” PR #357: Episodic Causal Narrative Horizon: Group linear observations into causal episodes (`Goal βž” Hypothesis βž” Trajectory βž” Verification βž” Retrospective`) Β· src/cognition/episodes.ts Β· F
610
+ - [x] T-429 Β· LANDED 2026-11-08 (wired: memory briefing prints recent episodes) β€” PR #359: Bi-Temporal Validity Windows: Stored dual timestamps (`asserted_at` vs `valid_from`/`valid_until`) allowing historical queries without clobbering active state Β· src/schema.ts, src/store.ts Β· F
611
+ - [x] T-430 Β· LANDED 2026-11-08 (wired: memory briefing prints recent episodes) β€” PR #358: Ebbinghaus Utility-Reinforced Cognitive Forgetting Curve: Exponential decay for unverified candidate notes; reinforcement for green test executions Β· src/quality/decay.ts Β· F
612
+ - [x] T-431 Β· LANDED 2026-11-08 β€” PR #360 + #361: CLI & MCP Playbook Commands: Wire `memory playbook --run <id>`, `memory playbook --list`, and `muse_playbook_recall` / `muse_playbook_record` MCP tools Β· src/cli/playbook.ts, src/mcp.ts Β· F
611
613
 
612
614
  ## Wave 26: R18 AST Associative Callgraph Retrieval & Speculative Pre-Flight
613
- - [ ] T-432 Β· Recursive SQLite CTE Associative Expansion (Zero-Daemon HippoRAG): 2-hop associative graph traversal using in-process SQLite recursive CTEs (`WITH RECURSIVE call_tree AS (...)`) Β· src/sqlite.ts, src/retrieval/ Β· F
614
- - [ ] T-433 Β· Speculative Pre-Flight Context Push: Git and editor hooks pre-calculating token-budgeted memory knapsacks on file opening or branch switching Β· src/hooks/preflight.ts Β· F
615
- - [ ] T-434 Β· Cross-File Symbol Blast-Radius Risk Scoring: AST identifier cross-reference scoring to rate modification risk for proposed code changes Β· src/anchors/blast_radius.ts Β· F
616
- - [ ] T-435 Β· AST-Anchored Invariant Auto-Recall: Bind exported symbols and route interfaces directly to governing ADRs and architectural invariants Β· src/retrieval/anchors.ts Β· F
615
+ - [x] T-432 Β· LANDED 2026-11-09 β€” direct dev 2389985: Recursive SQLite CTE Associative Expansion (Zero-Daemon HippoRAG): 2-hop associative graph traversal using in-process SQLite recursive CTEs (`WITH RECURSIVE call_tree AS (...)`) Β· src/associative.ts, src/retrieval.ts Β· F
616
+ - [x] T-433 Β· LANDED 2026-11-09 β€” PR #370: Speculative Pre-Flight Context Push: Pre-flight context builder (CLI; hook wiring deferred) on file opening or branch switching Β· src/hooks/preflight.ts Β· F
617
+ - [x] T-434 Β· LANDED 2026-11-09 β€” PR #371: Cross-File Symbol Blast-Radius Risk Scoring: File/symbol blast-radius heuristic (registry AST integration deferred) to rate modification risk for proposed code changes Β· src/intelligence/blast_risk.ts Β· F
618
+ - [x] T-435 Β· LANDED 2026-11-09 β€” PR #372: Anchor-Matched Invariant Auto-Recall: Bind exported symbols and route interfaces directly to governing ADRs and architectural invariants Β· src/retrieval/anchors.ts Β· F
617
619
 
618
620
  ## Wave 27: R19 Git-Branchable Memories & Multi-Tenant Agency Enclaves
619
- - [ ] T-436 Β· Branchable Memory Overlays (`memory branch` / `branch-merge`): Branch-isolated memory layers tracking git feature branch lifecycles Β· src/store/branch.ts Β· F
620
- - [ ] T-437 Β· Multi-Tenant Agency Enclaves (`scope: client`): Cryptographically segregated client vaults across Council divisions (Sol, Jasper, Crew, Nexus) Β· src/store/enclaves.ts Β· F
621
- - [ ] T-438 Β· Zero-Knowledge Memory Attestation: Cryptographic SHA-256 signing of SyncPackets with tamper-evident audit chains for client handoffs Β· src/sync/attestation.ts Β· F
622
- - [ ] T-439 Β· Semantic Contradiction Merge Resolver: Interactive 3-way semantic conflict resolution on branch merge into `main` Β· src/quality/branch_merge.ts Β· F
621
+ - [x] T-436 Β· LANDED 2026-11-09 β€” PR #377: Branchable Memory Overlays (`memory overlay` with `set`/`rm`; merge via T-439): Branch-isolated memory layers tracking git feature branch lifecycles Β· src/store/branch.ts Β· F
622
+ - [x] T-437 Β· LANDED 2026-11-09 β€” PR #378: Multi-Tenant Agency Enclaves: authenticated encrypted client vaults (store-key, at-rest); `scope: client` descoped (ADR-007) Β· src/store/enclaves.ts Β· F
623
+ - [x] T-438 Β· LANDED 2026-11-09 β€” PR #379: Signed Packet Attestation v2: Ed25519 over canonical hashes with seq/head/key-id with tamper-evident audit chains for client handoffs Β· src/sync/attestation.ts Β· F
624
+ - [x] T-439 Β· LANDED 2026-11-09 β€” PR #380: Semantic Contradiction Merge Resolver: Interactive 3-way semantic conflict resolution on branch merge into `main` Β· src/quality/branch_merge.ts Β· F
623
625
 
624
626
  ## Wave 28: R20 Test-Driven Reinforcement & Regression Sentry
625
627
  - [ ] T-440 Β· Automated CI / Test Harness Integration: Bind memory utility directly to real test outcomes (`bun test`, `vitest`, `cargo test`); increment ROI on green, decay on red Β· src/quality/test_feedback.ts Β· F
@@ -644,3 +646,101 @@ Source: Strategic roadmaps, developer experience assets, R17–R20 tri-cognitive
644
646
 
645
647
 
646
648
 
649
+
650
+ ## Late additions (post-v3.2.0)
651
+
652
+ - [x] T-449 Β· LANDED 2026-11-08 via PR #337 (`c0f7aef`, caller scan) + PR #338 (`94620895`, home-store guard, doc-link skip) Β· triage filed as GitHub issue #336 β€” test hermeticity: 9 local failures from `~/.memory` / `~/.agents` ancestor leakage (8 env-contamination) + 1 intelligence regex flake (stateful `g`-flag `RegExp` + definition counted as caller). Dry-run only; no code changed. Branch: `new` Β· F
653
+ - [ ] T-450 Β· DEFERRED: scope which `.agents/` subpaths should be gitignored (e.g. artifacts, plans, context/current.md) vs. kept tracked (standards, skills). Audit consumer impact (collaborators, DOX, skills) before removing any. No execution until user scopes. Branch: `new` Β· N
654
+
655
+ ---
656
+
657
+ # v15 β€” VERIFIED REMAINDER AUDIT (2026-11-08)
658
+
659
+ Source: per-ticket verification of **every unchecked ticket in this plan** against the live tree (`src/`, `test/`, `apps/website/`, `Dockerfile`, `.gitignore`). Evidence rules: a ticket-number comment alone was **not** accepted; a module path only counted if the behaviour exists; a test file only counted if it asserts behaviour. Four tickets were found already implemented and are now marked done; the rest are classified below so no future pass re-litigates them.
660
+
661
+ ## Renumber applied in this pass
662
+
663
+ Wave 23 (v13) originally used `T-405`–`T-422`, colliding with the landed `T-405` (conflicted injection, PR #321) and `T-406` (project casing, PR #322). The block is now:
664
+
665
+ | old | new | old | new |
666
+ |---|---|---|---|
667
+ | T-405 | T-451 | T-414 | T-460 |
668
+ | T-406 | T-452 | T-415 | T-461 |
669
+ | T-407 | T-453 | T-416 | T-462 |
670
+ | T-408 | T-454 | T-417 | T-463 |
671
+ | T-409 | T-455 | T-418 | T-464 |
672
+ | T-410 | T-456 | T-419 | T-465 |
673
+ | T-411 | T-457 | T-420 | T-466 |
674
+ | T-412 | T-458 | T-421 | T-467 |
675
+ | T-413 | T-459 | T-422 | T-468 |
676
+
677
+ References updated: this file, `.agents/context/roadmap.md`, `.agents/context/current.md`. The historical blueprint artifact keeps its original IDs plus a pointer note; `HANDOFF.md`'s `T-405`/`T-406` mentions are the *unrelated landed fixes* and were deliberately left untouched.
678
+
679
+ ## Status summary
680
+
681
+ | Outcome | Count | Tickets |
682
+ |---|---|---|
683
+ | Implemented β†’ marked done | 4 | `T-150`, `T-151`, `T-153`, `T-384` |
684
+ | Partial (real code, incomplete scope) | 15 | below |
685
+ | Not implemented | 86 | 83 remain; `T-451`–`T-453` implemented locally on 2026-11-08 |
686
+ | Dropped by principal decision | 1 | `T-163` (D3: dashboard keeps writes) |
687
+ | Filed / deferred | 2 | `T-449` (issue #336), `T-450` (needs scoping) |
688
+ | **Unique open at audit start** | **108** | **104 remain unchecked after this pass** |
689
+
690
+ ## Implemented (now marked `[x]`)
691
+
692
+ | ID | Evidence |
693
+ |---|---|
694
+ | T-150 | `src/mcp.ts:3353-3494` (`startHttpMcpServer`, `StreamableHTTPServerTransport`); `test/mcp_http_transport.test.ts` |
695
+ | T-151 | `src/mcp.ts:3199,3360,3406-3464` (protocol allowlist, session id, Origin/Host guards); `test/mcp_http_transport.test.ts:129-365` |
696
+ | T-153 | `src/store.ts:138-158`, `src/root.ts:153-175`; `test/tenant_isolation.test.ts` |
697
+ | T-384 | `test/retrieval_engine.test.ts:53-91` (3 projects Γ— 40 entries; 20 live / 10 superseded / 10 expired per project) |
698
+
699
+ ## Partial
700
+
701
+ | ID | Evidence | Remaining gap |
702
+ |---|---|---|
703
+ | T-033 | `src/optimize.ts:297-305` prunes via `deleteEntry`; `src/store.ts:1867-1926` tombstones | no optimize-side tombstone/restore call or test |
704
+ | T-203 | CLI `handleRecallCommand` delegates to `queryContext` (`src/cli/retrieval.ts:155`); MCP `memory_recall` separate (`src/mcp.ts:1956`) | no deprecation notice / formal alias |
705
+ | T-176 | `src/cli/versioning.ts:53-121` branch refs + checkout | no store-level fork/merge of entry state |
706
+ | T-178 | RRF A/B weight presets (`src/retrieval/rrf.ts:22-37`) | no graph-on/off gate in the eval harness |
707
+ | T-179 | wikilink expansion (`src/retrieval.ts:1374-1460`) | no HRR half, no T-178 gating |
708
+ | T-316 | write-time `linked_memory_ids` (`src/store.ts:1131-1176`) | scores session/tag/lexical overlap only; `store.ts` never imports `plasticity.ts` |
709
+ | T-323 | anchored entries re-sorted by truncation rank (`src/orchestrator/context.ts:424`); freshness gate withholds orphaned anchors | `anchor.status` itself is never consulted |
710
+ | T-369 | claims relabelled `[CLAIMED]` (`src/benchmark/suite.ts:210`) | assertions still `>= 0` (`test/benchmark.test.ts:50-71`) β€” no threshold gate |
711
+ | T-378 | `LspProvider` now used (`test/intelligence.test.ts:175`) | 5 dead imports remain (`quality`, `settings`, `orchestrator`) |
712
+ | T-385 | recall-set + latency grading (`src/quality/eval.ts`, `test/recall-eval.test.ts`) | fixture is 20 synthetic queries, not 40 from the principal's store |
713
+ | T-460 | detection engine (`src/agents/detect.ts:82-123`) | no `WIRED`/`UNWIRED`/`ABSENT` vocabulary, no hub UI |
714
+ | T-423 | `apps/website/public/showreel.mp4`, `assets/muse-memory-demo.gif` | not a terminal recording; mp4 not under `assets/` |
715
+ | T-425 | capability matrix (`apps/website/src/pages/compare.astro:37`) | no competitor rows, no measured latency/recall/token figures |
716
+ | T-429 | `valid_from`/`valid_to` (`src/sqlite.ts:150,375`) | no `asserted_at` / `valid_until` split |
717
+ | T-434 | blast-radius via `src/intelligence/adapters/*` + `memory_code_intel_blast_radius` (`src/mcp.ts:1236`) | not the AST cross-file risk module at the named path |
718
+
719
+ ## Not implemented (86)
720
+
721
+ **Wave A/B/C/D leftovers (7).** `T-016` no dispatch-coverage matrix (only name parity in `test/connect_tools_alignment.test.ts:24`); `T-034` no `secure_delete` in `src/`; `T-048` no wake gate/actionable-keys allowlist; `T-051` no `memory_pressure` event; `T-201` all 30 detectors live (`src/migrator/detect.ts:15-374`); `T-202` 52 registry entries, none frozen (`src/agents/registry.ts`); `T-205` `Dockerfile:9-11` still runs `bun test` + `tsc --noEmit`.
722
+
723
+ **Wave E team/server/interop (14).** `T-152` no `Last-Event-ID`/event store (`src/daemon.ts:27-40` is plain SSE); `T-154` `src/sync/pool.ts:12-85` filesystem-only; `T-155` no git/YAML distribution path; `T-156` no Litestream service (`docker-compose.yml:1-10`); `T-168` no Hermes provider; `T-169` no Muse-MCP adapter; `T-170` no catalog packaging; `T-171` no qdrant adapter (`src/store/` is only `sidecars.ts`); `T-172` checksum validation only (`src/sync/federation.ts:65-82`), no probes/lock scope; `T-173` no observer/observed relation; `T-174` no peer/namespace columns (`src/schema.ts`); `T-175` only USER.md reserved slots (`src/orchestrator/context.ts:386-390`); `T-180`/`T-181` no spec documents.
724
+
725
+ **Dashboard (9).** `T-157`–`T-162` no route/panel for recall-debug, lineage, eval, lifecycle tower, config honesty, or team mesh (`src/ui.ts:156-778` routes, `:1103-1115` tabs); `T-164` consolidation is on-demand only (`src/consolidate.ts:51`); `T-165` cadence is N-day + inactivity, no turn trigger (`src/optimize.ts:98-131`); `T-166` `crontabLine` has no ownership token (`src/routines.ts:71-73`).
726
+
727
+ **Quality/scale (14).** `T-317` no PPR/restart set; `T-318` telemetry exists (`src/quality/telemetry.ts:177-195`) but no auto-tuner; `T-319` no `is_inference`/`parent_ids`/review queue (`src/sqlite.ts:138-165`); `T-322` anchor audit re-reads per anchor (`src/anchors/resolver.ts:287`), no cache; `T-325` `rollupTemporal` has no period filter (`src/compounding/temporal.ts:171-181`); `T-326` tiers 0/1 call full `queryContext` (`src/retrieval/tiered.ts:49`); `T-327` `list()` has no paging (`src/store.ts:638-641`); `T-328` clock is `length + Date.now()` (`src/sync/engine.ts:118-120`); `T-329` no episode table / retrieval unit; `T-330` no `absent` type or role scoping; `T-332` no packet signature/peer allowlist (`src/sync/packet.ts:72-103`); `T-333` `confirm()` never extends expiry (`src/store.ts:1356-1387`); `T-334` no `write_origin`; `T-335` no `visible_until` window (`src/store.ts:224-266`).
728
+
729
+ **Test integrity (8).** `T-371` (lying security tests, `test/security_hardening.test.ts:88-100,127`), `T-372` (tautological doctor test, `test/doctor.test.ts:11-16`), `T-373` (grep-only UI asserts, `test/ui.test.ts:52-218`), `T-374` (`toBeDefined`/`>= 0`, `test/health.test.ts:221-228`, `test/benchmark.test.ts:47-72`), `T-375` (`Array.isArray`-only, `test/ui.test.ts`, `test/mcp.test.ts:72-131`, `test/mesh.test.ts:349`), `T-376` (duplicate suites, `graph*`, `panda_loader`/`upgrade`, `retrieval*`, `sqlite_primary`/`store`), `T-377` (`markStale` imported never called, `test/sqlite_primary.test.ts:4,47-90`), and `T-382` (no `deprecated` metadata anywhere in `src/`). All seven T-371–T-377 defects are still present, not fixed.
730
+
731
+ **Wave 23 (14 remaining; new IDs).** `T-451`–`T-453` are implemented locally (rail, dual-scope switcher, modular ETag/gzip assets β€” see the v13 annotations and `current.md`). `T-454`–`T-459` and `T-461`–`T-468` remain: no graph/list toggle, no kinetic-settling loop, no activity heatmap, no terrain pane, no agents-hub wire/unwire routes, no About poster / quick-start / command deck, no UI projection cache, no `visibilitychange` idling, and no `test/ui_performance.test.ts`. `src/vault/` still writes only `system.md` β€” none of the six terrain maps exist.
732
+
733
+ **Wave 24–29 (17).** `T-424` no playground/WASM page; `T-426` no agent-switcher demo; `T-427` no `src/cognition/playbooks.ts`; `T-428` no `src/cognition/episodes.ts`; `T-430` no `src/quality/decay.ts`; `T-431` no `src/cli/playbook.ts` or playbook MCP tools; `T-432` no `WITH RECURSIVE` in `src/`; `T-433` no `src/hooks/preflight.ts`; `T-435` no `src/retrieval/anchors.ts`; `T-436` no `src/store/branch.ts`; `T-437` no `src/store/enclaves.ts`; `T-438` no `src/sync/attestation.ts`; `T-439` no `src/quality/branch_merge.ts`; `T-440` no `src/quality/test_feedback.ts`; `T-441` no `src/cognition/sentry.ts`; `T-442` no flaky-test detector (`src/doctor` is a flat module); `T-443` no `src/cognition/remediation.ts`.
734
+
735
+ ## Dropped by decision
736
+
737
+ - `T-163` β€” read-only dashboard invariant. Principal decision **D3**: the dashboard keeps its 12 write endpoints; the invariant was dropped. The ticket text is stale; no code should be written for it.
738
+
739
+ ## Filed / deferred
740
+
741
+ - `T-449` β€” **OPEN**, GitHub issue #336. Triage only so far (9 local failures: 8 env-contamination from `~/.memory`/`~/.agents` ancestors, 1 intelligence regex flake). No fix landed.
742
+ - `T-450` β€” **DEFERRED** pending principal scoping of `.agents/` gitignore vs tracked paths. `.gitignore:80-81` still tracks all of `.agents/`.
743
+
744
+ ## What this changes about "next"
745
+
746
+ Wave 23 **PR 1 is now implemented locally** (`T-451`–`T-453`: rail, dual-scope switcher, modular cached assets), so the next build is **PR 2 β€” `T-454`–`T-456`** (graph/list toggle, kinetic-settling loop, activity heatmap). `T-316` remains the only already-unblocked quality ticket (partial: Hebbian half missing) and `T-318` is missing. The only open filed defect is `T-449`. The 86 "not implemented" tickets are accurate backlog, not stale checkboxes.
@@ -1,6 +1,6 @@
1
1
  # πŸš€ Astro Frontend Engineering Standards
2
2
 
3
- > **Runtime Target**: Astro v7.3.x Β· Bun / Node runtime Β· TypeScript Strict
3
+ > **Runtime Target**: Astro v7.4.7 Β· Bun / Node runtime Β· TypeScript Strict
4
4
  > **Applies to**: `apps/website/` β€” the Muse Memory marketing and documentation site.
5
5
 
6
6
  ---
@@ -130,3 +130,5 @@ bun run --cwd apps/website scripts/audit-visual.ts
130
130
  bun test # the whole repository suite
131
131
  bunx tsc --noEmit # type check
132
132
  ```
133
+
134
+ > Build note: the site runs the Astro CLI through Node (`apps/website/scripts/astro.mjs`); Bun’s CJS/ESM interop rejects Astro’s `cookie` import.
package/README.md CHANGED
@@ -439,10 +439,13 @@ curl -fsSL https://raw.githubusercontent.com/harshsinghmp/musememory/main/script
439
439
  ```
440
440
 
441
441
  #### What `memory upgrade` automatically handles:
442
- 1. **Package Manager Auto-Detection**: Detects whether your workstation runs `bun`, `npm`, `pnpm`, or `yarn` and pulls the latest published binary.
443
- 2. **Self-Healing Storage Repair**: Recovers missing `.memory/`, `CURRENT.md` constraints, or `USER.md` persona files if corrupted or deleted.
444
- 3. **Coding Agent Re-Discovery**: Scans for newly installed coding agents (Cursor, Claude Code, Windsurf, OpenCode, Codex, Gemini CLI, Hermes, and the rest of the mainstream field) and auto-wires them with zero permissions.
445
- 4. **AST Symbol Graph Re-Indexing**: Re-synchronizes CodeGraph/Graphify symbol caches under `.memory/graph-symbols.json`.
442
+ 1. **Package Manager Auto-Detection**: Detects whether your workstation runs `bun`, `npm`, `pnpm`, or `yarn` and updates to the latest release without redundant downgrades.
443
+ 2. **Global vs. Per-Project Scoping**:
444
+ - **Per-Project (`memory upgrade`)**: Operates on `./.memory/`. Repairs local constraints (`CURRENT.md`), project user persona overrides (`USER.md`), re-indexes AST code symbols via CodeGraph/Graphify, and installs Git pre-commit transcript harvesting hooks.
445
+ - **Global (`memory upgrade --global`)**: Operates on `~/.memory/`. Re-aligns sovereign master profiles (`USER.md`), validates machine-wide constraints, updates global SQLite schemas, heals `~/.local/bin` symlinks, and auto-wires all detected agent platforms workstation-wide.
446
+ 3. **Self-Healing Storage Repair**: Recovers missing `.memory/`, `CURRENT.md` constraints, or `USER.md` persona files if corrupted or deleted.
447
+ 4. **Coding Agent Re-Discovery**: Scans for newly installed coding agents (Cursor, Claude Code, Windsurf, OpenCode, Codex, Gemini CLI, Hermes, and the rest of the mainstream field) and auto-wires them with zero permissions.
448
+ 5. **AST Symbol Graph Re-Indexing**: Re-synchronizes CodeGraph/Graphify symbol caches under `.memory/graph-symbols.json`.
446
449
 
447
450
  ---
448
451
 
package/claims.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$comment": "Generated by scripts/generate-claims.ts. Do not hand-edit: test/marketing_claims.test.ts re-derives every value from src/ and fails on drift.",
3
- "version": "3.2.0",
4
- "mcpTools": 115,
3
+ "version": "3.3.0",
4
+ "mcpTools": 119,
5
5
  "mcpProfiles": 7,
6
6
  "agentPlatforms": 52,
7
7
  "migratorProviders": 30,
@@ -14,8 +14,8 @@
14
14
  "networkMillis": 300
15
15
  },
16
16
  "tests": {
17
- "count": 1441,
18
- "assertions": 6654,
19
- "files": 217
17
+ "count": 1528,
18
+ "assertions": 7303,
19
+ "files": 241
20
20
  }
21
21
  }