UAT: TUI missing spec-required modal screens — no SessionsScreen, PlanDetailModal, ProjectDetailModal, or PersonaEditorModal implemented #3674

Open
opened 2026-04-05 21:22:19 +00:00 by freemo · 0 comments
Owner

Metadata

  • Branch: fix/tui-modal-screens-implementation
  • Commit Message: fix(tui): implement spec-required modal screens and overlays
  • Milestone: None (Backlog — TUI is Post-MVP deferred work)
  • Parent Epic: #868

Background and Context

The CleverAgents specification requires a full modal navigation layer in the TUI, including session management, plan/project inspection overlays, a persona editor, and a settings screen. These screens are referenced throughout the spec and are essential to the TUI's interactive experience. During UAT testing, it was discovered that the entire modal screen layer is absent from the current implementation.

Current Behavior

  • src/cleveragents/tui/screens/ directory is completely empty (only contains __pycache__)
  • No SessionsScreen, PlanDetailModal, ProjectDetailModal, PersonaEditorModal, or SettingsScreen exist anywhere in src/cleveragents/tui/
  • ctrl+s has no binding in the app — pressing it does nothing
  • /plan:inspect and /project:inspect commands are in the slash catalog but have no implementation routing to a modal
  • The sidebar has no fullscreen mode (sidebar doesn't exist at all)

Expected Behavior

The spec requires the following modal screens/overlays to be implemented:

  1. SessionsScreen (ctrl+s) — Modal overlay showing all active and saved sessions with state indicators, persona, actor, and last prompt preview. Divided into Active Sessions and Saved Sessions sections. Keyboard: enter Switch, ctrl+r Resume saved, ctrl+n New, d Delete, r Rename, esc Back.
  2. PlanDetailModal (enter on plan in sidebar, or /plan:inspect) — Full plan detail view with decision tree, phase progress, cost, actor, subplans, etc.
  3. ProjectDetailModal (enter on project in sidebar, or /project:inspect) — Full project detail view with resources, plans, invariants, validations.
  4. PersonaEditorModal (ctrl+p in sidebar fullscreen, or /persona:create) — Persona creation/editing form with actor selection, scope configuration, preset settings.
  5. SettingsScreen (F2 / ctrl+, / /settings) — Settings configuration screen.
  6. Sidebar Fullscreen mode — Full-screen Plans & Projects Browser with selection mode, persona cycle list, and ctrl+p persona creation trigger.

Acceptance Criteria

  • SessionsScreen is implemented and accessible via ctrl+s; displays active and saved sessions with correct keyboard bindings
  • PlanDetailModal is implemented and accessible via enter on a plan in the sidebar and via /plan:inspect; displays decision tree, phase progress, cost, actor, and subplans
  • ProjectDetailModal is implemented and accessible via enter on a project in the sidebar and via /project:inspect; displays resources, plans, invariants, and validations
  • PersonaEditorModal is implemented and accessible via ctrl+p in sidebar fullscreen mode and via /persona:create; supports actor selection, scope configuration, and preset settings
  • SettingsScreen is implemented and accessible via F2, ctrl+,, and /settings
  • Sidebar fullscreen mode is implemented with Plans & Projects Browser, selection mode, persona cycle list, and ctrl+p trigger
  • All modal screens are pushed/popped correctly via Textual's screen stack in app.py
  • /plan:inspect and /project:inspect slash commands route to the correct modal screens
  • All new screens have Behave BDD tests

Supporting Information

  • Code locations:
    • src/cleveragents/tui/screens/ — empty directory where screen implementations belong
    • src/cleveragents/tui/app.py — no modal screen push/pop logic present
    • src/cleveragents/tui/commands.py — no routing to modal screens
  • Impact: Users cannot view session history, inspect plan details, inspect project details, create/edit personas, or access settings from the TUI. The entire modal navigation layer is absent.
  • Related issues: #694 (MainScreen with sidebar states), #695 (Persona system and reference/command input modes)

Subtasks

  • Create src/cleveragents/tui/screens/sessions_screen.py — implement SessionsScreen with active/saved session sections and keyboard bindings
  • Create src/cleveragents/tui/screens/plan_detail_modal.py — implement PlanDetailModal with decision tree, phase progress, cost, actor, subplans
  • Create src/cleveragents/tui/screens/project_detail_modal.py — implement ProjectDetailModal with resources, plans, invariants, validations
  • Create src/cleveragents/tui/screens/persona_editor_modal.py — implement PersonaEditorModal with actor selection, scope configuration, preset settings
  • Create src/cleveragents/tui/screens/settings_screen.py — implement SettingsScreen
  • Implement sidebar fullscreen mode in the sidebar widget
  • Wire ctrl+s key binding in app.py to push SessionsScreen
  • Wire F2 / ctrl+, key bindings in app.py to push SettingsScreen
  • Wire ctrl+p in sidebar fullscreen mode to push PersonaEditorModal
  • Route /plan:inspect slash command in commands.py to push PlanDetailModal
  • Route /project:inspect slash command in commands.py to push ProjectDetailModal
  • Route /persona:create slash command in commands.py to push PersonaEditorModal
  • Route /settings slash command in commands.py to push SettingsScreen
  • Tests (Behave): Add BDD scenarios for each modal screen
  • 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 (fix(tui): implement spec-required modal screens and overlays), 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 (fix/tui-modal-screens-implementation).
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.
  • All nox stages pass.
  • Coverage >= 97%.

Backlog note: This issue was discovered during autonomous operation
on milestone v3.7.0. It does not block milestone completion and has been
placed in the backlog for human review and future milestone assignment.


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

## Metadata - **Branch**: `fix/tui-modal-screens-implementation` - **Commit Message**: `fix(tui): implement spec-required modal screens and overlays` - **Milestone**: None (Backlog — TUI is Post-MVP deferred work) - **Parent Epic**: #868 ## Background and Context The CleverAgents specification requires a full modal navigation layer in the TUI, including session management, plan/project inspection overlays, a persona editor, and a settings screen. These screens are referenced throughout the spec and are essential to the TUI's interactive experience. During UAT testing, it was discovered that the entire modal screen layer is absent from the current implementation. ## Current Behavior - `src/cleveragents/tui/screens/` directory is **completely empty** (only contains `__pycache__`) - No `SessionsScreen`, `PlanDetailModal`, `ProjectDetailModal`, `PersonaEditorModal`, or `SettingsScreen` exist anywhere in `src/cleveragents/tui/` - `ctrl+s` has no binding in the app — pressing it does nothing - `/plan:inspect` and `/project:inspect` commands are in the slash catalog but have no implementation routing to a modal - The sidebar has no fullscreen mode (sidebar doesn't exist at all) ## Expected Behavior The spec requires the following modal screens/overlays to be implemented: 1. **SessionsScreen** (`ctrl+s`) — Modal overlay showing all active and saved sessions with state indicators, persona, actor, and last prompt preview. Divided into Active Sessions and Saved Sessions sections. Keyboard: `enter` Switch, `ctrl+r` Resume saved, `ctrl+n` New, `d` Delete, `r` Rename, `esc` Back. 2. **PlanDetailModal** (`enter` on plan in sidebar, or `/plan:inspect`) — Full plan detail view with decision tree, phase progress, cost, actor, subplans, etc. 3. **ProjectDetailModal** (`enter` on project in sidebar, or `/project:inspect`) — Full project detail view with resources, plans, invariants, validations. 4. **PersonaEditorModal** (`ctrl+p` in sidebar fullscreen, or `/persona:create`) — Persona creation/editing form with actor selection, scope configuration, preset settings. 5. **SettingsScreen** (`F2` / `ctrl+,` / `/settings`) — Settings configuration screen. 6. **Sidebar Fullscreen mode** — Full-screen Plans & Projects Browser with selection mode, persona cycle list, and `ctrl+p` persona creation trigger. ## Acceptance Criteria - [ ] `SessionsScreen` is implemented and accessible via `ctrl+s`; displays active and saved sessions with correct keyboard bindings - [ ] `PlanDetailModal` is implemented and accessible via `enter` on a plan in the sidebar and via `/plan:inspect`; displays decision tree, phase progress, cost, actor, and subplans - [ ] `ProjectDetailModal` is implemented and accessible via `enter` on a project in the sidebar and via `/project:inspect`; displays resources, plans, invariants, and validations - [ ] `PersonaEditorModal` is implemented and accessible via `ctrl+p` in sidebar fullscreen mode and via `/persona:create`; supports actor selection, scope configuration, and preset settings - [ ] `SettingsScreen` is implemented and accessible via `F2`, `ctrl+,`, and `/settings` - [ ] Sidebar fullscreen mode is implemented with Plans & Projects Browser, selection mode, persona cycle list, and `ctrl+p` trigger - [ ] All modal screens are pushed/popped correctly via Textual's screen stack in `app.py` - [ ] `/plan:inspect` and `/project:inspect` slash commands route to the correct modal screens - [ ] All new screens have Behave BDD tests ## Supporting Information - **Code locations**: - `src/cleveragents/tui/screens/` — empty directory where screen implementations belong - `src/cleveragents/tui/app.py` — no modal screen push/pop logic present - `src/cleveragents/tui/commands.py` — no routing to modal screens - **Impact**: Users cannot view session history, inspect plan details, inspect project details, create/edit personas, or access settings from the TUI. The entire modal navigation layer is absent. - **Related issues**: #694 (MainScreen with sidebar states), #695 (Persona system and reference/command input modes) ## Subtasks - [ ] Create `src/cleveragents/tui/screens/sessions_screen.py` — implement `SessionsScreen` with active/saved session sections and keyboard bindings - [ ] Create `src/cleveragents/tui/screens/plan_detail_modal.py` — implement `PlanDetailModal` with decision tree, phase progress, cost, actor, subplans - [ ] Create `src/cleveragents/tui/screens/project_detail_modal.py` — implement `ProjectDetailModal` with resources, plans, invariants, validations - [ ] Create `src/cleveragents/tui/screens/persona_editor_modal.py` — implement `PersonaEditorModal` with actor selection, scope configuration, preset settings - [ ] Create `src/cleveragents/tui/screens/settings_screen.py` — implement `SettingsScreen` - [ ] Implement sidebar fullscreen mode in the sidebar widget - [ ] Wire `ctrl+s` key binding in `app.py` to push `SessionsScreen` - [ ] Wire `F2` / `ctrl+,` key bindings in `app.py` to push `SettingsScreen` - [ ] Wire `ctrl+p` in sidebar fullscreen mode to push `PersonaEditorModal` - [ ] Route `/plan:inspect` slash command in `commands.py` to push `PlanDetailModal` - [ ] Route `/project:inspect` slash command in `commands.py` to push `ProjectDetailModal` - [ ] Route `/persona:create` slash command in `commands.py` to push `PersonaEditorModal` - [ ] Route `/settings` slash command in `commands.py` to push `SettingsScreen` - [ ] Tests (Behave): Add BDD scenarios for each modal screen - [ ] 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 (`fix(tui): implement spec-required modal screens and overlays`), 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 (`fix/tui-modal-screens-implementation`). - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done. - All nox stages pass. - Coverage >= 97%. > **Backlog note:** This issue was discovered during autonomous operation > on milestone v3.7.0. It does not block milestone completion and has been > placed in the backlog for human review and future milestone assignment. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-uat-tester
freemo added this to the v3.7.0 milestone 2026-04-05 21:24:40 +00:00
freemo removed this from the v3.7.0 milestone 2026-04-06 23:31:34 +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.

Blocks
Reference
cleveragents/cleveragents-core#3674
No description provided.