Memory Attribution
Memory is measured, not accumulated.
Episodes carry provenance
What a run learns is consolidated into a durable, namespace-addressed store, so the next run — a new session with no conversation history — starts informed rather than starting over.
Every retained episode records the run and card that produced it. Without that, “why does the fleet believe this?” becomes archaeology instead of a lookup.
Curated, not hoarded
A store that only ever grows becomes a store nobody trusts, because the wrong entry is as durable as the right one. The curator decides what survives a run rather than appending everything by default.
Attribution is what makes correction possible: an entry traced to a run that was later found wrong can be removed, and the removal is itself traceable.
Scoped to the tenant
Memory is addressed per organisation. One tenant's episodes never inform another's run — the same isolation boundary the board and the credential seam enforce, applied to what the fleet remembers.
Inspecting and correcting it
cooddee memory lists what the store holds for an organisation, with the run and card that produced each episode. Memory you cannot inspect is memory you cannot audit — and an agentic system whose beliefs are unauditable is one you cannot debug.
Because every entry carries its provenance, a correction is surgical: an episode traced to a run later found wrong can be removed on its own, without discarding everything learned around it.
What never enters the store
Credential values, resolved secrets and raw agent stdout never reach memory. Episodes record what was learned — a decision, a constraint, a fact about the codebase — not the transcript that produced it.
That boundary is deliberate. A memory store is the one component designed to outlive every run, so anything sensitive that lands in it is sensitive forever.