NousResearch/hermes-agent

kanban unblock multi-word reason argparse bug

Cluster 30897 · hermes cli. Data as of

Nothing open on GitHub. Fix merged in #34411 on 29 May 2026. Check it covers your case.

The short answer

0open issues
0open PRs
3items grouped
Known?
Yes. 3 related items grouped here, 1 issue already closed.
Fix event
A fix was merged to main in PR #34411. Check it covers your case. No release data is tracked.
Tracker
The maintainers' tracker marks this resolved, deciding PR #34411. That is separate from the fix event.
Still open
Nothing open on GitHub.

A bug where argparse rejected multi-word reasons for the kanban unblock command, and a fix adding a --reason flag to unblock for symmetry with block.

Open issues0

No open issues.

Open PRs0

No open pull requests.

Fixes on record

Merged to main. A stamp counts the issues a fix is linked to.

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

    merged to main

    files: hermes_cli/kanban.py, scripts/release.py

    Show the diff
    • hermes_cli/kanban.py
      @@ -548,6 +548,11 @@ def build_parser(parent_subparsers: argparse._SubParsersAction) -> argparse.Argu
                                   help="Additional task ids to schedule with the same reason (bulk mode)")
       
           p_unblock = sub.add_parser("unblock", help="Return one or more blocked/scheduled tasks to ready")
      +    p_unblock.add_argument(
      +        "--reason",
      +        default=None,
      +        help="Optional reason/note — recorded as a comment before unblocking. Quote multi-word reasons.",
      +    )
           p_unblock.add_argument("task_ids", nargs="+")
       
           p_promote = sub.add_parser(
      @@ -1978,14 +1983,20 @@ def _cmd_unblock(args: argparse.Namespace) -> int:
           if not ids:
               print("at least one task_id is required", file=sys.stderr)
               return 1
      +    reason = getattr(args, "reason", None)
      +    if reason is not None:
      +        reason = reason.strip() or None
      +    author = _profile_author() if reason else None
           failed: list[str] = []
           with kb.connect_closing() as conn:
               for tid in ids:
      +            if reason:
      +                kb.add_comment(conn, tid, author, f"UNBLOCK: {reason}")
                   if not kb.unblock_task(conn, tid):
                       failed.append(tid)
                       print(f"cannot unblock {tid} (not blocked/scheduled?)", file=sys.stderr)
                   else:
      -                print(f"Unblocked {tid}")
      +                print(f"Unblocked {tid}" + (f": {reason}" if reason else ""))
           return 0 if not failed else 1
       
       
    • scripts/release.py
      @@ -59,6 +59,7 @@
           "[redacted:email]": "wangpuv",
           "[email protected]": "ticketclosed-wontfix",
           "[redacted:email]": "victorGPT",
      +    "[email protected]": "julio-cloudvisor",
           # teknium (multiple emails)
           "[redacted:email]": "teknium1",
           "[redacted:email]": "kenyonxu",

1 PR closed without merging

From the close comments: done elsewhere 1

  • #30915 fix(kanban): argparse rejects multi-word reasons for unblock (fixes #30897) · done elsewhere → ae6817f, #30897, #34411
Closed issues · 1
  • Closed#30897[Bug]: hermes kanban unblock <id> <reason...> argparse fails on multi-word reasons (works for block)
How this cluster was grouped
  • Link evidence (structural links throughout): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
  • Pairwise link density 0.67: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. 1.00 means every pair is linked.

Pick up a Lab task

Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.

Open the Lab

At a glance

Subsystem
hermes cli
Merged PRs
#34411
Closed issues
1
Attempts
1 PR closed without merging
Fix link checked
29 May 2026

For your agent

The same facts, typed.