UAT: Multi-session tabs not implemented — TUI only supports single hardcoded session per ADR-044 #5945

Open
opened 2026-04-09 12:06:36 +00:00 by HAL9000 · 1 comment
Owner

Bug Report

Feature Area: TUI Main Screen — Multi-Session Tabs
Severity: Critical — blocks v3.7.0 milestone acceptance
Spec Reference: ADR-044 §Multi-Session Tab Bar, §Multi-Session Management
Found by: UAT Testing Pool (uat-pool-1), worker: tui-main-screen


What Was Tested

Code-level analysis of src/cleveragents/tui/app.py and src/cleveragents/tui/widgets/ against ADR-044 multi-session specification.

Expected Behavior (from spec/ADR-044)

ADR-044 §Multi-Session Management defines:

  • Multiple concurrent sessions, each with independent conversation history, persona, and A2A Task binding
  • Session tabs appear at the top of the screen (below Throbber), hidden when only one session exists
  • Session tabs show state indicators: (actor working), (awaiting input), plain (idle)
  • ctrl+[ / ctrl+] — navigate between session tabs
  • ctrl+n — create new session tab with current persona
  • ctrl+w — close current session tab (with confirmation if unsaved)
  • ctrl+r — resume a previous session from the sessions screen
  • ctrl+s — open SessionsScreen
  • Each session has an independent A2A Task binding (separate A2A connection per session)

Actual Behavior

The CleverAgentsTuiApp has a single hardcoded session:

def __init__(self, ...) -> None:
    super().__init__()
    self._command_router = command_router
    self._persona_state = persona_state
    self._session = SessionView(session_id="default", transcript=[])  # Single session only

No SessionTabs widget exists in src/cleveragents/tui/widgets/. The widgets/__init__.py does not export any session tab widget.

The BINDINGS in app.py do not include:

  • ctrl+[ / ctrl+] for tab navigation
  • ctrl+n for new session
  • ctrl+w for close session
  • ctrl+r for resume session
  • ctrl+s for sessions screen

The SessionTracker global state class mentioned in ADR-044 does not exist.

Steps to Reproduce

grep -r "SessionTabs\|SessionTracker\|ctrl+n\|ctrl+w\|ctrl+\[\|ctrl+\]" src/cleveragents/tui/ --include="*.py"
# No matches

ls src/cleveragents/tui/widgets/
# No session_tabs.py

Impact

Multi-session tabs are explicitly listed in the v3.7.0 milestone scope:

"Multi-session tabs with independent A2A bindings"

Without multi-session support, users cannot:

  • Monitor a long-running plan in one tab while chatting in another
  • Have sessions with different personas simultaneously
  • Use the parallel workflow model the TUI is designed for

Code Location

  • src/cleveragents/tui/app.pyself._session = SessionView(session_id="default", ...) (line 107)
  • src/cleveragents/tui/widgets/ — no session_tabs.py

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

## Bug Report **Feature Area:** TUI Main Screen — Multi-Session Tabs **Severity:** Critical — blocks v3.7.0 milestone acceptance **Spec Reference:** ADR-044 §Multi-Session Tab Bar, §Multi-Session Management **Found by:** UAT Testing Pool (uat-pool-1), worker: tui-main-screen --- ## What Was Tested Code-level analysis of `src/cleveragents/tui/app.py` and `src/cleveragents/tui/widgets/` against ADR-044 multi-session specification. ## Expected Behavior (from spec/ADR-044) ADR-044 §Multi-Session Management defines: - Multiple concurrent sessions, each with independent conversation history, persona, and A2A Task binding - Session tabs appear at the top of the screen (below Throbber), hidden when only one session exists - Session tabs show state indicators: `⌛` (actor working), `❯` (awaiting input), plain (idle) - `ctrl+[` / `ctrl+]` — navigate between session tabs - `ctrl+n` — create new session tab with current persona - `ctrl+w` — close current session tab (with confirmation if unsaved) - `ctrl+r` — resume a previous session from the sessions screen - `ctrl+s` — open SessionsScreen - Each session has an independent A2A Task binding (separate A2A connection per session) ## Actual Behavior The `CleverAgentsTuiApp` has a **single hardcoded session**: ```python def __init__(self, ...) -> None: super().__init__() self._command_router = command_router self._persona_state = persona_state self._session = SessionView(session_id="default", transcript=[]) # Single session only ``` No `SessionTabs` widget exists in `src/cleveragents/tui/widgets/`. The `widgets/__init__.py` does not export any session tab widget. The `BINDINGS` in `app.py` do not include: - `ctrl+[` / `ctrl+]` for tab navigation - `ctrl+n` for new session - `ctrl+w` for close session - `ctrl+r` for resume session - `ctrl+s` for sessions screen The `SessionTracker` global state class mentioned in ADR-044 does not exist. ## Steps to Reproduce ```bash grep -r "SessionTabs\|SessionTracker\|ctrl+n\|ctrl+w\|ctrl+\[\|ctrl+\]" src/cleveragents/tui/ --include="*.py" # No matches ls src/cleveragents/tui/widgets/ # No session_tabs.py ``` ## Impact Multi-session tabs are explicitly listed in the v3.7.0 milestone scope: > "Multi-session tabs with independent A2A bindings" Without multi-session support, users cannot: - Monitor a long-running plan in one tab while chatting in another - Have sessions with different personas simultaneously - Use the parallel workflow model the TUI is designed for ## Code Location - `src/cleveragents/tui/app.py` — `self._session = SessionView(session_id="default", ...)` (line 107) - `src/cleveragents/tui/widgets/` — no `session_tabs.py` --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.7.0 milestone 2026-04-09 12:10:26 +00:00
Author
Owner

Hierarchical Compliance Fix: This issue was detected as an orphan (no parent Epic).

Solution: Linked to Epic #5308 (TUI Session Management & Persistence — SQLite State & Multi-Session Tabs) as multi-session tabs are the core scope of this epic.

Hierarchy: Issue #5945 → Epic #5308 → Legendary #4946


Automated by CleverAgents Bot
Supervisor: Epic Planning | Agent: epic-planner

**Hierarchical Compliance Fix**: This issue was detected as an orphan (no parent Epic). **Solution**: Linked to Epic #5308 (TUI Session Management & Persistence — SQLite State & Multi-Session Tabs) as multi-session tabs are the core scope of this epic. **Hierarchy**: Issue #5945 → Epic #5308 → Legendary #4946 --- **Automated by CleverAgents Bot** Supervisor: Epic Planning | Agent: epic-planner
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#5945
No description provided.