diff --git a/persistent-memory.md b/persistent-memory.md index 8ca781c..0b0ef00 100644 --- a/persistent-memory.md +++ b/persistent-memory.md @@ -158,6 +158,17 @@ concurrent mutation can SKIP chunks → un-stamped → post-flip amnesia (INV-36 single-page scan (no consumer change) OR add chunk_id sort (consumer change). F3[MED] sentinel needs a valid 1024-dim embedding or our vec0 upsert raises → backfill never completes. All 3 are WT-side backfill/guard adjustments, NOT consumer reworks — the "zero consumer changes" claim holds for reads, needs the qualifier for backfill/guard. +**FINAL 2026-07-18: all 3 findings FOLDED into contract rev 1.3 (3e3f629).** F1 → INV-368-10 now mandates +drop-to-empty = SKIP the wire call (test `drop_to_empty_skips_wire` asserts our store gets NO query). F2 → +option (a) pinned: backfill scans whole corpus in ONE page (test `single_page_snapshot`; immutable-key paging += recorded scale follow-up that WOULD be a consumer change). F3 → sentinel writes a zero-vector at embedding_dim +(test `sentinel_carries_vector`). Our read-path conformance + conjunctive-per-element check cited in the revision +record. WT implementing against rev 1.3 (TDD after their context-reset; cross-frontier panels follow); ship ~7/19. +**QUEUED — backfill live-verify:** when WT's backfill lands, drive a SYNTHETIC legacy corpus into our store, run +their backfill against it, confirm 100% stamped (no un-attributable skips) + sentinel writes + reads flip clean, +all BEFORE any real flip. **#369** = the recited-content re-promotion feedback-loop policy class (WT owns). +**#368 arc DONE from ratatoskr's side** — diagnosed → reported → operator ruled → exhibits + both scrubs → +channel-2 closed clean → enforcement read (3 findings, all folded). **✅ Cross-session name-recall arc COMPLETE + SHIPPED (v0.20.11→v0.20.15, pushed).** person-prime `scan` verb + `mark_superseded` verb both shipped, deployed to :8392, and live-verified; **WT #364 closed