UAT: TUI Command Palette (Ctrl+P) not implemented — spec requires searchable command palette accessible via hotkey #2982

Open
opened 2026-04-05 03:06:08 +00:00 by freemo · 3 comments
Owner

Metadata

  • Branch: feat/tui-command-palette
  • Commit Message: feat(tui): implement Command Palette overlay accessible via Ctrl+P
  • Milestone: v3.7.0
  • Parent Epic: #868

Description

The spec defines a Command Palette accessible via a hotkey (e.g., Ctrl+P) that provides a searchable list of all available commands in the TUI, from navigating to different screens to creating new projects or plans.

Current behavior: The TUI app (src/cleveragents/tui/app.py) only defines three key bindings: ctrl+q (Quit), f1 (Help), and ctrl+t (Cycle Preset). There is no Ctrl+P binding and no Command Palette implementation. The existing SlashCommandOverlay widget is only activated by typing / in the prompt input, not via a global hotkey, and it only shows slash commands — not all TUI commands (navigation, screen switching, etc.).

Expected behavior per spec: A Command Palette overlay should be accessible via Ctrl+P (or similar global hotkey) that provides a searchable list of ALL available TUI commands, including navigation commands, project/plan creation, and screen switching.

Code locations:

  • src/cleveragents/tui/app.py lines 92–96: BINDINGS only has ctrl+q, f1, ctrl+t — no ctrl+p binding
  • src/cleveragents/tui/widgets/slash_command_overlay.py: Only shows slash commands, not a full command palette
  • No command_palette.py or similar file exists in src/cleveragents/tui/widgets/

Steps to reproduce:

  1. Launch the TUI: agents tui
  2. Press Ctrl+P
  3. Nothing happens — no Command Palette appears

Subtasks

  • Create src/cleveragents/tui/widgets/command_palette.py with CommandPaletteOverlay class
  • Implement fuzzy search over all available TUI commands
  • Include navigation commands (go to Sessions Screen, Settings Screen, etc.)
  • Include action commands (create project, create plan, etc.)
  • Add ctrl+p key binding to CleverAgentsTuiApp.BINDINGS
  • Implement action_command_palette() method in the app
  • Write BDD scenarios in features/tui_command_palette.feature

Definition of Done

  • CommandPaletteOverlay class exists and is accessible via Ctrl+P
  • Fuzzy search works across all available TUI commands
  • Selecting a command executes it
  • BDD scenarios cover all palette functionality
  • nox -e typecheck passes
  • nox -e unit_tests passes
  • All nox stages pass
  • Coverage >= 97%

This issue was filed by the UAT Testing agent (ca-uat-tester) as part of automated acceptance testing.


Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: ca-new-issue-creator

## Metadata - **Branch**: `feat/tui-command-palette` - **Commit Message**: `feat(tui): implement Command Palette overlay accessible via Ctrl+P` - **Milestone**: v3.7.0 - **Parent Epic**: #868 ## Description The spec defines a Command Palette accessible via a hotkey (e.g., `Ctrl+P`) that provides a searchable list of all available commands in the TUI, from navigating to different screens to creating new projects or plans. **Current behavior:** The TUI app (`src/cleveragents/tui/app.py`) only defines three key bindings: `ctrl+q` (Quit), `f1` (Help), and `ctrl+t` (Cycle Preset). There is no `Ctrl+P` binding and no Command Palette implementation. The existing `SlashCommandOverlay` widget is only activated by typing `/` in the prompt input, not via a global hotkey, and it only shows slash commands — not all TUI commands (navigation, screen switching, etc.). **Expected behavior per spec:** A Command Palette overlay should be accessible via `Ctrl+P` (or similar global hotkey) that provides a searchable list of ALL available TUI commands, including navigation commands, project/plan creation, and screen switching. **Code locations:** - `src/cleveragents/tui/app.py` lines 92–96: `BINDINGS` only has `ctrl+q`, `f1`, `ctrl+t` — no `ctrl+p` binding - `src/cleveragents/tui/widgets/slash_command_overlay.py`: Only shows slash commands, not a full command palette - No `command_palette.py` or similar file exists in `src/cleveragents/tui/widgets/` **Steps to reproduce:** 1. Launch the TUI: `agents tui` 2. Press `Ctrl+P` 3. Nothing happens — no Command Palette appears ## Subtasks - [ ] Create `src/cleveragents/tui/widgets/command_palette.py` with `CommandPaletteOverlay` class - [ ] Implement fuzzy search over all available TUI commands - [ ] Include navigation commands (go to Sessions Screen, Settings Screen, etc.) - [ ] Include action commands (create project, create plan, etc.) - [ ] Add `ctrl+p` key binding to `CleverAgentsTuiApp.BINDINGS` - [ ] Implement `action_command_palette()` method in the app - [ ] Write BDD scenarios in `features/tui_command_palette.feature` ## Definition of Done - [ ] `CommandPaletteOverlay` class exists and is accessible via `Ctrl+P` - [ ] Fuzzy search works across all available TUI commands - [ ] Selecting a command executes it - [ ] BDD scenarios cover all palette functionality - [ ] `nox -e typecheck` passes - [ ] `nox -e unit_tests` passes - [ ] All nox stages pass - [ ] Coverage >= 97% --- This issue was filed by the UAT Testing agent (ca-uat-tester) as part of automated acceptance testing. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-new-issue-creator
freemo added this to the v3.7.0 milestone 2026-04-05 03:11:00 +00:00
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: Confirmed
  • MoSCoW: Should Have

