fix(kanban): honor explicit same-PR requeues - #76227
Conversation
|
Live end-to-end verification on an affected multi-board installation:
This verifies the production dispatcher path, not only the unit helper. The installation still preserves the guard when the latest PR comment has no later explicit requeue. |
Duplicate of #74432: both patches use the same later requeue-event versus latest PR-comment ordering rule in check_respawn_guard(). |
|
Thanks for the focused Kanban fix. The premise is confirmed on current main: Problems
Suggested changes
Automated hermes-sweeper review. |
GottZ
left a comment
There was a problem hiding this comment.
This was generated by AI during triage.
Summary
No member issue is listed for this complex; two open PRs address the same respawn-guard defect. Both make a later explicit requeue override recent PR evidence, while #76640 additionally updates the recent-success path and covers the production manual-promotion event and timestamp-equality boundary; #76227 uniquely contributes a dispatcher-path regression test in the supplied evidence.
Related pull requests
- #76227
related— (+99/-1) — duplicate core with dispatcher-test salvage: The implementation applies the later-requeue ordering rule also attributed by a contributor to #74432, but it omitspromoted_manualand equal-timestamp coverage. Despite the keep_open verdict on #76227, closing it after salvaging its dispatcher-path regression is supported by the contributor duplicate finding and by #76640's broader event handling; the supplied evidence does not establish that #74432 already has equivalent dispatcher coverage. - #76640
related— (+115/-3) — keep open with a salvage path: Its current diff includespromoted_manualin both respawn-guard allowlists, tests the productionpromote_task()API, preserves the guard on equal timestamps, and extends the related recent-success path. This addresses the contributor's blocking manual-promotion finding and the keep_open review's requested equality coverage; a contributor still identifies the core active-PR change as a duplicate of #74432, so reconciliation with #74432 remains necessary.
Duplicates
#76227 and #76640 substantially duplicate each other on the active-PR later-requeue bypass, and contributor comments identify each as duplicating #74432. Their supplied test scope is not identical: #76227 has dispatcher-path coverage, while #76640 has production manual-promotion, equal-timestamp, and recent-success coverage.
Suggested consolidation
Keep #76640 open with a salvage path: reconcile its shared active-PR change against #74432, retain the demonstrated promoted_manual, promote_task(), equal-timestamp, and recent-success coverage, and import #76227's dispatcher-path regression if #74432 does not already cover that path. Then close #76227 as a duplicate of #74432, superseded for consolidation purposes by the broader salvage in #76640; this departs from #76227's keep_open verdict because its implementation misses the documented production event and timestamp boundary, while preserving its one evidenced distinct test contribution.
Cross-PR triage: Reviewed 2 pull requests and 0 issues in this complex. Each diff was read against this issue; Assessment working set: 13 kB of PR diffs, 2 kB of issue/PR text, 6 kB of discussion (8 comments), 0 verify verdicts. verdicts reflect diff content, not PR titles. Part of an automated triage batch.
Summary
Why
Kanban documents blocked → unblock → re-run and dependency promotion as supported workflows. The active-PR guard currently treats any recent PR URL as an unconditional 24-hour lock, stranding deliberate same-PR re-reviews even after remediation dependencies complete.
Test plan
active_prbefore the patchscripts/run_tests.sh tests/hermes_cli/test_kanban_db.py -q— 33 passedruff check hermes_cli/kanban_db.py tests/hermes_cli/test_kanban_db.py— passedtests/hermes_clirun: 3,889 passed; 5 unrelated pre-existing failures intest_update_eol_churn.pyreproduced when run alone