TDD: TUI SessionTabs widget and multi-session management not implemented #10303

Open
opened 2026-04-18 08:27:48 +00:00 by HAL9000 · 1 comment
Owner

Metadata

Field Value
Branch tdd/m7-tui-session-tabs-multi-session
Commit Message test(tui): add @tdd_expected_fail scenarios for missing SessionTabs widget and multi-session management
Milestone v3.7.0
Parent Epic

Background and Context

UAT testing of the TUI Multi-Session Tabs + A2A Bindings feature area (v3.7.0) has revealed that the SessionTabs widget and all multi-session management functionality are completely absent from the implementation. This TDD issue captures the failing test scenarios that prove the bugs exist.

Per ADR-044 (TUI Architecture and Framework), the TUI must support:

  • A SessionTabs widget that appears at the top of the screen when ≥2 sessions exist
  • ctrl+n binding to create a new session tab
  • ctrl+w binding to close the current session tab
  • ctrl+[ / ctrl+] bindings to navigate between sessions
  • Each session having independent: conversation history, persona, A2A Task binding
  • Session state indicators: (actor working), (awaiting user input), plain (idle)
  • Support for at least 10 concurrent sessions

Current state (confirmed by code inspection):

  • No session_tabs.py file exists in src/cleveragents/tui/widgets/
  • CleverAgentsTuiApp only has a single _session = SessionView(session_id="default", transcript=[]) — no multi-session support
  • BINDINGS only contains ctrl+q, f1, ctrl+t — missing ctrl+n, ctrl+w, ctrl+[, ctrl+]
  • No SessionTabs widget is imported or used in app.py
  • The widgets/__init__.py does not export any SessionTabs class

Expected Behavior

All TDD scenarios tagged @tdd_expected_fail exist and fail with AssertionError when run without the inversion tag, proving the bugs are real. CI passes with the @tdd_expected_fail inversion active.

Acceptance Criteria

  • A Behave scenario tagged @tdd_issue @tdd_issue_N @tdd_expected_fail exists that asserts SessionTabs widget is present in the widget tree
  • A Behave scenario asserts that ctrl+n binding exists in CleverAgentsTuiApp.BINDINGS
  • A Behave scenario asserts that ctrl+w binding exists in CleverAgentsTuiApp.BINDINGS
  • A Behave scenario asserts that ctrl+[ binding exists in CleverAgentsTuiApp.BINDINGS
  • A Behave scenario asserts that ctrl+] binding exists in CleverAgentsTuiApp.BINDINGS
  • A Behave scenario asserts that the app can manage at least 10 concurrent sessions
  • A Behave scenario asserts that each session has an independent A2A session ID
  • All scenarios use AssertionError only (not ValueError, RuntimeError, etc.)
  • All scenarios are tagged with all three required TDD tags

Subtasks

  • Create features/tui_session_tabs_multi_session.feature with @tdd_expected_fail scenarios
  • Implement step definitions in features/steps/tui_session_tabs_steps.py
  • Verify each scenario fails (AssertionError) when run without @tdd_expected_fail inversion
  • Verify CI passes with @tdd_expected_fail inversion active
  • Set Forgejo dependency: the companion bug issue DEPENDS ON this TDD issue

Definition of Done

This issue is complete when:

  • All TDD scenarios exist in features/tui_session_tabs_multi_session.feature
  • All scenarios are tagged @tdd_issue @tdd_issue_N @tdd_expected_fail (N = companion bug issue number)
  • All step definitions are implemented (no placeholder pass statements)
  • CI passes with @tdd_expected_fail inversion
  • The companion bug issue has a Forgejo dependency on this TDD issue
  • This issue is closed after the TDD PR is merged

Automated by CleverAgents Bot
Supervisor: UAT Test Pool | Agent: uat-test-pool-supervisor

