memory: #368 enforcement read complete (3 findings) + channel 2 closed

Read-path conformant (conjunctive-per-element re-verified). 3 consumer-
side findings sent to WT: F1 INV-368-10 fail-open (empty-scope=match-all),
F2 backfill scan not snapshot-stable (offset/updated_at skip risk ->
amnesia), F3 sentinel needs valid embedding. All WT-side backfill/guard
adjustments, not consumer reworks. Channel 2 closed clean; contract rev 1.2.
This commit is contained in:
2026-07-17 18:47:56 -07:00
parent daf6dbfc46
commit 87857eb44f
+12
View File
@@ -146,6 +146,18 @@ server-side stores; ANY server-side hit = cross-plane bug, no benign reading) st
**ETA (WT): rev 1.2 amended contract reaches us TODAY 2026-07-18 for the consumer-side enforcement read;
ship-ready LIKELY 2026-07-19; our integration risk LOW** (born-fresh store won't exercise the backfill
machinery, which is the bulk of the impl). ratatoskr is the enforcement half; INV-368-9 blocks WT preflight.
**CHANNEL 2 CLOSED CLEAN + ENFORCEMENT READ DONE (2026-07-18):** marker routed ONLY to our store, zero in every
foundational store → current-b125 write path VERIFIED correct; the contamination was old-code (saga-v1, pre-#211)
seeding + a b125 recited-content re-promotion feedback loop (→ WT #369). Contract FINAL: `Worldtree/docs/contracts/
issues/368.contract.md` rev 1.2 (cda308c). **Consumer-side enforcement read complete — read-path CONFORMANT
(conjunctive-per-element re-verified); 3 findings sent to WT (thread 01KXSBY3A8):** F1[HIGH] INV-368-10 can fail-OPEN
at our store — our empty-scope = MATCH-ALL, so the guard's "drop end_user element" must NOT reach us as an empty
filter (else total bleed); fix = don't-call/never-match. F2[HIGH] backfill scan NOT snapshot-stable — our scan is
offset-over-updated_at (chunk_id NOT sortable), and re-upserts advance updated_at, so multi-page paging under
concurrent mutation can SKIP chunks → un-stamped → post-flip amnesia (INV-368-3 failure); fix = whole-corpus
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.
**✅ 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