UAT: SettingsScreen missing — f2 and ctrl+, bindings not registered in TUI app #10325

Open
opened 2026-04-18 08:46:04 +00:00 by HAL9000 · 0 comments
Owner

Metadata

  • Branch: fix/tui-settings-screen-missing
  • Commit Message: feat(tui): implement SettingsScreen and register f2/ctrl+, key bindings
  • Milestone: v3.7.0
  • Parent Epic: #868

Bug Report

What Was Tested

Source code inspection of src/cleveragents/tui/app.py and the entire src/cleveragents/tui/ directory tree.

Expected Behavior (from spec)

Per the specification (§TUI > Screens), a SettingsScreen must exist as a proper Textual Screen subclass and must be pushed onto the screen stack when the user presses f2 or ctrl+,. The app's BINDINGS list must include entries for both f2 and ctrl+, mapped to an action that pushes SettingsScreen.

Actual Behavior

  • No SettingsScreen class exists anywhere in src/cleveragents/tui/.
  • The BINDINGS list in _TextualCleverAgentsTuiApp only contains ctrl+q, f1, and ctrl+t. Neither f2 nor ctrl+, is registered.
  • There is no screens/ directory under src/cleveragents/tui/.

Steps to Reproduce

  1. Inspect src/cleveragents/tui/app.pyBINDINGS does not include f2 or ctrl+,.
  2. Search the entire src/cleveragents/tui/ tree for any file defining SettingsScreen — none found.
  3. Launch the TUI and press f2 or ctrl+, — no settings screen appears.

Impact

Users cannot access the settings screen via the documented keyboard shortcuts. The settings configuration panel is entirely inaccessible from the TUI.

Subtasks

  • Create src/cleveragents/tui/screens/settings.py with a SettingsScreen class that subclasses textual.app.Screen
  • Register f2push_screen(SettingsScreen) in _TextualCleverAgentsTuiApp.BINDINGS
  • Register ctrl+,push_screen(SettingsScreen) in _TextualCleverAgentsTuiApp.BINDINGS
  • Add action method action_settings() to the app class
  • Tests (Behave): Add TDD scenario tagged @tdd_issue, @tdd_expected_fail asserting f2 pushes SettingsScreen
  • Tests (Behave): Add TDD scenario tagged @tdd_issue, @tdd_expected_fail asserting ctrl+, pushes SettingsScreen
  • Remove @tdd_expected_fail once implemented and verify scenarios pass
  • Verify coverage >= 97% via nox -s coverage_report
  • Run nox (all default sessions), fix any errors

Definition of Done

  • SettingsScreen exists as a proper textual.app.Screen subclass
  • Pressing f2 in the TUI pushes SettingsScreen
  • Pressing ctrl+, in the TUI pushes SettingsScreen
  • Both TDD scenarios pass without @tdd_expected_fail
  • All nox stages pass
  • Coverage >= 97%
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation.
  • 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 Test Pool | Agent: uat-test-pool-supervisor


Automated by CleverAgents Bot
Agent: new-issue-creator

## Metadata - **Branch**: `fix/tui-settings-screen-missing` - **Commit Message**: `feat(tui): implement SettingsScreen and register f2/ctrl+, key bindings` - **Milestone**: v3.7.0 - **Parent Epic**: #868 ## Bug Report ### What Was Tested Source code inspection of `src/cleveragents/tui/app.py` and the entire `src/cleveragents/tui/` directory tree. ### Expected Behavior (from spec) Per the specification (§TUI > Screens), a `SettingsScreen` must exist as a proper Textual `Screen` subclass and must be pushed onto the screen stack when the user presses `f2` or `ctrl+,`. The app's `BINDINGS` list must include entries for both `f2` and `ctrl+,` mapped to an action that pushes `SettingsScreen`. ### Actual Behavior - No `SettingsScreen` class exists anywhere in `src/cleveragents/tui/`. - The `BINDINGS` list in `_TextualCleverAgentsTuiApp` only contains `ctrl+q`, `f1`, and `ctrl+t`. Neither `f2` nor `ctrl+,` is registered. - There is no `screens/` directory under `src/cleveragents/tui/`. ### Steps to Reproduce 1. Inspect `src/cleveragents/tui/app.py` — `BINDINGS` does not include `f2` or `ctrl+,`. 2. Search the entire `src/cleveragents/tui/` tree for any file defining `SettingsScreen` — none found. 3. Launch the TUI and press `f2` or `ctrl+,` — no settings screen appears. ### Impact Users cannot access the settings screen via the documented keyboard shortcuts. The settings configuration panel is entirely inaccessible from the TUI. ## Subtasks - [ ] Create `src/cleveragents/tui/screens/settings.py` with a `SettingsScreen` class that subclasses `textual.app.Screen` - [ ] Register `f2` → `push_screen(SettingsScreen)` in `_TextualCleverAgentsTuiApp.BINDINGS` - [ ] Register `ctrl+,` → `push_screen(SettingsScreen)` in `_TextualCleverAgentsTuiApp.BINDINGS` - [ ] Add action method `action_settings()` to the app class - [ ] Tests (Behave): Add TDD scenario tagged `@tdd_issue`, `@tdd_expected_fail` asserting `f2` pushes `SettingsScreen` - [ ] Tests (Behave): Add TDD scenario tagged `@tdd_issue`, `@tdd_expected_fail` asserting `ctrl+,` pushes `SettingsScreen` - [ ] Remove `@tdd_expected_fail` once implemented and verify scenarios pass - [ ] Verify coverage >= 97% via `nox -s coverage_report` - [ ] Run `nox` (all default sessions), fix any errors ## Definition of Done - [ ] `SettingsScreen` exists as a proper `textual.app.Screen` subclass - [ ] Pressing `f2` in the TUI pushes `SettingsScreen` - [ ] Pressing `ctrl+,` in the TUI pushes `SettingsScreen` - [ ] Both TDD scenarios pass without `@tdd_expected_fail` - [ ] All nox stages pass - [ ] Coverage >= 97% - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation. - 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 Test Pool | Agent: uat-test-pool-supervisor --- **Automated by CleverAgents Bot** Agent: new-issue-creator
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#10325
No description provided.