Skip to content

📝 Plan how recall room is divided by five principles, with every memory saying which cues admitted it - #148

Open
ebigunso wants to merge 20 commits into
feature/2026-09-22/phase-correctnessfrom
feature/2026-09-23/v0-2-consolidation-plan
Open

ebigunso wants to merge 20 commits into
feature/2026-09-22/phase-correctnessfrom
feature/2026-09-23/v0-2-consolidation-plan

Conversation

@ebigunso

Copy link
Copy Markdown
Owner

Plans the consolidation of how recall room is divided, before the prospective slice adds due and trigger cues.

The rules had grown one justified exception at a time. This plan replaces them with five principles and one road table: room is reserved only for what someone gave; each road contributes what its match can vouch for; a caller's range is the recency window; one order at every stage (score, then at root selection salience, then newest, as one total key); what a root opens follows the road. Places become reminders served newest first, every admitted memory reports which cue kinds admitted it, and a no-behavior hygiene task removes the dead and duplicated code the audits found.

It also carries the fix for the time slice's measured weakness: a salient anniversary nobody shares was cut at the root cap before its salience was weighed; among equal scores, the root stage now orders by salience before time.

Reviews: Tier D (cm-reviewer, then cm-reviewer2) and Tier A approved after five revision rounds; the rulings are items 58 to 65 of the v0.2 rulings log. One slice-end measurement with named falsifiers, bisected only on regression.

Stacked on the time plan (#138).

🤖 Generated with Claude Code

…ry saying which cues admitted it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The plan contains contradictory contracts, an unsatisfiable acceptance criterion, and future-dated records.

Get a fresh assessment by requesting another Copilot review.

Review effort: Balanced
Findings: 7 Low severity

Open (7)
What changed in this PR

Adds the implementation plan for consolidating recall allocation and cue provenance.

Changes:

  • Defines five recall-road principles and ordering rules.
  • Plans place reminders and admitted_by reporting.
  • Sequences implementation, cleanup, validation, and measurement tasks.
File Description
docs/​coding-agent/​plans/​active/​v0-2-consolidation-plan.md Adds the consolidation design and execution plan.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

## Definition of Done
- One road table in the code decides everything a root's road decides. Every root carries the roads that reached it. Its reported cue kinds, whether it expands (opens history or is a leaf), whether it may hold reserved room and what it contributes are all read from that table, never set separately in each constructor. The README prints the table.
- Principle 1: room is reserved only for what someone gave or what a stored intention was waiting for. Reserved room is served from the head of that road's own order. The recency floor stays at a default of zero: a caller who sets it has given that reservation. An anniversary shared with nobody present holds no reserved room.
- Principle 2: a road contributes as much as its match can vouch for. Exact roads (keys, names, a caller range, dates, recency) contribute up to the room. A description contributes up to its floor, as today, until a similarity bound is measured on a production embedder. The topic contributes up to the room. A road's score is the larger of zero and its similarity.
- Principle 1: room is reserved only for what someone gave or what a stored intention was waiting for. Reserved room is served from the head of that road's own order. The recency floor stays at a default of zero: a caller who sets it has given that reservation. An anniversary shared with nobody present holds no reserved room.
- Principle 2: a road contributes as much as its match can vouch for. Exact roads (keys, names, a caller range, dates, recency) contribute up to the room. A description contributes up to its floor, as today, until a similarity bound is measured on a production embedder. The topic contributes up to the room. A road's score is the larger of zero and its similarity.
- Principle 3: a caller range replaces "now" as recency's window instead of competing with it. The date-match tie priority is deleted, and so is the dependence on the order roots are pushed.
- Principle 4: after reservations, one order at every stage: the stage's score, with ties going to the newest; at root selection, where search roads give no score, salience comes first, as the section will judge it (ruling 65). Turns among kinds exist only at root selection, and only for roads that expand. Rounds among the scopes of one given kind (several people the scene names) stay at every stage, and they run per kind.
- the helper's queue sort `!matches!(kind, Recency | DateMatch) && reminder` (`retrieve.rs:993-1001`).

Each root carries the kinds it may reserve under, read from the table. Each kind's queue is its roads' own orders, with roads that expand first. Deleted: the flag in both structs and both merges, `floor_kinds`, and the time-kind exemption.
- Principle 2, what a road contributes. It replaces three budgets computed at the call sites in `retrieve.rs` (the time budget at 204-208, the anniversary's larger of one and its floor at 252, and the per-key root cap at 148-151) with the table's contribution column. It also clamps every search score to the larger of zero and the similarity. Changed: the anniversary rises to the room (ruled 2026-09-23). This supersedes ruling 56's clause bounding it. It is safe because an unshared anniversary carries no score and loses ties to the newest, and the slice falsifier must hold.
- The graph port's time selectors and `query_scope_state` return each id with its memory time and stored salience.
- `RetrievalTrace` loses `anniversary_has_more`.
- stance: break
- justification: there are no external consumers. The one locatable consumer is `CharacterMemoryEvals`, the public companion evaluation repository, which follows each library slice and regenerates its stores on every run. There is no migration.
- `src/adapters/oxigraph/sparql_selectors.rs`: `select_state` orders by salience at about 270.
- `src/usecases/write_planning.rs`: the hint loop 354-371; the commit derivation of Involves 1261-1311.
- `src/api/types/retrieval.rs`: `RetrievalContext` 14; `RetrievalCueFloors` 127; `MemoryScenes` 248; `SceneReferenceResolution` 302.
- Rulings: the load-bearing decisions log, items 39 to 61, and the coordinator's rulings of 2026-09-23 recorded in this plan's Decision Log.
- kind: review
required: true
owner: reviewer
detail: "Tier A altitude review of the table and the five principles against rulings 44 to 47 and 53 to 61, ADR-D-0022, ADR-D-0029 and the philosophy on knowing versus being reminded"
Stop and report if any item turns out to change what comes to mind.
- acceptance:
- Every item above is done. The report names each with its files and its line counts before and after, and lists every deleted test with the deleted code it certified.
- On the whole suite and on a fixed set of facade retrievals run before and after, the admitted memories, sections, order, scores, `admitted_by` and trace are identical. The trace comparison includes selected and omitted objects interleaved across several sections, and every selected member keeps its one-based section rank.
…-09-23/v0-2-consolidation-plan

Co-Authored-By: Codex <noreply@openai.com>
@ebigunso
ebigunso changed the base branch from feature/2026-09-22/v0-2-time-plan to feature/2026-09-22/time-age-of-support September 22, 2026 22:00
ebigunso and others added 2 commits September 23, 2026 07:08
…-09-23/v0-2-consolidation-plan

Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ebigunso
ebigunso changed the base branch from feature/2026-09-22/time-age-of-support to feature/2026-09-22/phase-correctness September 23, 2026 00:24
ebigunso and others added 2 commits September 23, 2026 09:27
…9-23/v0-2-consolidation-plan

Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ebigunso and others added 14 commits September 23, 2026 12:14
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…kinds

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…timing open

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s fix is routed to the cleanup plan

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

2 participants