Repository navigation
Conversation
Verified: 36 focused tests passed; ruff and subprocess stdin guard passed. A newer PR comment and a subsequent spawn retain active_pr protection.
Verified 30 guard and review lifecycle tests; ruff check passed.
Verified upstream guard/review suite: 32 passed; ruff clean. Dependency continuation is consumed after the first spawn.
Verified 33 guard/review tests and ruff; same-second inline audit comments no longer block operator continuation on pre-upgrade boards.
Verified upstream guard/review/reclaim suite: 41 passed. Equal-second strict mutant fails the intended arm.
…r review skip Argus r2 caveats on #956: C1: the prior_worker_still_alive page hardcoded 'READY card'. The probe now carries the card status and the page says '<STATUS> card' (REVIEW for the review claim door). Dispatcher STUCK log no longer says READY. C2: new test_active_pr_stuck_page_is_ready_lane_only[ready|review] gates the status != 'ready' skip for the active_pr page. Verified: removing the skip -> [review] RED; hardcoding READY in the sender -> test_guard_stuck_sender_routes_to_alerts RED; dropping status from the probe -> both prior_worker parametrizations RED. Focused db/second-claim/reclaim/watchers/cli + stdin-guard tests: 213 passed, 1 skipped; ruff clean; scripts/check_subprocess_stdin.py clean. Upstream ref: NousResearch#121177
…r review skip Argus r2 caveats on #956: C1: the prior_worker_still_alive page hardcoded 'READY card'. The probe now carries the card status and the page says '<STATUS> card' (REVIEW for the review claim door). Dispatcher STUCK log no longer says READY. C2: new test_active_pr_stuck_page_is_ready_lane_only[ready|review] gates the status != 'ready' skip for the active_pr page. Verified: removing the skip -> [review] RED; hardcoding READY in the sender -> test_guard_stuck_sender_routes_to_alerts RED; dropping status from the probe -> both prior_worker parametrizations RED. Focused db/second-claim/reclaim/watchers/cli + stdin-guard tests: 213 passed, 1 skipped; ruff clean; scripts/check_subprocess_stdin.py clean. Upstream ref: NousResearch#121177
Two independent changes; the "and" in the title is honest — I exercised each alone and each works without the other, sharing only the new 1. 2. 3. The new command is invisible to agents and undocumented. |
Summary
A worker that opens a PR and then calls
kanban_block(kind="dependency")cannot resume after its parents finish: the automaticpromotedevent does not count as a handoff, socheck_respawn_guardreturnsactive_pron every tick. The PR is the continuation target in this case, not duplicate work.dependency_waitfollowed bypromoted, when the PR comment preceded the wait. A spawn after that promotion re-arms the original crash/reclaim guard. A newer PR comment also stays guarded.hermes kanban requeue <id> <reason>for an operator to explicitly retry a READY card without first blocking and unblocking it. Requeue requires a reason and an unclaimed READY card; it cannot override a newer PR comment, and a subsequent spawn re-arms the guard.Reproduction and verification
Before the change,
test_worker_dependency_wait_promoted_continues_pr_oncefails:assert 'active_pr' is Noneafter real block → parent completion → promotion. After the change:Tests cover worker dependency block, parent completion, promotion, post-continuation spawn-event null control, a newer PR comment, CLI requeue, invalid state, and operator retry reset. This ports the generic guard/CLI portion of ANG-Ventures#952; its fleet-specific #alerts notifier is not included upstream.