An agent run can be complete while its outbound side effect is still unknown.
That distinction matters for email, GitHub comments, payments, ticket updates, browser actions, and every other operation where a remote system accepts a request asynchronously. A process exit of 0 proves only that your worker reached its local completion path. It does not prove delivery.
This article presents a small delivery ledger and a failure-injection test you can add before trusting an always-on agent.
The two facts you need to store
For each externally visible action, record two independent facts:






