UAT: TUI persona cycling uses wrong keyboard binding — spec requires tab for persona cycle and ctrl+tab for preset cycle, but implementation uses ctrl+t for preset only #6425

Closed
opened 2026-04-09 21:02:25 +00:00 by HAL9000 · 0 comments
Owner

Bug Report

Spec Reference

Specification lines 29260–29269 (Persona Cycling), line 29077 (Footer keyboard reference)

Expected Behavior (from spec)

From spec lines 29260–29269:

tab:       persona_1 → persona_2 → persona_3 → persona_1 → ...
ctrl+tab:  default → think: high → think: max → quick → default → ...
  • tab cycles through personas in the configured cycle list
  • ctrl+tab cycles through the current persona's argument presets

The footer mockup (spec line 29077) confirms:

F1 Help │ shift+tab Sidebar │ tab Persona │ ctrl+tab Preset │ ctrl+s Sessions │ ctrl+q Quit

Actual Behavior (from code analysis)

src/cleveragents/tui/app.py BINDINGS (lines 92–96):

BINDINGS: ClassVar[list[tuple[str, str, str]]] = [
    ("ctrl+q", "quit", "Quit"),
    ("f1", "help", "Help"),
    ("ctrl+t", "cycle_preset", "Cycle Preset"),
]

Two problems:

  1. tab for persona cycling is NOT bound — no persona cycling via tab key
  2. ctrl+tab for preset cycling is NOT bound — instead ctrl+t is used, which differs from the spec

The action_cycle_preset() method (lines 151–153) exists and works correctly, but it's bound to ctrl+t instead of ctrl+tab.

There is no action_cycle_persona() method at all.

Code Location

  • src/cleveragents/tui/app.py — lines 92–96 (BINDINGS), lines 151–153 (action_cycle_preset)

Steps to Reproduce (Code Analysis)

  1. Read src/cleveragents/tui/app.py lines 92–96
  2. Observe: ctrl+t bound to cycle_preset, not ctrl+tab
  3. Observe: no tab binding for persona cycling
  4. Compare with spec lines 29260–29269 and footer mockup line 29077

Severity

High — keyboard bindings are the primary interaction model for the TUI. Using ctrl+t instead of ctrl+tab breaks the spec-defined UX, and missing tab persona cycling makes persona switching inaccessible.


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

## Bug Report ### Spec Reference Specification lines 29260–29269 (Persona Cycling), line 29077 (Footer keyboard reference) ### Expected Behavior (from spec) From spec lines 29260–29269: ``` tab: persona_1 → persona_2 → persona_3 → persona_1 → ... ctrl+tab: default → think: high → think: max → quick → default → ... ``` - **`tab`** cycles through personas in the configured cycle list - **`ctrl+tab`** cycles through the current persona's argument presets The footer mockup (spec line 29077) confirms: ``` F1 Help │ shift+tab Sidebar │ tab Persona │ ctrl+tab Preset │ ctrl+s Sessions │ ctrl+q Quit ``` ### Actual Behavior (from code analysis) `src/cleveragents/tui/app.py` BINDINGS (lines 92–96): ```python BINDINGS: ClassVar[list[tuple[str, str, str]]] = [ ("ctrl+q", "quit", "Quit"), ("f1", "help", "Help"), ("ctrl+t", "cycle_preset", "Cycle Preset"), ] ``` Two problems: 1. **`tab` for persona cycling is NOT bound** — no persona cycling via `tab` key 2. **`ctrl+tab` for preset cycling is NOT bound** — instead `ctrl+t` is used, which differs from the spec The `action_cycle_preset()` method (lines 151–153) exists and works correctly, but it's bound to `ctrl+t` instead of `ctrl+tab`. There is no `action_cycle_persona()` method at all. ### Code Location - `src/cleveragents/tui/app.py` — lines 92–96 (BINDINGS), lines 151–153 (action_cycle_preset) ### Steps to Reproduce (Code Analysis) 1. Read `src/cleveragents/tui/app.py` lines 92–96 2. Observe: `ctrl+t` bound to `cycle_preset`, not `ctrl+tab` 3. Observe: no `tab` binding for persona cycling 4. Compare with spec lines 29260–29269 and footer mockup line 29077 ### Severity High — keyboard bindings are the primary interaction model for the TUI. Using `ctrl+t` instead of `ctrl+tab` breaks the spec-defined UX, and missing `tab` persona cycling makes persona switching inaccessible. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.2.0 milestone 2026-04-09 21:08:47 +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#6425
No description provided.