feat: allow forced kanban dispatch - #30457
Open
sergeikabuldzhanov wants to merge 1 commit into
Open
Conversation
6 tasks
teknium1
reviewed
Jul 13, 2026
teknium1
left a comment
Contributor
There was a problem hiding this comment.
Thanks for adding targeted dispatch and guard diagnostics. Current main already handles deliberate re-runs after recent success: hermes_cli/kanban_db.py:7080-7103 recognizes an explicit re-queue event, with coverage at tests/hermes_cli/test_kanban_db.py:1882-1903 (commit 77db9d6bf).
Problems
hermes_cli/kanban_db.py:4876appliesforceregardless of whethertask_idsis set. Thusdispatch --forcebypasses every guard on every ready task, despite the CLI help describing selected tasks. The PR documentation explicitly includes auth blockers, while current main deliberately defers quota/auth failures (tests/hermes_cli/test_kanban_db.py:1947-1989) and rate-limit cooldowns (hermes_cli/kanban_db.py:7039-7073).- The dispatcher now has lock-aware wrapper and implementation layers (
hermes_cli/kanban_db.py:7174-7253), so this needs a port rather than applying the old single-function change.
Suggested changes
- Require explicit
--taskIDs with--force, preserve the filter through the current locked dispatcher, and limit override behavior to reviewed guard reasons such asactive_pr. - Add coverage that force cannot restart quota/auth or rate-limited tasks.
Automated hermes-sweeper review.
| @@ -4863,17 +4874,26 @@ def dispatch_once( | |||
| # blocks via the normal path rather than on first occurrence. | |||
| guard_reason = check_respawn_guard(conn, row["id"]) | |||
| if guard_reason is not None: | |||
Contributor
There was a problem hiding this comment.
force is not conditioned on task_filter, so hermes kanban dispatch --force bypasses guards for every ready task, including the documented auth blocker. Require explicit selected task IDs and preserve quota/auth (and current main's rate-limit) protections rather than treating every guard as manually overrideable.
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.
Summary
hermes kanban dispatch --task/--task-idto target specific ready/review tasks--forceto bypass respawn guards such asactive_prandrecent_successrespawn_guard_overriddenevents and expose guard diagnostics in text/JSON dispatch outputTests
/home/sergei/.hermes/hermes-agent/venv/bin/python -m py_compile hermes_cli/kanban.py hermes_cli/kanban_db.py/home/sergei/.hermes/hermes-agent/venv/bin/python -m pytest tests/hermes_cli/test_kanban_db.py -q -o 'addopts='