Replay, Not Memory
Anvil's trail is append-only, total, and self-sufficient in anvil-db. Every state transition, artifact version, judgment, tie-break, dissent, and reveal is durable before it is shown. The SQLite run, seat, and submission views are projections of that record, not permission for an operator to patch history after a crash.
Recovery begins by reading durable state and store references. A submission archived before failure remains submitted; a stored ballot remains ruled; a phase advance that never committed remains unapplied. Completed model or harness work is not rerun merely because a process restarted.
On the sealed rail, raw and scrubbed artifact copies live with the trail, while cwkPippa conversation IDs are only back-references. Rebuilding an Anvil run never depends on rereading another product's conversation store. Open Run store trees and reports likewise remain in anvil-db; yards are valuable process archaeology but not rebuild dependencies.
If durable facts and a cached display disagree, the trail wins. Recovery appends any replacement, withdrawal, or resumed action as new fact rather than rewriting earlier events.