Read a failed read-back again once CMO answered the write #132
Loading…
Reference in a new issue
No description provided.
Delete branch "vinny/readback-retry"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #131.
In laboratory trial tpl-surface-defensive-escort, CMO answered an assignment and a deactivation, but their read-backs ran over the proxy's time budget while the game was busy. Both stayed
outcome_unknownfor good, with their missions and units reserved:verify_dueonly tookaccepted_in_progressactions. Also, a read-back that the proxy let expire unread carriesexecution_proven_absent, so the coordinator recorded the write as refused ("No effect was sent") and released its reservation, though CMO had run it.Changes:
ActionCoordinator.executemarks the write answered once its receipt is recorded. After that, any failure (other than a changed timeline) is a read failure, and_unknown(..., reread=True)handles it.outcome_unknownand its read-back is due again after 15 s, then 30, 60, 120, 240 and 480 s (capped at 600). That isREADBACK_FAILURE_RETRIES= 6 re-reads, about 16 minutes. After the last one it is left for reconciliation as before.verify_duere-reads these actions the same way, andActionLedger.next_verificationnow also takesoutcome_unknownactions that have a due time. Only these re-reads set one.docs/TOOL_LIBRARY.mddescribes this.Tests (
tests/stage3/test_execution.py, synthetic port with a read-back failure):The first three fail without the change. The expired-read case was recorded as rejected.
🤖 Generated with Claude Code