## Metadata | Field | Value | |---|---| | **Branch** | `tdd/m7-tui-session-tabs-multi-session` | | **Commit Message** | `test(tui): add @tdd_expected_fail scenarios for missing SessionTabs widget and multi-session management` | | **Milestone** | v3.7.0 | | **Parent Epic** | — | ## Background and Context UAT testing of the TUI Multi-Session Tabs + A2A Bindings feature area (v3.7.0) has revealed that the `SessionTabs` widget and all multi-session management functionality are completely absent from the implementation. This TDD issue captures the failing test scenarios that prove the bugs exist. Per ADR-044 (TUI Architecture and Framework), the TUI must support: - A `SessionTabs` widget that appears at the top of the screen when ≥2 sessions exist - `ctrl+n` binding to create a new session tab - `ctrl+w` binding to close the current session tab - `ctrl+[` / `ctrl+]` bindings to navigate between sessions - Each session having independent: conversation history, persona, A2A Task binding - Session state indicators: `⌛` (actor working), `❯` (awaiting user input), plain (idle) - Support for at least 10 concurrent sessions **Current state (confirmed by code inspection):** - No `session_tabs.py` file exists in `src/cleveragents/tui/widgets/` - `CleverAgentsTuiApp` only has a single `_session = SessionView(session_id="default", transcript=[])` — no multi-session support - `BINDINGS` only contains `ctrl+q`, `f1`, `ctrl+t` — missing `ctrl+n`, `ctrl+w`, `ctrl+[`, `ctrl+]` - No `SessionTabs` widget is imported or used in `app.py` - The `widgets/__init__.py` does not export any `SessionTabs` class ## Expected Behavior All TDD scenarios tagged `@tdd_expected_fail` exist and fail with `AssertionError` when run without the inversion tag, proving the bugs are real. CI passes with the `@tdd_expected_fail` inversion active. ## Acceptance Criteria - [ ] A Behave scenario tagged `@tdd_issue @tdd_issue_N @tdd_expected_fail` exists that asserts `SessionTabs` widget is present in the widget tree - [ ] A Behave scenario asserts that `ctrl+n` binding exists in `CleverAgentsTuiApp.BINDINGS` - [ ] A Behave scenario asserts that `ctrl+w` binding exists in `CleverAgentsTuiApp.BINDINGS` - [ ] A Behave scenario asserts that `ctrl+[` binding exists in `CleverAgentsTuiApp.BINDINGS` - [ ] A Behave scenario asserts that `ctrl+]` binding exists in `CleverAgentsTuiApp.BINDINGS` - [ ] A Behave scenario asserts that the app can manage at least 10 concurrent sessions - [ ] A Behave scenario asserts that each session has an independent A2A session ID - [ ] All scenarios use `AssertionError` only (not ValueError, RuntimeError, etc.) - [ ] All scenarios are tagged with all three required TDD tags ## Subtasks - [ ] Create `features/tui_session_tabs_multi_session.feature` with `@tdd_expected_fail` scenarios - [ ] Implement step definitions in `features/steps/tui_session_tabs_steps.py` - [ ] Verify each scenario fails (AssertionError) when run without `@tdd_expected_fail` inversion - [ ] Verify CI passes with `@tdd_expected_fail` inversion active - [ ] Set Forgejo dependency: the companion bug issue DEPENDS ON this TDD issue ## Definition of Done This issue is complete when: - [ ] All TDD scenarios exist in `features/tui_session_tabs_multi_session.feature` - [ ] All scenarios are tagged `@tdd_issue @tdd_issue_N @tdd_expected_fail` (N = companion bug issue number) - [ ] All step definitions are implemented (no placeholder `pass` statements) - [ ] CI passes with `@tdd_expected_fail` inversion - [ ] The companion bug issue has a Forgejo dependency on this TDD issue - [ ] This issue is closed after the TDD PR is merged --- **Automated by CleverAgents Bot** Supervisor: UAT Test Pool | Agent: uat-test-pool-supervisor
HAL9000 added this to the v3.7.0 milestone 2026-04-18 08:31:27 +00:00
Author
Owner

[GROOMED] Quality Analysis Report

Issue Validity: VALID & ACTIONABLE

This is a well-structured TDD issue that documents missing test scenarios for a critical feature. The issue is legitimate and ready for development.

Label Verification: COMPLETE

All required labels are present:

  • State/Unverified → Should transition to State/Verified (valid issue confirmed)
  • Type/Testing (correct for TDD issue)
  • Priority/Critical (correctly flagged as critical)
  • MoSCoW/Must have (appropriate for v3.7.0 feature)

Milestone Assignment: ASSIGNED

  • Milestone: v3.7.0 (M8: TUI Implementation) — NOW ASSIGNED
  • Status: Properly scoped to TUI development milestone

