UAT: TUI tab key does not cycle personas — spec requires tab for persona cycling, ctrl+tab for preset cycling #5031

Closed
opened 2026-04-09 00:49:39 +00:00 by HAL9000 · 1 comment
Owner

Bug Report

Feature Area: TUI — Persona System / Hotkeys

Severity: High (core persona interaction broken)

What Was Tested

The persona cycling hotkeys as defined in the specification (§ Persona Cycling, §Hotkey Reference — MainScreen Prompt Focused).

Expected Behavior (from spec)

From the spec's hotkey reference:

  • tab — Cycle to next persona (in the configured cycle list)
  • ctrl+tab — Cycle to next argument preset

From the spec's persona cycling section:

tab:       persona_1 → persona_2 → persona_3 → persona_1 → ...
ctrl+tab:  default → think: high → think: max → quick → default → ...

When cycling, the PersonaBar updates immediately. The actor binding for the session is updated.

Actual Behavior (from code analysis)

In src/cleveragents/tui/app.py, the BINDINGS are:

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

Issues:

  1. tab is not bound to persona cycling — pressing tab in the TUI will use Textual's default focus cycling behavior, not persona cycling
  2. Preset cycling uses ctrl+t instead of ctrl+tab — the spec requires ctrl+tab but the implementation uses ctrl+t
  3. No action_cycle_persona() method exists — only action_cycle_preset() is implemented (line 151)

The PersonaState.cycle_preset() method exists and works correctly, but the persona cycling (tab) is entirely absent.

Steps to Reproduce

  1. Configure multiple personas in ~/.config/cleveragents/personas/
  2. Run agents tui
  3. Press tab — focus cycles through Textual widgets instead of cycling personas
  4. Press ctrl+tab — nothing happens (binding is ctrl+t not ctrl+tab)
  5. Press ctrl+t — preset cycles (but this is the wrong hotkey per spec)

Code Location

  • src/cleveragents/tui/app.py lines 92-96 (BINDINGS — missing tab binding)
  • src/cleveragents/tui/app.py line 151 (action_cycle_preset — exists but wrong hotkey)
  • No action_cycle_persona() method exists

Impact

Users cannot cycle through personas using the spec-defined tab key. The PersonaBar shows the active persona but there is no keyboard shortcut to switch between them as the spec requires.


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

## Bug Report **Feature Area:** TUI — Persona System / Hotkeys **Severity:** High (core persona interaction broken) ### What Was Tested The persona cycling hotkeys as defined in the specification (§ Persona Cycling, §Hotkey Reference — MainScreen Prompt Focused). ### Expected Behavior (from spec) From the spec's hotkey reference: - `tab` — Cycle to next persona (in the configured cycle list) - `ctrl+tab` — Cycle to next argument preset From the spec's persona cycling section: ``` tab: persona_1 → persona_2 → persona_3 → persona_1 → ... ctrl+tab: default → think: high → think: max → quick → default → ... ``` When cycling, the PersonaBar updates immediately. The actor binding for the session is updated. ### Actual Behavior (from code analysis) In `src/cleveragents/tui/app.py`, the `BINDINGS` are: ```python BINDINGS: ClassVar[list[tuple[str, str, str]]] = [ ("ctrl+q", "quit", "Quit"), ("f1", "help", "Help"), ("ctrl+t", "cycle_preset", "Cycle Preset"), # ← uses ctrl+t, not ctrl+tab ] ``` Issues: 1. **`tab` is not bound to persona cycling** — pressing `tab` in the TUI will use Textual's default focus cycling behavior, not persona cycling 2. **Preset cycling uses `ctrl+t` instead of `ctrl+tab`** — the spec requires `ctrl+tab` but the implementation uses `ctrl+t` 3. **No `action_cycle_persona()` method exists** — only `action_cycle_preset()` is implemented (line 151) The `PersonaState.cycle_preset()` method exists and works correctly, but the persona cycling (`tab`) is entirely absent. ### Steps to Reproduce 1. Configure multiple personas in `~/.config/cleveragents/personas/` 2. Run `agents tui` 3. Press `tab` — focus cycles through Textual widgets instead of cycling personas 4. Press `ctrl+tab` — nothing happens (binding is `ctrl+t` not `ctrl+tab`) 5. Press `ctrl+t` — preset cycles (but this is the wrong hotkey per spec) ### Code Location - `src/cleveragents/tui/app.py` lines 92-96 (BINDINGS — missing `tab` binding) - `src/cleveragents/tui/app.py` line 151 (`action_cycle_preset` — exists but wrong hotkey) - No `action_cycle_persona()` method exists ### Impact Users cannot cycle through personas using the spec-defined `tab` key. The PersonaBar shows the active persona but there is no keyboard shortcut to switch between them as the spec requires. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
Author
Owner

Closing as duplicate of #4713 — both issues report the same problem: TUI tab key persona cycling not implemented.


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

Closing as duplicate of #4713 — both issues report the same problem: TUI `tab` key persona cycling not implemented. --- **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#5031
No description provided.