Repository navigation
fix(kanban): preserve quota exits in non-quiet workers - #98969
Jamesrobertsonldn wants to merge 1 commit into
Conversation
86dd3e5 to
50dcd4a
Compare
PR 98969 — fix(kanban): preserve quota exits in non-quiet workers Summary: Strengths:
Non-blocking observations:
Verdict: Correct exit-code preservation fix with good test guard. Minor |
|
Landed on main: #112500 (1b2a75f) gave the non-quiet Credit: this cluster reached thirteen PRs before one landed and my sweep missed this one on the first pass (different vocabulary). Precedence on the mechanism goes to the earliest — noted on the merged PR. Closing as implemented on main; thank you for the fix. |
Summary
rate_limitandbillingfailures for every Kanban one-shot workerRoot cause
The fully quiet
-Qpath already translated a structured provider quota failure into code 75, but the ordinary non-quiet one-shot path printed the same terminal failure and returned code 0. The dispatcher therefore recorded a protocol violation and incremented the card failure counter.This change reuses the structured conversation result and the existing dispatcher sentinel. It deliberately does not parse logs, make all workers quiet, or raise
SystemExitfrom reusableHermesCLI.chat().Related prior work inspected: #85083 and #97623. This patch preserves normal non-quiet observability and keeps process-exit policy at
main().Validation
Canonical wrapper:
scripts/run_tests.sh tests/cli/test_kanban_rate_limit_exit.py tests/cli/test_cli_interrupt_ack_race.py tests/hermes_cli/test_kanban_db.py tests/cli/test_single_query_session_finalize.py -q— 50 passed, 0 failed, 1 Windows-only skipscripts/run_tests.sh tests/cli/test_chat_q_exit_clear.py tests/cli/test_exit_summary_resume_hint.py tests/hermes_cli/test_signal_handler_kanban_worker.py -q— 11 passed, 0 failed