UAT: TUI ctrl+tab key binding uses wrong key — spec requires ctrl+tab but code binds ctrl+t #4045

Open
opened 2026-04-06 09:20:00 +00:00 by freemo · 0 comments
Owner

Metadata

Backlog note: This issue was discovered during autonomous operation
on milestone v3.6.0. It does not block milestone completion and has been
placed in the backlog for human review and future milestone assignment.

Bug Report

What Was Tested

Code-level analysis of src/cleveragents/tui/app.py — specifically the BINDINGS class variable of _TextualCleverAgentsTuiApp.

Expected Behavior (from spec)

The specification (TUI Key Bindings table, line ~30276) states:

| ctrl+tab | Cycle to next argument preset |

The spec also shows in the footer bar mockup:

ctrl+tab Preset

Actual Behavior

The BINDINGS class variable in _TextualCleverAgentsTuiApp (line 92–96 of src/cleveragents/tui/app.py) defines:

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

The binding uses ctrl+t instead of ctrl+tab. This means pressing ctrl+tab in the TUI will NOT cycle argument presets as the spec requires. Instead, ctrl+t is bound — a key that is not documented in the spec for this action.

Steps to Reproduce

  1. Launch the TUI: agents tui
  2. Press ctrl+tab — nothing happens (or default Textual behavior)
  3. Press ctrl+t — preset cycles (wrong key)

Code Location

src/cleveragents/tui/app.py, line 95:

("ctrl+t", "cycle_preset", "Cycle Preset"),

Should be:

("ctrl+tab", "cycle_preset", "Cycle Preset"),

Subtasks

  • Change "ctrl+t" to "ctrl+tab" in the BINDINGS list in _TextualCleverAgentsTuiApp
  • Update the corresponding BDD scenario in features/tui_app_coverage.feature that asserts 3 key bindings (verify the binding key names)
  • Verify the fix with nox -e unit_tests

Definition of Done

  • BINDINGS uses "ctrl+tab" for the cycle_preset action
  • All unit tests pass (nox -e unit_tests)
  • Coverage >= 97% (nox -e coverage_report)
  • All nox stages pass
  • The TUI footer bar shows ctrl+tab Preset as documented in the spec
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done

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

## Metadata - **Branch**: `fix/tui-ctrl-tab-binding-wrong-key` - **Commit Message**: `fix(tui): correct ctrl+tab key binding for argument preset cycling` - **Milestone**: *(none — backlog)* - **Parent Epic**: #868 > **Backlog note:** This issue was discovered during autonomous operation > on milestone v3.6.0. It does not block milestone completion and has been > placed in the backlog for human review and future milestone assignment. ## Bug Report ### What Was Tested Code-level analysis of `src/cleveragents/tui/app.py` — specifically the `BINDINGS` class variable of `_TextualCleverAgentsTuiApp`. ### Expected Behavior (from spec) The specification (TUI Key Bindings table, line ~30276) states: > | `ctrl+tab` | Cycle to next argument preset | The spec also shows in the footer bar mockup: > `ctrl+tab` Preset ### Actual Behavior The `BINDINGS` class variable in `_TextualCleverAgentsTuiApp` (line 92–96 of `src/cleveragents/tui/app.py`) defines: ```python BINDINGS: ClassVar[list[tuple[str, str, str]]] = [ ("ctrl+q", "quit", "Quit"), ("f1", "help", "Help"), ("ctrl+t", "cycle_preset", "Cycle Preset"), # ← WRONG: should be "ctrl+tab" ] ``` The binding uses `ctrl+t` instead of `ctrl+tab`. This means pressing `ctrl+tab` in the TUI will NOT cycle argument presets as the spec requires. Instead, `ctrl+t` is bound — a key that is not documented in the spec for this action. ### Steps to Reproduce 1. Launch the TUI: `agents tui` 2. Press `ctrl+tab` — nothing happens (or default Textual behavior) 3. Press `ctrl+t` — preset cycles (wrong key) ### Code Location `src/cleveragents/tui/app.py`, line 95: ```python ("ctrl+t", "cycle_preset", "Cycle Preset"), ``` Should be: ```python ("ctrl+tab", "cycle_preset", "Cycle Preset"), ``` ## Subtasks - [ ] Change `"ctrl+t"` to `"ctrl+tab"` in the `BINDINGS` list in `_TextualCleverAgentsTuiApp` - [ ] Update the corresponding BDD scenario in `features/tui_app_coverage.feature` that asserts 3 key bindings (verify the binding key names) - [ ] Verify the fix with `nox -e unit_tests` ## Definition of Done - `BINDINGS` uses `"ctrl+tab"` for the `cycle_preset` action - All unit tests pass (`nox -e unit_tests`) - Coverage >= 97% (`nox -e coverage_report`) - All nox stages pass - The TUI footer bar shows `ctrl+tab Preset` as documented in the spec - A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly - The commit is pushed to the remote on the branch matching the Branch in Metadata exactly - The commit is submitted as a pull request to `master`, reviewed, and merged before this issue is marked done --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-new-issue-creator
freemo added a new dependency 2026-04-06 09:20:19 +00:00
freemo added the
Points
3
label 2026-04-06 09:21:54 +00:00
HAL9000 added the
Priority
Medium
State
Unverified
Type
Bug
labels 2026-04-09 02:03:15 +00:00
HAL9000 added
State
Verified
MoSCoW
Must have
and removed
State
Unverified
labels 2026-04-09 03:11:43 +00:00
HAL9000 added this to the v3.5.0 milestone 2026-04-09 03:11:44 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Blocks
Reference: cleveragents/cleveragents-core#4045