Skip to content

🐛 Recall stays correct and bounded as a character's store grows - #150

Open
ebigunso wants to merge 16 commits into
feature/2026-09-22/time-age-of-supportfrom
feature/2026-09-22/phase-correctness
Open

ebigunso wants to merge 16 commits into
feature/2026-09-22/time-age-of-supportfrom
feature/2026-09-22/phase-correctness

Conversation

@ebigunso

Copy link
Copy Markdown
Owner

Fixes found by the v0.2 design re-audit, so the consolidation slice starts from a store that stays correct and fast as a character's memory grows.

  • Two approved fixes that had been opened against main now enter the stack: a failed graph read in the stats projection is reported as what it is (🩹 A failed graph read in the stats projection is reported as what it is #119), and a vector point is identified by object type, id and surface (🐛 A memory's vector is identified the way its graph record is, by type and id #124), extended to both scene surfaces in both vector adapters. An episode and a thread with the same id no longer overwrite or erase each other.
  • The write path hydrates only the named graphs it asks for, instead of reading the whole store up to five times per commit under the write lock; both forget cascades read only the links of the forgotten objects.
  • Retrieval reads are bounded where cost grows: state, scope, thread and participant-occasion selectors read compact id and rank columns, decide eligibility, order and budget in Rust, and hydrate only what is kept (rulings log 67). Measured at 2000 keyed memories against the parent, every read is at parity or within tens of milliseconds, where bounding inside the graph query had made them up to 220 times slower.
  • A person met more often than the hub limit no longer makes recall fail: the limit counts the fetched eligible prefix, and the trace's extra marker row never counts, so turning the trace on cannot change the result (rulings log 66).
  • A resolved belief no longer hides an unrelated memory of another type that shares its id.

Reviews: Tier D (cm-reviewer) and Tier A approved, including three bounded delta rounds. The selected pack is unchanged everywhere except the ruled hub outcomes; the scene witness suite runs in about 9 s against 15 s at the parent.

Stacked on #147. Supersedes #119 and #124, whose commits are merged here.

🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant