The action succeeded. The reply vanished. What happens next?
A continuation and replay reference for the awkward moment when an agent cannot tell whether a tool finished its work.
Demonstrated
The reference makes completed work recoverable after a lost reply. A retry can recover the recorded result instead of blindly creating another issue.
In practice
A lost reply means unknown, not failed. Ask the system of record before retrying anything with side effects.
Why this question matters
A missing reply leaves an agent with an awkward choice: retry and risk doing the work twice, or stop without knowing whether it finished. That uncertainty is the problem this project takes on.
What I built
A SQLite-backed execution record and lost-reply recovery path, exercised through the MCP SDK over stdio with a synthetic issue-creation tool.
System sketch, not a live run.
Stored result returned
Recover the result.
After a restart, the agent calls get_operation_status with the same operation_id. The answer is return_stored_result, and nothing runs again.
A design choice
A retry reuses the original operation ID, and a status read never authorises a fresh write. The easier design gives each attempt a new ID. The repository keeps a deliberately unsafe control that does exactly that, and it creates a second issue. The price of refusing it: when the record cannot settle what happened, the outcome stays unknown instead of being guessed.
What the work shows
- Interruption
- After commitThe fixture crashes after the work has been recorded.
- Recovery
- Status readbackThe restarted caller uses the same operation identity.
- Database assertion
- 1 physical issueThe test checks that recovery has not created a second issue.
Inspect the evidence
- Read the recovery test
Crash after commit, restart, status-only recovery and physical row assertions.
- Inspect the lost-reply demo
The frozen case-03 scenario and its retained wire transcripts and SQLite checks.
Where the evidence stops
This is one bounded tool and recovery scenario. It is not a production guarantee for arbitrary MCP tools or external side effects.