UAT: Block cursor navigation (alt+up/alt+down) not implemented in TUI #10371

Open
opened 2026-04-18 09:14:53 +00:00 by HAL9000 · 0 comments
Owner

Metadata

  • Commit Message: feat(tui): implement block cursor navigation with alt+up/alt+down key bindings
  • Branch: feat/tui-block-cursor-navigation

Background and Context

During UAT testing of the TuiMaterializer A2A Integration feature area, it was discovered that block cursor navigation using alt+up and alt+down key bindings is not implemented in the TUI. The spec requires that users can navigate between blocks in the conversation stream using these key bindings.

Evidence of the missing implementation:

  • No alt+up or alt+down key bindings exist in CleverAgentsTuiApp.BINDINGS
  • No ContentsGrid widget exists (which would be the container implementing block navigation)
  • No block cursor concept exists anywhere in the TUI codebase
  • The current CleverAgentsTuiApp.BINDINGS only contains: ctrl+q (quit), f1 (help), ctrl+t (cycle preset)

Expected Behavior (from spec)

Per the TuiMaterializer A2A Integration specification:

  • alt+up key binding must navigate to the previous block in the conversation stream
  • alt+down key binding must navigate to the next block in the conversation stream
  • Block cursor navigation must work across all typed block widgets (ThoughtBlockWidget, ToolCallWidget, ToolResultWidget, TextBlockWidget, ErrorBlockWidget, PermissionQuestionWidget)
  • The currently focused block must be visually highlighted

Actual Behavior

  • No alt+up or alt+down key bindings are registered in the TUI app
  • No block cursor navigation exists
  • Users cannot navigate between blocks using keyboard shortcuts

Steps to Reproduce

  1. Launch the TUI application
  2. Press alt+up or alt+down
  3. Observe: no block navigation occurs (key press is ignored)

Acceptance Criteria

  • alt+up key binding navigates to the previous block in the conversation stream
  • alt+down key binding navigates to the next block in the conversation stream
  • Block cursor navigation works across all typed block widget types
  • The currently focused block is visually highlighted
  • Key bindings are registered in CleverAgentsTuiApp.BINDINGS
  • New Behave BDD scenarios cover block cursor navigation behavior
  • Coverage remains >= 97%

Subtasks

  • Add alt+up and alt+down to CleverAgentsTuiApp.BINDINGS
  • Implement action_block_cursor_up() and action_block_cursor_down() methods
  • Implement block cursor tracking in ContentsGrid (or equivalent container)
  • Add visual focus indicator for the currently selected block
  • Add Behave BDD scenarios for block cursor navigation
  • Verify coverage >= 97% via nox -s coverage_report
  • Run nox (all default sessions), fix any errors

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • 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

## Metadata - **Commit Message**: `feat(tui): implement block cursor navigation with alt+up/alt+down key bindings` - **Branch**: `feat/tui-block-cursor-navigation` ## Background and Context During UAT testing of the TuiMaterializer A2A Integration feature area, it was discovered that block cursor navigation using `alt+up` and `alt+down` key bindings is not implemented in the TUI. The spec requires that users can navigate between blocks in the conversation stream using these key bindings. Evidence of the missing implementation: - No `alt+up` or `alt+down` key bindings exist in `CleverAgentsTuiApp.BINDINGS` - No `ContentsGrid` widget exists (which would be the container implementing block navigation) - No block cursor concept exists anywhere in the TUI codebase - The current `CleverAgentsTuiApp.BINDINGS` only contains: `ctrl+q` (quit), `f1` (help), `ctrl+t` (cycle preset) ## Expected Behavior (from spec) Per the TuiMaterializer A2A Integration specification: - `alt+up` key binding must navigate to the previous block in the conversation stream - `alt+down` key binding must navigate to the next block in the conversation stream - Block cursor navigation must work across all typed block widgets (ThoughtBlockWidget, ToolCallWidget, ToolResultWidget, TextBlockWidget, ErrorBlockWidget, PermissionQuestionWidget) - The currently focused block must be visually highlighted ## Actual Behavior - No `alt+up` or `alt+down` key bindings are registered in the TUI app - No block cursor navigation exists - Users cannot navigate between blocks using keyboard shortcuts ## Steps to Reproduce 1. Launch the TUI application 2. Press `alt+up` or `alt+down` 3. Observe: no block navigation occurs (key press is ignored) ## Acceptance Criteria - [ ] `alt+up` key binding navigates to the previous block in the conversation stream - [ ] `alt+down` key binding navigates to the next block in the conversation stream - [ ] Block cursor navigation works across all typed block widget types - [ ] The currently focused block is visually highlighted - [ ] Key bindings are registered in `CleverAgentsTuiApp.BINDINGS` - [ ] New Behave BDD scenarios cover block cursor navigation behavior - [ ] Coverage remains >= 97% ## Subtasks - [ ] Add `alt+up` and `alt+down` to `CleverAgentsTuiApp.BINDINGS` - [ ] Implement `action_block_cursor_up()` and `action_block_cursor_down()` methods - [ ] Implement block cursor tracking in `ContentsGrid` (or equivalent container) - [ ] Add visual focus indicator for the currently selected block - [ ] Add Behave BDD scenarios for block cursor navigation - [ ] Verify coverage >= 97% via `nox -s coverage_report` - [ ] Run `nox` (all default sessions), fix any errors ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - 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
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#10371
No description provided.