Repository navigation
fix(kanban): report truthful gave-up causes - #64605
stevenbaert wants to merge 1 commit into
Conversation
|
Repro for a misleading error message case that fits this issue's scope: # Current board is cqgambit
hermes kanban boards switch cqgambit
# Card t_4dff09c7 is in 'ready' on the 'default' board
hermes kanban block t_4dff09c7 "test" --kind needs_inputActual: Truth: The id IS known (it exists on another board) and the card IS in ready. The real problem is the card is on a different board than the current one. The error message should name the current board and suggest the fix ("task not found on current board 'cqgambit' — switch to 'default' first"). The operator retried the same command 8 times because the error doesn't tell them what's actually wrong. The |
|
Thanks for the focused fix. The premise holds on current main: The formatter in commit Automated hermes-sweeper review. |
SummaryThirteen PRs address or reference four Kanban gateway issues, covering dispatcher exclusivity, false stuck telemetry, auto-decompose diagnostics and secret scope, concurrency parsing, activity and notifier reporting, archived-board races, and worker-log cleanup. The diffs address distinct causes, with material overlap in the singleton-lock, false-stuck, max_spawn-coercion, and auto-decompose secret-scope groups. Related pull requests
Duplicates#41679 and #44919 overlap on #41448, with merged #49068 as the machine-global consolidation; #46892 and #65581 overlap on #46800 but currently provide complementary max_spawn detection and board-local health accounting; #59588 overlaps #65644 on max_spawn coercion; the Kanban half of closed #76864 duplicates #57837. Suggested consolidationKeep #64605 open with its focused notifier-formatting salvage path, and keep #49861, #57837, #62893, and #65321 open on their documented reviewed paths. Author action: rebase or split #46892/#65581 into a focused #46800 change combining per-board externally occupied max_spawn detection with board-local gateway and daemon accounting while removing #65581's unrelated gateway-status scope; retain both recorded best-fix PRs until that reconciliation, require #65644's finally-based exceptional-Popen cleanup before closing #59588 as its narrower duplicate despite #59588's keep_open review, and leave #41679, #44919, and #76864 closed in favor of #49068, #57837, and #76871 respectively. Cross-PR triage: Reviewed 13 pull requests and 4 issues in this complex. Each diff was read against this issue; Assessment working set: 142 kB of PR diffs, 45 kB of issue/PR text, 29 kB of discussion (31 comments), 11 verify verdicts. verdicts reflect diff content, not PR titles. Part of an automated triage batch. |
Summary
Kanban's notifier currently describes every
gave_upevent as caused by repeated spawn failures. That is incorrect for iteration exhaustion, timeouts, crashes, and other circuit-breaker causes.This change:
errorwhen one is present;failure limit reached;Reproduction
An event with:
previously rendered as:
The two lines contradicted each other and sent operators toward the wrong remediation path.
Verification
Independent QA was performed on exact commit
8cc4aff20318d8459904b759db34c4947614ef71:py_compile: passed;git diff --check: passed;Risk
Low and limited to human-facing
gave_upnotification formatting. Event production, retry limits, dispatch behavior, and runtime lifecycle are unchanged.Tracker
Installation tracker and acceptance criteria: https://github.com/stevenbaert/hermes/issues/712
No runtime activation or gateway restart is included.