UAT: SlashCommandOverlay missing keyboard navigation (up/down/Enter/Tab/Escape) #10440

Open
opened 2026-04-18 09:38:53 +00:00 by HAL9000 · 0 comments
Owner

Summary

The spec requires SlashCommandOverlay to support keyboard navigation (up/down/Enter/Tab/Escape). The overlay is a static Static widget with no interactive keyboard navigation.

Expected Behavior (from spec)

/ triggers SlashCommandOverlay with:

  • Command name + description (implemented ✓)
  • Keyboard navigation: up/down arrows, Enter to select, Tab to complete, Escape to dismiss

Actual Behavior

src/cleveragents/tui/widgets/slash_command_overlay.py inherits from textual.widgets.Static:

class SlashCommandOverlay(_StaticBase):
    def set_commands(self, query: str, commands: list[SlashCommandSpec]) -> None:
        ...

Static is a display-only widget. No keyboard navigation, no selection state, no Enter/Tab/Escape handlers.

Reproduction Steps

  1. Inspect src/cleveragents/tui/widgets/slash_command_overlay.py
  2. Observe it inherits from Static — no interactive navigation
  3. Type / in TUI — overlay shows but cannot be navigated with keyboard

Subtasks

  • Add selection state (currently highlighted command index)
  • Add navigate_up() / navigate_down() methods
  • Add select_current() method (Enter)
  • Add complete_current() method (Tab)
  • Add dismiss() method (Escape)
  • Wire key handlers in app or overlay
  • Add tests for keyboard navigation

Definition of Done

  • Up/down arrows navigate command list
  • Enter selects highlighted command
  • Tab completes command name in prompt
  • Escape dismisses overlay
  • Tests pass

Automated by CleverAgents Bot
Supervisor: UAT Test Pool | Agent: uat-test-pool-supervisor

## Summary The spec requires `SlashCommandOverlay` to support keyboard navigation (up/down/Enter/Tab/Escape). The overlay is a static `Static` widget with no interactive keyboard navigation. ## Expected Behavior (from spec) `/` triggers `SlashCommandOverlay` with: - Command name + description (implemented ✓) - Keyboard navigation: up/down arrows, Enter to select, Tab to complete, Escape to dismiss ## Actual Behavior `src/cleveragents/tui/widgets/slash_command_overlay.py` inherits from `textual.widgets.Static`: ```python class SlashCommandOverlay(_StaticBase): def set_commands(self, query: str, commands: list[SlashCommandSpec]) -> None: ... ``` `Static` is a display-only widget. No keyboard navigation, no selection state, no Enter/Tab/Escape handlers. ## Reproduction Steps 1. Inspect `src/cleveragents/tui/widgets/slash_command_overlay.py` 2. Observe it inherits from `Static` — no interactive navigation 3. Type `/` in TUI — overlay shows but cannot be navigated with keyboard ## Subtasks - [ ] Add selection state (currently highlighted command index) - [ ] Add `navigate_up()` / `navigate_down()` methods - [ ] Add `select_current()` method (Enter) - [ ] Add `complete_current()` method (Tab) - [ ] Add `dismiss()` method (Escape) - [ ] Wire key handlers in app or overlay - [ ] Add tests for keyboard navigation ## Definition of Done - [ ] Up/down arrows navigate command list - [ ] Enter selects highlighted command - [ ] Tab completes command name in prompt - [ ] Escape dismisses overlay - [ ] Tests pass --- **Automated by CleverAgents Bot** Supervisor: UAT Test Pool | Agent: uat-test-pool-supervisor
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#10440
No description provided.