From eef4d01c1528ed87c36636a53684b7423193dff6 Mon Sep 17 00:00:00 2001 From: Vuong Hoang Date: Thu, 16 Jul 2026 22:53:39 -0700 Subject: [PATCH] =?UTF-8?q?memory:=20mark=5Fsuperseded=20SHIPPED+VERIFIED?= =?UTF-8?q?=20(v0.20.15)=20=E2=80=94=20durable=20name-recall=20DONE;=20Arm?= =?UTF-8?q?-2=20delivered+credited,=20quartet=20rebuild=20deferred?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- persistent-memory.md | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/persistent-memory.md b/persistent-memory.md index f421d3c..aa8a328 100644 --- a/persistent-memory.md +++ b/persistent-memory.md @@ -69,20 +69,31 @@ cause is WORLDTREE-side ranking/hygiene (WT #364), NOT our wire. Full arc: (person-prime top-3 back to the 3 newest pre-drive rows incl. cbbc7bdd "name unknown") — the recency-eviction was only a transient side-effect of the re-assertion. **DURABLE name-recall now genuinely depends on implementing `mark_superseded` (next).** -- **NEW TASK (operator-sequenced): implement `mark_superseded` in the provider** so #364's retirement - lands durably (not just recency-evicts). **Wire shape CONFIRMED (worldtree-dev, `bifrost_memory_store.py:293`):** - op `"mark_superseded"`, args `{"ids": [""], "superseded_by": ""}` — `ids` a LIST - (WT sends singletons, one call per retired chunk), NO `reason` field. It is the **SOLE** supersession - verb #364 uses (atomic_supersede = dream-lane, cap-gated separately; patch_many never for retirement) — - so build JUST `mark_superseded` + advertise it + live re-verify. Retry-storm ROOT-CAUSED WT-side (a - failed retirement-mark wrongly failed the whole promotion run → idle re-plan loop; WT's fix DEGRADES - mark-failures to an audited no-op → self-stops on the first post-deploy idle cycle, ETA ~20min from - 2026-07-16T20:30Z, no action our side). **GC the ~9 dup name-positives back to the pre-drive 10-chunk - state (via delete_many) AFTER the storm stops; then worldtree closes #364.** Once our `mark_superseded` - ships, a single name re-assertion self-heals retirement (incl. any residual dupes). -- **R39 Phase-2 Arm-2 export** (brokkr-initiated): the 10-chunk contradiction specimen is frozen at - `r39-frozen-specimen/sindra-10chunk-specimen.db` (gitignored, VACUUM INTO) — survives #364 - reconciliation; export on brokkr's Phase-2 signal. Full R39/#364 arc: +- **✅ `mark_superseded` SHIPPED + DEPLOYED + LIVE-VERIFIED (v0.20.15, `be2c577`) — the durable + name-recall fix DONE.** Implemented the verb (mirrors reference `_mark_lifecycle`: top-level + `superseded=True`+`superseded_by`, non-destructive; unknown-id no-op) + `_is_live` short-circuits on + `superseded` (INV-011) so `scan` durably excludes retired chunks; un-deferred in contract + FN spec; + TDD 5/5 (+ parity #195); bundled **bifrost 1.1.1→1.1.4** (hasattr backstop: unimplemented verbs → 400 + not 500/storm). Suite 644 green. **RE-VERIFY (3 name-reassert turns): 3 successful `mark_superseded` + calls, 0 500s, NO storm** (slot-supersession also dedups older positive dups → self-limiting, store + stable at 16); **`026d029e` "has not provided name" DURABLY retired** (superseded, scan-excluded); + person-prime top-3 = all name-positives, "Name is Vuong" surfaces → **Sindra durably recalls the name**. + ⚠️ RESIDUAL (WT-side, minor): `cbbc7bdd` "name is currently unknown" NOT retired — WT's legacy lexical + bridge matched "has not provided name" but not this phrasing; flagged to worldtree-dev (no readout + impact, below recency window). Skipped heid-bug-hunt (agent-discretion: small reference-mirrored verb, + TDD'd + live-verified — live-drive substitutes for the cold-read gate here). Wire shape was CONFIRMED + by worldtree-dev (`bifrost_memory_store.py:293`: op `mark_superseded`, args `{ids:[], superseded_by}`, + no reason; SOLE supersession verb #364 uses). +- **✅ R39 Phase-2 Arm-2 export DELIVERED + CREDITED (2026-07-17).** Operator formalized the probe-runner + role (accepted-in-principle → yes on spin-up); delivered a 5-pair contradiction/paraphrase set (shape-2, + `worldtree-r39-contradiction-v1`, inline to WT #366 thread `01KXQ77035…`), operator-approved verbatim + (peers already held the facts from Phase-1). AUROC reproduce ran 0.00 (inverted) — brokkr ruled it a + BROKEN instrument (underpowered + a length confound in my quick pairs: short-canonical positive vs + long-hedged negatives) → **Arm-2 CREDITED on the Phase-1 evidence; AUROC re-run reclassified + CONFIRMATORY-not-gating.** **DEFERRED TASK (non-urgent, "whenever convenient"): the matched-quartets + rebuild** — I draw real specimen items onto {short-canonical, long-hedged}×{contradiction, paraphrase} + cells (#364 classes only), worldtree-dev synthesizes register-matched controls, brokkr blesses. Specimen + frozen at `r39-frozen-specimen/sindra-10chunk-specimen.db` (gitignored) stays warm. Full R39/#364 arc: `persistent-memory.d/2026-07-16-wt364-r39-name-recall.md`. **Open operator-sequenced task (NOT urgent):** adopt the bifrost snapshot-cursor (bifrost-dev