# NousResearch/hermes-agent · kanban unblock multi-word reason argparse bug

## Open now

- 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.

## TL;DR

- 3 member(s): 0 open issue(s), 1 closed issue(s), 0 open PR(s), 1 merged PR(s), 1 PR(s) closed without merging.
- A fix was merged to main in PR #34411. Verify it addresses your case.
- **Recommended:** read PR #34411 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `resolved` · deciding PR(s): `pr-34411`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.67`: the share of member 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.

## Closed / duplicate issues

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

## Prior & competing PRs

- **#34411: fix(kanban): add --reason flag to unblock for symmetry with block (#30897)**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`
  - files: `hermes_cli/kanban.py`, `scripts/release.py`
  - fix hunks:
  - `hermes_cli/kanban.py`

    ```diff
    @@ -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(
    ```

    ```diff
    @@ -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`

    ```diff
    @@ -59,6 +59,7 @@
         "[redacted:email]": "wangpuv",
         "202622897+ticketclosed-wontfix@users.noreply.github.com": "ticketclosed-wontfix",
         "[redacted:email]": "victorGPT",
    +    "211828103+julio-cloudvisor@users.noreply.github.com": "julio-cloudvisor",
         # teknium (multiple emails)
         "[redacted:email]": "teknium1",
         "[redacted:email]": "kenyonxu",
    ```
- **#30915: fix(kanban): argparse rejects multi-word reasons for unblock (fixes #30897)**. closed without merge
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `ae6817f7f735735d8b6bf928c672002df0fca07a`, `#30897`, `#34411`

## Fix status

- Merged to main in PR #34411 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-05-29`.
- Subsystem: `hermes_cli`
