hermes - 💡(How to fix) Fix [Bug]: hermes kanban unblock <id> <reason...> argparse fails on multi-word reasons (works for block) [1 pull requests]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

The hermes kanban unblock subcommand treats only the first word after the task id as the reason. Bare trailing words become extra positional args and argparse rejects the call. The sibling hermes kanban block <id> <reason...> accepts multi-word reasons fine, so the asymmetry is the bug.

Error Message

argparse error: unrecognized arguments: b c (or similar, depending on the reason tokens).

Root Cause

Caught by an agent attempting cross-board unblock after completing a review. The agent had to retry with shell-quoting which is fragile when the reason is dynamic. Surfaces as silent failures in agent-driven workflows.

Fix Action

Fixed

Code Example

# Fails with argparse "unrecognized arguments":
hermes kanban unblock t_abc123 review-required: needs reviewer

# Fails identically without the colon:
hermes kanban unblock t_abc123 a b c

# Works (shell joins into one token), but shouldn't be required:
hermes kanban unblock t_abc123 "review-required: needs reviewer"

# Compare — block accepts it bare:
hermes kanban block t_abc123 review-required: needs reviewer   # works
RAW_BUFFERClick to expand / collapse

Summary

The hermes kanban unblock subcommand treats only the first word after the task id as the reason. Bare trailing words become extra positional args and argparse rejects the call. The sibling hermes kanban block <id> <reason...> accepts multi-word reasons fine, so the asymmetry is the bug.

Steps to reproduce

# Fails with argparse "unrecognized arguments":
hermes kanban unblock t_abc123 review-required: needs reviewer

# Fails identically without the colon:
hermes kanban unblock t_abc123 a b c

# Works (shell joins into one token), but shouldn't be required:
hermes kanban unblock t_abc123 "review-required: needs reviewer"

# Compare — block accepts it bare:
hermes kanban block t_abc123 review-required: needs reviewer   # works

Expected behavior

unblock parses reason with nargs='*' (or '+') and joins with spaces, matching block. The CLI shapes for paired commands should be symmetric so users / agents don't have to remember which direction needs quoting.

Actual behavior

argparse error: unrecognized arguments: b c (or similar, depending on the reason tokens).

Suggested fix

In hermes_cli/kanban.py (around line 540, the unblock subparser), change the reason positional to nargs='*' and " ".join(reason) in the handler, mirroring whatever block does. Add a CLI regression test alongside the existing block tests.

Real-world impact

Caught by an agent attempting cross-board unblock after completing a review. The agent had to retry with shell-quoting which is fragile when the reason is dynamic. Surfaces as silent failures in agent-driven workflows.

Environment

  • Hermes version: 0.14.0

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

unblock parses reason with nargs='*' (or '+') and joins with spaces, matching block. The CLI shapes for paired commands should be symmetric so users / agents don't have to remember which direction needs quoting.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - 💡(How to fix) Fix [Bug]: hermes kanban unblock <id> <reason...> argparse fails on multi-word reasons (works for block) [1 pull requests]