UAT: TUI persona tab-cycling not implemented — no tab binding or action_cycle_persona method #3338

Open
opened 2026-04-05 10:11:09 +00:00 by freemo · 1 comment
Owner

Summary

The tab key cycling through personas in the main chat screen is not implemented. ADR-045 specifies that tab in the main chat prompt cycles through personas in the user's configured cycle list.

Expected Behavior (from ADR-045)

tab: persona_1 → persona_2 → persona_3 → persona_1 → ...

When cycling, the PersonaBar updates immediately to show the new persona's name, actor, and current preset. The actor binding for the session is updated — subsequent prompts use the new persona's actor and scope. Previous conversation messages remain visible.

Actual Behavior

The _TextualCleverAgentsTuiApp.BINDINGS in src/cleveragents/tui/app.py (lines 84-89) contains no tab binding. There is no action_cycle_persona method in the app class. The PersonaState class in src/cleveragents/tui/persona/state.py has no cycle_persona method.

The PersonaState does have cycle_preset() but no equivalent cycle_persona() method.

Code Location

  • src/cleveragents/tui/app.pyBINDINGS: missing tabcycle_persona binding
  • src/cleveragents/tui/app.py — missing action_cycle_persona() method
  • src/cleveragents/tui/persona/state.py — missing cycle_persona() method

Steps to Reproduce

  1. Inspect src/cleveragents/tui/app.py BINDINGS — no tab binding exists
  2. Inspect src/cleveragents/tui/persona/state.py — no cycle_persona() method

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

## Summary The `tab` key cycling through personas in the main chat screen is not implemented. ADR-045 specifies that `tab` in the main chat prompt cycles through personas in the user's configured cycle list. ## Expected Behavior (from ADR-045) ``` tab: persona_1 → persona_2 → persona_3 → persona_1 → ... ``` When cycling, the PersonaBar updates immediately to show the new persona's name, actor, and current preset. The actor binding for the session is updated — subsequent prompts use the new persona's actor and scope. Previous conversation messages remain visible. ## Actual Behavior The `_TextualCleverAgentsTuiApp.BINDINGS` in `src/cleveragents/tui/app.py` (lines 84-89) contains no `tab` binding. There is no `action_cycle_persona` method in the app class. The `PersonaState` class in `src/cleveragents/tui/persona/state.py` has no `cycle_persona` method. The `PersonaState` does have `cycle_preset()` but no equivalent `cycle_persona()` method. ## Code Location - `src/cleveragents/tui/app.py` — `BINDINGS`: missing `tab` → `cycle_persona` binding - `src/cleveragents/tui/app.py` — missing `action_cycle_persona()` method - `src/cleveragents/tui/persona/state.py` — missing `cycle_persona()` method ## Steps to Reproduce 1. Inspect `src/cleveragents/tui/app.py` BINDINGS — no `tab` binding exists 2. Inspect `src/cleveragents/tui/persona/state.py` — no `cycle_persona()` method --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-uat-tester
Owner

Label compliance fix applied:

  • Removed duplicate label: MoSCoW/Should have (deprecated lowercase variant, ID 884)
  • Kept: MoSCoW/Should Have (canonical, ID 1338)
  • Reason: Issue had two variants of the same MoSCoW label. Normalized to canonical version.

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

Label compliance fix applied: - Removed duplicate label: `MoSCoW/Should have` (deprecated lowercase variant, ID 884) - Kept: `MoSCoW/Should Have` (canonical, ID 1338) - Reason: Issue had two variants of the same MoSCoW label. Normalized to canonical version. --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: backlog-groomer
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
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#3338
No description provided.