Read back a write the proxy stopped past its time budget #153

Manually merged
vinny merged 0 commits from vinny/budget-readback into master 2026-10-17 15:32:09 -04:00 AGit
Owner

Summary

  • Fixes #152. A write the proxy stopped past its time budget ("socket command aborted: elapsed-time budget exceeded") was left outcome_unknown with no read-back due, so its reservation was never released. In lab run 10b, six missions.set_parameters writes held their missions for hours, and 51 later actions on them were rejected.
  • A budget abort is the proxy's completed reply: the write ran, perhaps in part, and nothing of it still runs. Its read-back now comes due at once and then with the backoff an answered write gets. The write is never sent again.
  • A write whose reply was lost still waits for explicit reconciliation.
  • TOOL_LIBRARY.md describes the change.

Test plan

  • tests/stage3/test_execution.py::test_a_write_the_proxy_stopped_past_its_budget_is_read_back_and_never_sent_again: due read-back completes it, one send, reservation released.
  • The existing lost-reply test still leaves a lost write for reconciliation.
  • Background tools/check.py --rev

🤖 Generated with Claude Code

## Summary - Fixes #152. A write the proxy stopped past its time budget ("socket command aborted: elapsed-time budget exceeded") was left `outcome_unknown` with no read-back due, so its reservation was never released. In lab run 10b, six `missions.set_parameters` writes held their missions for hours, and 51 later actions on them were rejected. - A budget abort is the proxy's completed reply: the write ran, perhaps in part, and nothing of it still runs. Its read-back now comes due at once and then with the backoff an answered write gets. The write is never sent again. - A write whose reply was lost still waits for explicit reconciliation. - TOOL_LIBRARY.md describes the change. ## Test plan - [x] `tests/stage3/test_execution.py::test_a_write_the_proxy_stopped_past_its_budget_is_read_back_and_never_sent_again`: due read-back completes it, one send, reservation released. - [x] The existing lost-reply test still leaves a lost write for reconciliation. - [ ] Background `tools/check.py --rev` 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Fixes #152. A write the proxy stopped with "socket command aborted:
elapsed-time budget exceeded" was left outcome_unknown with no read-back due,
so it was never reconciled. Six mission settings in a lab trial at about 1.1x
held their missions this way for hours, and 51 later actions on those missions
were refused as resource conflicts.

A budget abort is the proxy's own completed reply: the write ran, perhaps in
part, and nothing of it still runs. Its read-back is now due at once and then
with the backoff an answered write gets (READBACK_FAILURE_RETRIES). The write
is never sent again; a write whose reply was lost still waits for explicit
reconciliation.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Version 0.7.95 (budget-readback)
Some checks failed
check / check (ubuntu-latest) (push) Has been cancelled
check / check (windows-latest) (push) Has been cancelled
check / check (windows-latest) (pull_request) Has been cancelled
check / check (ubuntu-latest) (pull_request) Has been cancelled
59d335eea1
vinny manually merged commit 59d335eea1 into master 2026-10-17 15:32:09 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
vinny/CMOnet!153
No description provided.