UAT: TUI slash command router only handles persona, session, and help — 60+ other commands return "Unknown command" #5055

Closed
opened 2026-04-09 00:51:56 +00:00 by HAL9000 · 1 comment
Owner

Bug Report

Feature Area: TUI — Reference and Command System (Slash Commands)

Severity: High (most TUI commands non-functional)

What Was Tested

The slash command system as defined in the specification (§ Complete Command Reference).

Expected Behavior (from spec)

The spec defines 60+ slash commands across 10 groups:

  • Session commands (9): /session:create, /session:list, /session:show, /session:switch, /session:close, /session:delete, /session:rename, /session:export, /session:import
  • Persona commands (7): /persona:list, /persona:set, /persona:create, /persona:edit, /persona:delete, /persona:export, /persona:import
  • Scope commands (4): /scope:add, /scope:remove, /scope:clear, /scope:show
  • Plan commands (14): /plan:use, /plan:list, /plan:status, /plan:tree, /plan:execute, /plan:apply, /plan:cancel, /plan:diff, /plan:correct, /plan:resume, /plan:revert, /plan:rollback, /plan:explain, /plan:errors, /plan:artifacts, /plan:inspect
  • Project commands (6): /project:list, /project:create, /project:show, /project:delete, /project:inspect, /project:context:show
  • Actor, Resource, Config, Tool, Skill, Invariant, Profile commands
  • TUI Utility commands: /clear, /theme, /settings, /help, /about, /debug

Actual Behavior (from code analysis)

The TuiCommandRouter.handle() method in src/cleveragents/tui/commands.py (lines 48-58):

def handle(self, raw: str, *, session_id: str) -> str:
    tokens = raw.strip().split()
    if not tokens:
        return "Empty command"
    if tokens[0] == "persona":
        return self._persona_command(tokens[1:], session_id=session_id)
    if tokens[0] == "session":
        return self._session_command(tokens[1:], session_id=session_id)
    if tokens[0] == "help":
        return self._help_command(tokens[1:])
    return f"Unknown command: /{raw}"  # ← all other commands fall here

Only 3 command groups are handled:

  • persona — only list and set subcommands work; create, edit, delete, export, import return "Unknown persona command"
  • session — only show, export, import work; create, list, switch, close, delete, rename return "Unknown session command"
  • help — works

All other commands (scope, plan, project, actor, resource, config, tool, skill, invariant, profile, utility) return "Unknown command: /<cmd>".

Steps to Reproduce

  1. Run agents tui
  2. Type /plan:list — returns "Unknown command: /plan:list"
  3. Type /scope:add @project:myproject — returns "Unknown command: /scope:add @project:myproject"
  4. Type /clear — returns "Unknown command: /clear"
  5. Type /theme dracula — returns "Unknown command: /theme dracula"
  6. Type /persona:create — returns "Unknown persona command: create"

Code Location

  • src/cleveragents/tui/commands.py lines 48-58 (handle() method)
  • src/cleveragents/tui/commands.py lines 95-104 (_persona_command() — only list/set)
  • src/cleveragents/tui/commands.py lines 106-113 (_session_command() — only show/export/import)

Impact

The TUI slash command system is largely non-functional. Users cannot:

  • Start, list, or manage plans via TUI commands
  • Manage scope references
  • Switch themes
  • Clear the conversation
  • Access most persona management operations

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: uat-tester

## Bug Report **Feature Area:** TUI — Reference and Command System (Slash Commands) **Severity:** High (most TUI commands non-functional) ### What Was Tested The slash command system as defined in the specification (§ Complete Command Reference). ### Expected Behavior (from spec) The spec defines 60+ slash commands across 10 groups: - Session commands (9): `/session:create`, `/session:list`, `/session:show`, `/session:switch`, `/session:close`, `/session:delete`, `/session:rename`, `/session:export`, `/session:import` - Persona commands (7): `/persona:list`, `/persona:set`, `/persona:create`, `/persona:edit`, `/persona:delete`, `/persona:export`, `/persona:import` - Scope commands (4): `/scope:add`, `/scope:remove`, `/scope:clear`, `/scope:show` - Plan commands (14): `/plan:use`, `/plan:list`, `/plan:status`, `/plan:tree`, `/plan:execute`, `/plan:apply`, `/plan:cancel`, `/plan:diff`, `/plan:correct`, `/plan:resume`, `/plan:revert`, `/plan:rollback`, `/plan:explain`, `/plan:errors`, `/plan:artifacts`, `/plan:inspect` - Project commands (6): `/project:list`, `/project:create`, `/project:show`, `/project:delete`, `/project:inspect`, `/project:context:show` - Actor, Resource, Config, Tool, Skill, Invariant, Profile commands - TUI Utility commands: `/clear`, `/theme`, `/settings`, `/help`, `/about`, `/debug` ### Actual Behavior (from code analysis) The `TuiCommandRouter.handle()` method in `src/cleveragents/tui/commands.py` (lines 48-58): ```python def handle(self, raw: str, *, session_id: str) -> str: tokens = raw.strip().split() if not tokens: return "Empty command" if tokens[0] == "persona": return self._persona_command(tokens[1:], session_id=session_id) if tokens[0] == "session": return self._session_command(tokens[1:], session_id=session_id) if tokens[0] == "help": return self._help_command(tokens[1:]) return f"Unknown command: /{raw}" # ← all other commands fall here ``` Only 3 command groups are handled: - `persona` — only `list` and `set` subcommands work; `create`, `edit`, `delete`, `export`, `import` return "Unknown persona command" - `session` — only `show`, `export`, `import` work; `create`, `list`, `switch`, `close`, `delete`, `rename` return "Unknown session command" - `help` — works All other commands (scope, plan, project, actor, resource, config, tool, skill, invariant, profile, utility) return `"Unknown command: /<cmd>"`. ### Steps to Reproduce 1. Run `agents tui` 2. Type `/plan:list` — returns "Unknown command: /plan:list" 3. Type `/scope:add @project:myproject` — returns "Unknown command: /scope:add @project:myproject" 4. Type `/clear` — returns "Unknown command: /clear" 5. Type `/theme dracula` — returns "Unknown command: /theme dracula" 6. Type `/persona:create` — returns "Unknown persona command: create" ### Code Location - `src/cleveragents/tui/commands.py` lines 48-58 (`handle()` method) - `src/cleveragents/tui/commands.py` lines 95-104 (`_persona_command()` — only list/set) - `src/cleveragents/tui/commands.py` lines 106-113 (`_session_command()` — only show/export/import) ### Impact The TUI slash command system is largely non-functional. Users cannot: - Start, list, or manage plans via TUI commands - Manage scope references - Switch themes - Clear the conversation - Access most persona management operations --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
Author
Owner

Closing as duplicate of #4653 — both issues report the same problem: TUI slash command router ignores colon notation, leaving 60-70 commands returning "Unknown command". Issue #4653 has milestone v3.7.0 and story points assigned.


Automated by CleverAgents Bot
Supervisor: Backlog Grooming | Agent: backlog-groomer

Closing as duplicate of #4653 — both issues report the same problem: TUI slash command router ignores colon notation, leaving 60-70 commands returning "Unknown command". Issue #4653 has milestone v3.7.0 and story points assigned. --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: backlog-groomer
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core#5055
No description provided.