UAT: TUI TuiCommandRouter only handles persona list/set and session show/export/import — 67 of 70 catalog commands return "Unknown command" #4844

Open
opened 2026-04-08 20:07:44 +00:00 by HAL9000 · 0 comments
Owner

Bug Report

Feature Area: TUI Interface — Reference and Command System (ADR-046)

What Was Tested

TuiCommandRouter.handle() in src/cleveragents/tui/commands.py — the command dispatch logic for all / slash commands.

Expected Behavior (from spec ADR-046)

The slash command system must handle all 70 commands defined in slash_catalog.py, organized into namespaces: Session, Persona, Scope, Plan, Project, Actor, Resource, Config, Tool, Skill, Invariant, Profile, Context, and Utility commands.

The spec states: "Commands are TUI operations that execute immediately without being sent to the actor."

Actual Behavior

TuiCommandRouter.handle() dispatches only:

  • persona_persona_command() which only handles list and set sub-verbs
  • session_session_command() which only handles show, export, import
  • help_help_command()

All other commands return "Unknown command: /<raw>":

  • All scope:* commands (4 commands)
  • All plan:* commands (13 commands)
  • All project:* commands (6 commands)
  • All actor:* commands (3 commands)
  • All resource:* commands (4 commands)
  • All config:* commands (3 commands)
  • All tool:* commands (2 commands)
  • All skill:* commands (2 commands)
  • All invariant:* commands (3 commands)
  • All profile:* commands (2 commands)
  • All context:* commands (3 commands)
  • Utility commands: clear, theme, settings, about, debug
  • Persona sub-verbs: create, edit, delete, export, import
  • Session sub-verbs: create, list, switch, close, delete, rename

Additionally, the router uses space-split tokenization (raw.strip().split()), so colon-notation commands like /session:create are never matched — the router checks tokens[0] == "persona" but the input after stripping the leading / would be "session:create", not "session".

Code Location

src/cleveragents/tui/commands.pyTuiCommandRouter.handle() method

Steps to Reproduce

  1. Launch TUI
  2. Type /plan:list and press Enter
  3. Observe: "Unknown command: /plan:list"
  4. Type /scope:show and press Enter
  5. Observe: "Unknown command: /scope:show"

Impact

The entire slash command system is non-functional for 67 of 70 commands. Users cannot manage plans, projects, actors, resources, or configuration from the TUI.


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

## Bug Report **Feature Area:** TUI Interface — Reference and Command System (ADR-046) ### What Was Tested `TuiCommandRouter.handle()` in `src/cleveragents/tui/commands.py` — the command dispatch logic for all `/` slash commands. ### Expected Behavior (from spec ADR-046) The slash command system must handle all 70 commands defined in `slash_catalog.py`, organized into namespaces: Session, Persona, Scope, Plan, Project, Actor, Resource, Config, Tool, Skill, Invariant, Profile, Context, and Utility commands. The spec states: "Commands are TUI operations that execute immediately without being sent to the actor." ### Actual Behavior `TuiCommandRouter.handle()` dispatches only: - `persona` → `_persona_command()` which only handles `list` and `set` sub-verbs - `session` → `_session_command()` which only handles `show`, `export`, `import` - `help` → `_help_command()` All other commands return `"Unknown command: /<raw>"`: - All `scope:*` commands (4 commands) - All `plan:*` commands (13 commands) - All `project:*` commands (6 commands) - All `actor:*` commands (3 commands) - All `resource:*` commands (4 commands) - All `config:*` commands (3 commands) - All `tool:*` commands (2 commands) - All `skill:*` commands (2 commands) - All `invariant:*` commands (3 commands) - All `profile:*` commands (2 commands) - All `context:*` commands (3 commands) - Utility commands: `clear`, `theme`, `settings`, `about`, `debug` - Persona sub-verbs: `create`, `edit`, `delete`, `export`, `import` - Session sub-verbs: `create`, `list`, `switch`, `close`, `delete`, `rename` **Additionally**, the router uses space-split tokenization (`raw.strip().split()`), so colon-notation commands like `/session:create` are never matched — the router checks `tokens[0] == "persona"` but the input after stripping the leading `/` would be `"session:create"`, not `"session"`. ### Code Location `src/cleveragents/tui/commands.py` — `TuiCommandRouter.handle()` method ### Steps to Reproduce 1. Launch TUI 2. Type `/plan:list` and press Enter 3. Observe: "Unknown command: /plan:list" 4. Type `/scope:show` and press Enter 5. Observe: "Unknown command: /scope:show" ### Impact The entire slash command system is non-functional for 67 of 70 commands. Users cannot manage plans, projects, actors, resources, or configuration from the TUI. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.7.0 milestone 2026-04-08 20:14:19 +00:00
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.

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