UAT: TUI sidebar implementation stranded in feature/m8-tui-mainscreen branch — CleverAgentsApp with MainScreen, Dracula theme, and 3-state sidebar not merged to master #5547

Open
opened 2026-04-09 07:22:00 +00:00 by HAL9000 · 0 comments
Owner

Bug Report

Feature Area: TUI — MainScreen Layout, Sidebar States, Dracula Theme, Block Cursor (v3.7.0)
Severity: Critical — complete sidebar/theme/block-cursor implementation exists but is not accessible on master
Discovered by: UAT Testing (uat-pool-1, worker: tui-sidebar-layout)


What Was Tested

Code analysis comparing master branch vs feature/m8-tui-mainscreen branch for all 5 v3.7.0 TUI sidebar features:

  1. MainScreen with 3 sidebar states (hidden/visible/fullscreen)
  2. Sidebar toggle keyboard shortcuts
  3. Sidebar content rendering (Plans/Projects panels)
  4. Dracula theme application
  5. Block cursor navigation

Expected Behavior (from spec §29024, §29205-29218, §29845-29858, §29862-29977)

The agents tui command should launch a CleverAgentsApp that:

  • Pushes MainScreen as the primary screen
  • Sets self.theme = "dracula" on mount
  • MainScreen has shift+tab → cycle sidebar (hidden → visible → fullscreen)
  • MainScreen has ctrl+b → focus sidebar when visible
  • MainScreen has alt+up/alt+down → block cursor navigation
  • MainScreen has escape cascade → close sidebar/overlays/return to prompt
  • Sidebar widget shows Plans and Projects panels in collapsible containers
  • Conversation widget uses 2-column grid with gutter indicator for block cursor

Actual Behavior

On master branch:

src/cleveragents/tui/app.py exports CleverAgentsTuiApp = _TextualCleverAgentsTuiApp, which:

  • Uses generic _Header(show_clock=True) and _Footer() (not spec-required custom layout)
  • Has only 3 bindings: ctrl+q, f1, ctrl+t (missing shift+tab, ctrl+b, alt+up, alt+down, escape, ctrl+n, ctrl+w)
  • Has NO Sidebar widget in compose()
  • Has NO MainScreen class
  • Has NO THEME = "dracula" or self.theme = "dracula"
  • Has NO block cursor navigation
  • src/cleveragents/tui/screens/ directory is empty (no .py files)
  • src/cleveragents/tui/widgets/ is missing: sidebar.py, conversation.py, footer_bar.py, prompt_area.py, session_tabs.py, throbber.py

On feature/m8-tui-mainscreen branch:

The branch has a complete implementation including:

  • src/cleveragents/tui/screens/main_screen.pyMainScreen with all sidebar bindings
  • src/cleveragents/tui/widgets/sidebar.pySidebar with SidebarState enum (HIDDEN/VISIBLE/FULLSCREEN)
  • src/cleveragents/tui/widgets/conversation.pyConversation with block cursor (move_cursor_up/down/clear_cursor)
  • src/cleveragents/tui/widgets/footer_bar.py, throbber.py, session_tabs.py, prompt_area.py
  • src/cleveragents/tui/theme.pyDEFAULT_THEME = "dracula"
  • src/cleveragents/tui/app.pyCleverAgentsApp that sets self.theme = DEFAULT_THEME and pushes MainScreen

However, this branch has NO open PR and has NOT been merged to master.


Evidence

Stale .pyc files on master confirm the branch was previously merged or tested:

src/cleveragents/tui/screens/__pycache__/main_screen.cpython-313.pyc  ← no .py source
src/cleveragents/tui/widgets/__pycache__/sidebar.cpython-313.pyc      ← no .py source
src/cleveragents/tui/widgets/__pycache__/conversation.cpython-313.pyc ← no .py source
src/cleveragents/tui/theme.cpython-313.pyc                            ← no .py source
src/cleveragents/domain/models/tui/__pycache__/sidebar_state.cpython-313.pyc ← no .py source

Branch exists but has no PR:

remotes/origin/feature/m8-tui-mainscreen  ← branch exists

No open or closed PR found for this branch.


Impact

All 5 v3.7.0 TUI sidebar acceptance criteria are blocked:

# Acceptance Criterion Status
2 3 sidebar states: hidden/visible/fullscreen Not on master
9 Dracula theme applied Not on master
10 Block cursor navigation Not on master

The implementation exists and is complete in the branch — it just needs a PR opened and merged.


Steps to Reproduce

# On master:
python -c "from cleveragents.tui.screens.main_screen import MainScreen"
# ImportError: No module named 'cleveragents.tui.screens.main_screen'

python -c "from cleveragents.tui.widgets.sidebar import Sidebar"
# ImportError: No module named 'cleveragents.tui.widgets.sidebar'

python -c "from cleveragents.tui.theme import DEFAULT_THEME"
# ImportError: No module named 'cleveragents.tui.theme'

Open a PR from feature/m8-tui-mainscreenmaster and merge it. The implementation appears complete. The PR should also:

  1. Update src/cleveragents/tui/__init__.py to export CleverAgentsApp
  2. Update the agents tui CLI command to use CleverAgentsApp instead of CleverAgentsTuiApp
  3. Verify all unit tests pass with the new MainScreen-based architecture

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

