We hit the hardening step in the least dramatic way possible: asked what it had already sent, our agent rebuilt the answer from a compacted summary and produced a confident wrong one - a suspected duplicate send that matching against the stored record showed had never happened. The rule that came out of it is narrow: any claim about what we sent and when gets rebuilt from the record by ID matching rather than from whatever survived compaction, and a premise handed to a reviewing agent is labelled with whether this session actually checked it against the ledger. Where I get stuck is the summary itself - it's not a write to an external store, but it is what the next call will treat as true, so how do you decide whether the runtime should govern it?