Carry and staleness
A checkpoint captures one session. Carry is what makes memory span many: items that are still open — unresolved questions, standing decisions, unfinished work — are carried forward from older checkpoints into the next briefing, so they keep appearing until something closes them.
The [carried] suffix
An item written by the most recent session appears plain. An item riding forward from an older checkpoint gets a visible suffix:
- [~ inferred] The staging config drift needs an owner [carried]
[carried] means: no session has re-confirmed this recently — it may be
stale. The older a carried item gets, the more skeptically it should be read.
Carry deliberately never rewords items — a carried verbatim quote is the same
bytes it was on day one (see trust classes).
Carry is bounded, not infinite
Unclosed items do not accumulate forever:
- Each item's carry weight decays over time, importance-graded. With the
default floor (
DAIMON_CARRY_FLOOR), decisions expire from carry in roughly 5–6 weeks; escalated open questions live around 3–4 months. - At most
DAIMON_CARRY_MAXitems per kind are carried (default: 8), so a briefing stays skimmable no matter how long a project runs. - Resolving an item ends its carry immediately — that is the intended way items leave, decay is the backstop.
All knobs live in the
configuration reference, including
DAIMON_CARRY (master switch, on by default).
What leaving carry means
The live memory is one checkpoint per project, and a briefing renders only
what carry keeps. When an item decays out — or the per-kind cap trims it —
it is not deleted: it survives in the historical session files and the recall
index, and daimon recall <terms> reaches it permanently. But it will never
re-enter a briefing on its own. That is the deliberate trade of a briefing
product: the working set stays skimmable precisely because everything outside
it is reachable only when asked for. If silence in a briefing surprises you,
recall is the answer, not a lost memory.
The staleness warning
Carry has a failure mode daimon warns about explicitly: an item can ride along, restated briefing after briefing, without anyone actually re-checking it against the world. Two of daimon's own artifacts agreeing — the briefing and an old checkpoint — is not corroboration; they are the same source repeated.
So when a carried item's last-verified stamp ages past DAIMON_STALE_DAYS
(default: 7 days), the briefing says so:
N carried item(s) unverified for >N days — world-check before repeating as true
The intended response is to check the world — code, git, the issue tracker —
and then either resolve the item (it's done or wrong) or
daimon reverify it with evidence (it's still true), which resets the clock.
Supersession: carry that argues with itself
When a newer session contradicts a carried item — the project committed to X,
then later committed to Y — carry does not silently drop the old item or
silently keep injecting it as fact. The briefing flags it as a supersession
candidate, presenting both sides with the confirm/reject commands inline.
Confirming (daimon resolve <id>) withholds the stale side from every future
briefing; rejecting (daimon reverify <id>) keeps the item and records why.
Nothing is guessed on your behalf — see the
item lifecycle for the full mechanics.