## Bug Report **Feature Area:** TUI — MainScreen Layout, Sidebar States, Dracula Theme, Block Cursor (v3.7.0) **Severity:** Critical — complete sidebar/theme/block-cursor implementation exists but is not accessible on master **Discovered by:** UAT Testing (uat-pool-1, worker: tui-sidebar-layout) --- ## What Was Tested Code analysis comparing `master` branch vs `feature/m8-tui-mainscreen` branch for all 5 v3.7.0 TUI sidebar features: 1. MainScreen with 3 sidebar states (hidden/visible/fullscreen) 2. Sidebar toggle keyboard shortcuts 3. Sidebar content rendering (Plans/Projects panels) 4. Dracula theme application 5. Block cursor navigation --- ## Expected Behavior (from spec §29024, §29205-29218, §29845-29858, §29862-29977) The `agents tui` command should launch a `CleverAgentsApp` that: - Pushes `MainScreen` as the primary screen - Sets `self.theme = "dracula"` on mount - `MainScreen` has `shift+tab` → cycle sidebar (hidden → visible → fullscreen) - `MainScreen` has `ctrl+b` → focus sidebar when visible - `MainScreen` has `alt+up`/`alt+down` → block cursor navigation - `MainScreen` has `escape` cascade → close sidebar/overlays/return to prompt - `Sidebar` widget shows Plans and Projects panels in collapsible containers - `Conversation` widget uses 2-column grid with `▌` gutter indicator for block cursor --- ## Actual Behavior ### On `master` branch: `src/cleveragents/tui/app.py` exports `CleverAgentsTuiApp = _TextualCleverAgentsTuiApp`, which: - Uses generic `_Header(show_clock=True)` and `_Footer()` (not spec-required custom layout) - Has only 3 bindings: `ctrl+q`, `f1`, `ctrl+t` (missing `shift+tab`, `ctrl+b`, `alt+up`, `alt+down`, `escape`, `ctrl+n`, `ctrl+w`) - Has NO `Sidebar` widget in `compose()` - Has NO `MainScreen` class - Has NO `THEME = "dracula"` or `self.theme = "dracula"` - Has NO block cursor navigation - `src/cleveragents/tui/screens/` directory is **empty** (no `.py` files) - `src/cleveragents/tui/widgets/` is missing: `sidebar.py`, `conversation.py`, `footer_bar.py`, `prompt_area.py`, `session_tabs.py`, `throbber.py` ### On `feature/m8-tui-mainscreen` branch: The branch **has a complete implementation** including: - `src/cleveragents/tui/screens/main_screen.py` — `MainScreen` with all sidebar bindings - `src/cleveragents/tui/widgets/sidebar.py` — `Sidebar` with `SidebarState` enum (HIDDEN/VISIBLE/FULLSCREEN) - `src/cleveragents/tui/widgets/conversation.py` — `Conversation` with block cursor (`move_cursor_up/down/clear_cursor`) - `src/cleveragents/tui/widgets/footer_bar.py`, `throbber.py`, `session_tabs.py`, `prompt_area.py` - `src/cleveragents/tui/theme.py` — `DEFAULT_THEME = "dracula"` - `src/cleveragents/tui/app.py` — `CleverAgentsApp` that sets `self.theme = DEFAULT_THEME` and pushes `MainScreen` **However, this branch has NO open PR and has NOT been merged to master.** --- ## Evidence ### Stale `.pyc` files on master confirm the branch was previously merged or tested: ``` src/cleveragents/tui/screens/__pycache__/main_screen.cpython-313.pyc ← no .py source src/cleveragents/tui/widgets/__pycache__/sidebar.cpython-313.pyc ← no .py source src/cleveragents/tui/widgets/__pycache__/conversation.cpython-313.pyc ← no .py source src/cleveragents/tui/theme.cpython-313.pyc ← no .py source src/cleveragents/domain/models/tui/__pycache__/sidebar_state.cpython-313.pyc ← no .py source ``` ### Branch exists but has no PR: ``` remotes/origin/feature/m8-tui-mainscreen ← branch exists ``` No open or closed PR found for this branch. --- ## Impact All 5 v3.7.0 TUI sidebar acceptance criteria are blocked: | # | Acceptance Criterion | Status | |---|---------------------|--------| | 2 | 3 sidebar states: hidden/visible/fullscreen | ❌ Not on master | | 9 | Dracula theme applied | ❌ Not on master | | 10 | Block cursor navigation | ❌ Not on master | The implementation exists and is complete in the branch — it just needs a PR opened and merged. --- ## Steps to Reproduce ```bash # On master: python -c "from cleveragents.tui.screens.main_screen import MainScreen" # ImportError: No module named 'cleveragents.tui.screens.main_screen' python -c "from cleveragents.tui.widgets.sidebar import Sidebar" # ImportError: No module named 'cleveragents.tui.widgets.sidebar' python -c "from cleveragents.tui.theme import DEFAULT_THEME" # ImportError: No module named 'cleveragents.tui.theme' ``` --- ## Recommended Fix Open a PR from `feature/m8-tui-mainscreen` → `master` and merge it. The implementation appears complete. The PR should also: 1. Update `src/cleveragents/tui/__init__.py` to export `CleverAgentsApp` 2. Update the `agents tui` CLI command to use `CleverAgentsApp` instead of `CleverAgentsTuiApp` 3. Verify all unit tests pass with the new `MainScreen`-based architecture --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.7.0 milestone 2026-04-09 07:26:25 +00:00
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.

Reference
cleveragents/cleveragents-core#5547
No description provided.