Skip to content

fix(kanban): add --reason flag to unblock for symmetry with block (#30897)#34411

Merged
teknium1 merged 1 commit into
mainfrom
hermes/hermes-4f9b6288
May 29, 2026
Merged

fix(kanban): add --reason flag to unblock for symmetry with block (#30897)#34411
teknium1 merged 1 commit into
mainfrom
hermes/hermes-4f9b6288

Conversation

@teknium1

@teknium1 teknium1 commented May 29, 2026

Copy link
Copy Markdown
Contributor

Summary

hermes kanban unblock <id> review-required: ... quietly failed: every trailing word past the task id was parsed as another task_id (since task_ids is nargs='+'), then each non-existent id printed "cannot unblock (not blocked/scheduled?)" on stderr with no signal that the reason was being misinterpreted.

block <id> <reason...> accepts positional reason words, so the asymmetry was surprising.

Changes

  • hermes_cli/kanban.py: add --reason "..." flag to unblock; when set, append UNBLOCK: <reason> as a comment before the unblock transition. Bulk syntax (unblock t_a t_b t_c) preserved.
  • scripts/release.py: add AUTHOR_MAP entry for @julio-cloudvisor.

Validation

Before After
unblock t_x review needed parses review, needed as task ids, prints "cannot unblock review (not blocked/scheduled?)" (still parses as task ids — documented quoting convention)
unblock t_x --reason "review needed" argparse: unknown flag unblocks, records UNBLOCK: review needed comment
unblock t_a t_b t_c (bulk) works works (unchanged)
unblock t_a t_b --reason "both green" argparse: unknown flag bulk + reason both work
Existing kanban CLI suite 46/46 pass 46/46 pass

Closes #30897. Credit @julio-cloudvisor for the report.

Infographic

kanban-unblock-reason

…0897)

`hermes kanban unblock <id> review-required: ...` parsed every trailing word
as another task_id (since `task_ids` is `nargs='+'`), then quietly failed on
each non-existent id with "cannot unblock review-required: (not blocked/scheduled?)".
Reporter saw this as asymmetric with `block <id> <reason...>` which accepts
positional reason words.

Fix: add a `--reason "..."` flag that, when provided, is appended as a
`UNBLOCK: <reason>` comment before the unblock transition. Bulk syntax
(`unblock t_a t_b t_c`) is preserved unchanged.

Co-authored-by: julio-cloudvisor <211828103+julio-cloudvisor@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

🔎 Lint report: hermes/hermes-4f9b6288 vs origin/main

ruff

Total: 0 on HEAD, 0 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 0 pre-existing issues carried over.

ty (type checker)

Total: 9420 on HEAD, 9419 on base (🆕 +1)

🆕 New issues (1):

Rule Count
invalid-argument-type 1
First entries
hermes_cli/kanban.py:1994: [invalid-argument-type] invalid-argument-type: Argument to function `add_comment` is incorrect: Expected `str`, found `str | None`

✅ Fixed issues: none

Unchanged: 4890 pre-existing issues carried over.

Diagnostics are surfaced as warnings — this check never fails the build.

@alt-glitch alt-glitch added type/bug Something isn't working comp/cli CLI entry point, hermes_cli/, setup wizard P3 Low — cosmetic, nice to have labels May 29, 2026
@teknium1 teknium1 merged commit ae6817f into main May 29, 2026
32 of 33 checks passed
@teknium1 teknium1 deleted the hermes/hermes-4f9b6288 branch May 29, 2026 06:41
r266-tech added a commit to r266-tech/hermes-agent that referenced this pull request May 29, 2026
r266-tech added a commit to r266-tech/hermes-agent that referenced this pull request May 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cli CLI entry point, hermes_cli/, setup wizard P3 Low — cosmetic, nice to have type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: hermes kanban unblock <id> <reason...> argparse fails on multi-word reasons (works for block)

2 participants