Skip to content

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

@julio-cloudvisor

Description

@julio-cloudvisor

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low — cosmetic, nice to havecomp/cliCLI entry point, hermes_cli/, setup wizardtype/bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions