Repository navigation
Make queue updates atomic and recover failed workers - #1
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Keep task claims and queue replenishment consistent across failures and competing local operators.
This 0.2.0 update atomically claims tasks and worker capacity, records launch and timeout failures instead of leaving tasks running, preserves intervening operator state changes, and applies each replenishment plan with its tasks, events, and cursor in one transaction. Invalid output bytes do not abort subsequent workers. Applied duplicate-only plans still advance the cursor so later cycles can recover. Dry-run, duplicate, and stale plans cannot silently create partial work.
The README leads with a real documentation audit that produces three reports and persists task outcomes. It explains synchronous dispatch and the distinct detached-worker role of Local Agent Task Runtime. The changelog records the explicit dry_run=False requirement when constructing a plan for application. Pinned CI checks Python 3.11–3.14, builds the package, and executes the installed demo outside the checkout.
Validation: 41 tests passed; Ruff passed; locked install and refreshed source/wheel builds passed; the isolated installed-wheel demo produced the documented three audit reports. A separate review reproduced and verified binary-output recovery and duplicate-only cursor advancement. Tests cover competing claims, capacity, timeout and launch recovery, stale plans, duplicate titles, and transactional rollback. This remains a synchronous single-machine tool; process trees, distributed leases, and automatic crash recovery are outside its scope.