From bc961c13f397e0833b6aa3aea66b825ab56c3e26 Mon Sep 17 00:00:00 2001 From: Que0x <201793884+Que0x@users.noreply.github.com> Date: Mon, 18 May 2026 20:15:31 -0700 Subject: [PATCH] fix(kanban): sync slash subcommands with live parser --- hermes_cli/commands.py | 9 ++++++--- tests/hermes_cli/test_kanban_cli.py | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/hermes_cli/commands.py b/hermes_cli/commands.py index 9cff75e4579..446a453b5ad 100644 --- a/hermes_cli/commands.py +++ b/hermes_cli/commands.py @@ -173,9 +173,12 @@ COMMAND_REGISTRY: list[CommandDef] = [ subcommands=("status", "run", "pause", "resume", "pin", "unpin", "restore", "list-archived")), CommandDef("kanban", "Multi-profile collaboration board (tasks, links, comments)", "Tools & Skills", args_hint="[subcommand]", - subcommands=("list", "ls", "show", "create", "assign", "link", "unlink", - "claim", "comment", "complete", "block", "unblock", "archive", - "tail", "dispatch", "context", "init", "gc")), + subcommands=("init", "boards", "create", "list", "ls", "show", "assign", + "reclaim", "reassign", "diagnostics", "diag", "link", "unlink", + "claim", "comment", "complete", "edit", "block", "unblock", + "archive", "tail", "dispatch", "stats", "notify-subscribe", + "notify-list", "notify-unsubscribe", "log", "runs", + "heartbeat", "assignees", "context", "specify", "gc")), CommandDef("reload", "Reload .env variables into the running session", "Tools & Skills", cli_only=True), CommandDef("reload-mcp", "Reload MCP servers from config", "Tools & Skills", diff --git a/tests/hermes_cli/test_kanban_cli.py b/tests/hermes_cli/test_kanban_cli.py index 7aaa46a6197..9187acd2774 100644 --- a/tests/hermes_cli/test_kanban_cli.py +++ b/tests/hermes_cli/test_kanban_cli.py @@ -201,6 +201,24 @@ def test_kanban_in_autocomplete_table(): assert "dispatch" in subs +def test_kanban_autocomplete_includes_live_subcommands(): + from prompt_toolkit.document import Document + + from hermes_cli.commands import SlashCommandCompleter + + completer = SlashCommandCompleter() + doc = Document("/kanban sp", cursor_position=len("/kanban sp")) + texts = {c.text for c in completer.get_completions(doc, None)} + + assert "specify" in texts + + doc = Document("/kanban re", cursor_position=len("/kanban re")) + texts = {c.text for c in completer.get_completions(doc, None)} + + assert "reclaim" in texts + assert "reassign" in texts + + def test_kanban_not_gateway_only(): # kanban is available in BOTH CLI and gateway surfaces. from hermes_cli.commands import COMMAND_REGISTRY