Backlog — observed real-world failure patterns¶
A record of long-term-memory failure patterns reported by practitioners or measured in evaluation, mapped to where each sits on the state loop. Not a roadmap. Nothing below is scheduled. The current wedge is item 1 and stays the only wedge until its Phase 2 is finished; the rest are ordered by judgement, to be re-ordered when item 1 is done.
source / observation
├── identity whose is it? attribution provenance
├── authority may it override? authority provenance
├── version / hash is the source still the source? lineage validity
└── lineage
↓
memory validity interval · confidence · state type
↓
governing state resolution — the current wedge
↓
agent action
↓
outcome verified result → back to source
Three kinds of provenance, kept apart¶
| kind | question | measured |
|---|---|---|
| attribution | whose memory is this? | LoCoMo speaker-swap (external triage); the only external case where a memory's source affects gold |
| authority | whose observation may govern state? | Mode A Category A; Mode B Family A — matched by a fixed source ranking (BRQ1, F3) |
| lineage validity | is the evidence that justified this memory still true? | not yet |
Lineage validity is distinct from the memory's own validity window. A memory
can be inside [valid_from, valid_to), from a high-authority source, and
wrong — because the thing it was derived from changed:
code @ hash A → memory "config lives in foo.py" (no valid_to; nothing in the memory changed)
code @ hash B → foo.py no longer exists the memory's evidence is gone
memory validity ≠ source validity. Reported production shape: a note
written three weeks ago about code that has since changed; the agent trusts
it because it is shorter and reads like a conclusion. Reported fix: bind each
memory to a content hash of its source; when the source changes, flag the
memory rather than silently rewriting it. The user-facing version is plainer
than any authority value: don't let an agent trust a memory after the source
that justified it has changed. Coding agents, docs, config and external
systems are exactly the sources that change.
Ordered backlog¶
- Current — typed governing-state semantics / global-policy stress test. reliagent-bench PR #5. Does any fixed global merge ordering work across heterogeneous state types? Nothing else is added to it.
- Next candidate — source-linked invalidation / lineage validity. Test
shape: a memory derived from an artefact; the artefact changes; is the
memory surfaced as suspect before the agent acts on it? Metric:
stale-evidence action rate. Would need a source hash on
Sourceand a read-time check; neither exists. Most concrete item; easiest to explain. - Repeated-failure / learned-strategy memory. Mode B BRQ3, inconclusive: the B2-lite tasks solved themselves from context. Needs execution-grounded tasks where the failing strategy is not signposted. Separate design.
- History and governing state coexisting. Issue #5:
replacekeeps one governing value and no queryable past;keep_bothkeeps the past and lets no guard fire. Externally reproduced on 11 LongMemEval + 5 GoodAI items. - Compaction / materialisation at scale. Reported: long histories end in compaction problems, not contradiction problems. Nothing in the current evaluation reaches it.
- Policy re-evaluation diff. Replay restores decisions; a policy change cannot yet show which historical decisions it would have changed.
- Decision-context-dependent governing state. "The remembered failure does not apply here" (Mode B N-04). One scenario, zero false avoidance.
Rules¶
- An item enters with a reported failure (one line: who, what) or a measured one (which analysis) — never with a design.
- An item leaves when it becomes a frozen evaluation design with pre-registered predictions, not when it becomes a feature.
- Nothing here changes the current wedge's scope.
Sources¶
Public thread on the "memory is not a list of facts" write-up (2026-09): bitemporality and supersession; replay under policy evolution; SCD as the mature baseline; end utility as not repeating a known failure; source-hash invalidation when the underlying code changes; "authority, lineage, lifecycle, procedural direction" as the shape of a reasoning cache — lineage named independently by two reporters. Motivation, not evidence.