Valid finding verified during batch triage.


Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: ca-project-owner

Issue triaged by project owner: - **State**: Verified - **Priority**: Confirmed - **MoSCoW**: Should Have Valid finding verified during batch triage. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
Author
Owner

Plan to transition issue #2982 to State/In Progress:

Current labels observed: State/Verified, MoSCoW/Should have, Priority/High, Type/Bug.

Preconditions:

  • Not transitioning from Paused (no Blocked label present).
  • No Blocked label currently present on this issue.

Actions to perform (once label-editing is available):

  • Remove all existing State/* labels (currently: State/Verified).
  • Add new label: State/In Progress.
  • If a Blocked label is present and transitioning to In Progress, remove Blocked and ensure blocker is resolved before proceeding (not applicable here).

Expected result:

  • Labels removed: State/Verified
  • Labels added: State/In Progress
  • Precondition checks: Passed (no Paused/Blocked issues encountered)

Note: I am currently unable to perform direct label edits via the available Forgejo tools in this environment. Please confirm if you want me to proceed by issuing a direct REST API call with the provided PAT, or grant an updated tool that supports label edits. I will then execute the changes and post a confirmation message.


Automated by CleverAgents Bot
Supervisor: Implementation | Agent: ca-issue-state-updater

Plan to transition issue #2982 to State/In Progress: Current labels observed: State/Verified, MoSCoW/Should have, Priority/High, Type/Bug. Preconditions: - Not transitioning from Paused (no Blocked label present). - No Blocked label currently present on this issue. Actions to perform (once label-editing is available): - Remove all existing State/* labels (currently: State/Verified). - Add new label: State/In Progress. - If a Blocked label is present and transitioning to In Progress, remove Blocked and ensure blocker is resolved before proceeding (not applicable here). Expected result: - Labels removed: State/Verified - Labels added: State/In Progress - Precondition checks: Passed (no Paused/Blocked issues encountered) Note: I am currently unable to perform direct label edits via the available Forgejo tools in this environment. Please confirm if you want me to proceed by issuing a direct REST API call with the provided PAT, or grant an updated tool that supports label edits. I will then execute the changes and post a confirmation message. --- **Automated by CleverAgents Bot** Supervisor: Implementation | Agent: ca-issue-state-updater
Author
Owner

Starting implementation on branch feat/tui-command-palette.

Wave plan:

  • Wave 1 (parallel): Create CommandPaletteOverlay widget + BDD feature file
  • Wave 2 (parallel): Wire ctrl+p binding + action_command_palette() into app + write step definitions

All subtasks will be implemented with TDD (BDD scenarios first), followed by nox quality gates.


Automated by CleverAgents Bot
Supervisor: Implementation | Agent: ca-issue-worker

Starting implementation on branch `feat/tui-command-palette`. **Wave plan:** - Wave 1 (parallel): Create `CommandPaletteOverlay` widget + BDD feature file - Wave 2 (parallel): Wire `ctrl+p` binding + `action_command_palette()` into app + write step definitions All subtasks will be implemented with TDD (BDD scenarios first), followed by nox quality gates. --- **Automated by CleverAgents Bot** Supervisor: Implementation | Agent: ca-issue-worker
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.

Blocks
Reference
cleveragents/cleveragents-core#2982
No description provided.