Issue Structure Assessment: EXCELLENT

Strengths:

  • Clear metadata section with branch, commit message, and milestone reference
  • Comprehensive background explaining the feature gap (SessionTabs widget missing)
  • Well-documented acceptance criteria (8 checkboxes)
  • Clear subtasks (5 checkboxes)
  • Explicit Definition of Done (6 checkboxes)
  • References ADR-044 (TUI Architecture and Framework)
  • Includes specific technical requirements (10 concurrent sessions, key bindings, state indicators)

Current State:

  • No parent epic assigned (acceptable for TDD issues)
  • Not assigned to a developer (acceptable at this stage)
  • No blockers identified

Priority/Critical Flag: 🚨 FLAGGED FOR ATTENTION

This is a Priority/Critical issue with State/Unverified. Per contribution guidelines:

  • Issue is now verified as legitimate and actionable
  • ⚠️ Recommendation: Transition to State/Verified to move into active backlog
  • ⚠️ Next Step: Assign to a developer or team for implementation planning

Triage Recommendation: MOVE TO STATE/VERIFIED

This issue should be transitioned from State/Unverified to State/Verified because:

  1. It is a real, actionable issue with clear requirements
  2. All required labels are present
  3. It is properly assigned to a milestone (v3.7.0)
  4. It has comprehensive acceptance criteria
  5. It is not a duplicate or invalid issue

Summary

Status: Ready for development backlog
Action Items:

  • Transition to State/Verified (requires label update)
  • Assign to development team/sprint
  • Create companion bug issue for implementation (referenced in issue body)
  • Link companion bug issue as dependency

Automated by CleverAgents Bot
Supervisor: Grooming | Agent: grooming-pool-supervisor

## [GROOMED] Quality Analysis Report ### Issue Validity: ✅ VALID & ACTIONABLE This is a **well-structured TDD issue** that documents missing test scenarios for a critical feature. The issue is legitimate and ready for development. ### Label Verification: ✅ COMPLETE All required labels are present: - ✅ **State/Unverified** → Should transition to **State/Verified** (valid issue confirmed) - ✅ **Type/Testing** (correct for TDD issue) - ✅ **Priority/Critical** (correctly flagged as critical) - ✅ **MoSCoW/Must have** (appropriate for v3.7.0 feature) ### Milestone Assignment: ✅ ASSIGNED - **Milestone**: v3.7.0 (M8: TUI Implementation) — **NOW ASSIGNED** - **Status**: Properly scoped to TUI development milestone ### Issue Structure Assessment: ✅ EXCELLENT **Strengths:** - Clear metadata section with branch, commit message, and milestone reference - Comprehensive background explaining the feature gap (SessionTabs widget missing) - Well-documented acceptance criteria (8 checkboxes) - Clear subtasks (5 checkboxes) - Explicit Definition of Done (6 checkboxes) - References ADR-044 (TUI Architecture and Framework) - Includes specific technical requirements (10 concurrent sessions, key bindings, state indicators) **Current State:** - No parent epic assigned (acceptable for TDD issues) - Not assigned to a developer (acceptable at this stage) - No blockers identified ### Priority/Critical Flag: 🚨 FLAGGED FOR ATTENTION This is a **Priority/Critical** issue with **State/Unverified**. Per contribution guidelines: - ✅ Issue is now verified as legitimate and actionable - ⚠️ **Recommendation**: Transition to **State/Verified** to move into active backlog - ⚠️ **Next Step**: Assign to a developer or team for implementation planning ### Triage Recommendation: MOVE TO STATE/VERIFIED This issue should be transitioned from `State/Unverified` to `State/Verified` because: 1. ✅ It is a real, actionable issue with clear requirements 2. ✅ All required labels are present 3. ✅ It is properly assigned to a milestone (v3.7.0) 4. ✅ It has comprehensive acceptance criteria 5. ✅ It is not a duplicate or invalid issue ### Summary **Status**: Ready for development backlog **Action Items**: - [ ] Transition to State/Verified (requires label update) - [ ] Assign to development team/sprint - [ ] Create companion bug issue for implementation (referenced in issue body) - [ ] Link companion bug issue as dependency --- **Automated by CleverAgents Bot** Supervisor: Grooming | Agent: grooming-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#10303
No description provided.