UAT: PersonaEditorModal missing — no modal for persona creation/editing in TUI #10476

Open
opened 2026-04-18 10:03:12 +00:00 by HAL9000 · 0 comments
Owner

Metadata

  • Branch: fix/tui-persona-editor-modal-missing
  • Commit Message: feat(tui): implement PersonaEditorModal for persona creation and editing
  • Milestone: v3.7.0
  • Parent Epic: #868

Bug Report

What Was Tested

Source code inspection of src/cleveragents/tui/app.py, src/cleveragents/tui/commands.py, src/cleveragents/tui/persona/, and the entire src/cleveragents/tui/ directory tree.

Expected Behavior (from spec)

Per the specification (§TUI > Modals), a PersonaEditorModal must exist as a proper Textual Screen (modal) subclass. It must be used for persona CRUD operations — creating new personas and editing existing ones. The modal should be triggered by /persona:create and /persona:edit commands.

Actual Behavior

  • No PersonaEditorModal class exists anywhere in src/cleveragents/tui/.
  • The src/cleveragents/tui/persona/ directory contains only __init__.py, registry.py, schema.py, and state.py — no modal or screen files.
  • The TuiCommandRouter.handle() method in commands.py handles /persona:list and /persona:set but does not push any modal for /persona:create or /persona:edit.
  • There is no screens/ or modals/ directory under src/cleveragents/tui/.

Steps to Reproduce

  1. Inspect src/cleveragents/tui/persona/ — no modal files exist.
  2. Search the entire src/cleveragents/tui/ tree for any file defining PersonaEditorModal — none found.
  3. Launch the TUI and type /persona:create or /persona:edit <name> — no modal appears.

Impact

Users cannot create or edit personas through the TUI modal interface. Persona management is limited to listing and switching, with no ability to create or modify personas interactively.

Subtasks

  • Create src/cleveragents/tui/screens/persona_editor_modal.py with a PersonaEditorModal class that subclasses textual.app.Screen (as a modal)
  • PersonaEditorModal must support both creation (new persona) and editing (existing persona) modes
  • Wire /persona:create in TuiCommandRouter.handle() to push PersonaEditorModal in creation mode
  • Wire /persona:edit <name> in TuiCommandRouter.handle() to push PersonaEditorModal in edit mode with the persona loaded
  • Tests (Behave): Add TDD scenario tagged @tdd_issue, @tdd_expected_fail asserting /persona:create pushes PersonaEditorModal
  • Tests (Behave): Add TDD scenario tagged @tdd_issue, @tdd_expected_fail asserting /persona:edit pushes PersonaEditorModal
  • Remove @tdd_expected_fail once implemented and verify scenarios pass
  • Verify coverage >= 97% via nox -s coverage_report
  • Run nox (all default sessions), fix any errors

Definition of Done

  • PersonaEditorModal exists as a proper Textual Screen (modal) subclass
  • /persona:create pushes PersonaEditorModal in creation mode
  • /persona:edit <name> pushes PersonaEditorModal in edit mode
  • Both TDD scenarios pass without @tdd_expected_fail
  • All nox stages pass
  • Coverage >= 97%
  • 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 - **Branch**: `fix/tui-persona-editor-modal-missing` - **Commit Message**: `feat(tui): implement PersonaEditorModal for persona creation and editing` - **Milestone**: v3.7.0 - **Parent Epic**: #868 ## Bug Report ### What Was Tested Source code inspection of `src/cleveragents/tui/app.py`, `src/cleveragents/tui/commands.py`, `src/cleveragents/tui/persona/`, and the entire `src/cleveragents/tui/` directory tree. ### Expected Behavior (from spec) Per the specification (§TUI > Modals), a `PersonaEditorModal` must exist as a proper Textual `Screen` (modal) subclass. It must be used for persona CRUD operations — creating new personas and editing existing ones. The modal should be triggered by `/persona:create` and `/persona:edit` commands. ### Actual Behavior - No `PersonaEditorModal` class exists anywhere in `src/cleveragents/tui/`. - The `src/cleveragents/tui/persona/` directory contains only `__init__.py`, `registry.py`, `schema.py`, and `state.py` — no modal or screen files. - The `TuiCommandRouter.handle()` method in `commands.py` handles `/persona:list` and `/persona:set` but does not push any modal for `/persona:create` or `/persona:edit`. - There is no `screens/` or `modals/` directory under `src/cleveragents/tui/`. ### Steps to Reproduce 1. Inspect `src/cleveragents/tui/persona/` — no modal files exist. 2. Search the entire `src/cleveragents/tui/` tree for any file defining `PersonaEditorModal` — none found. 3. Launch the TUI and type `/persona:create` or `/persona:edit <name>` — no modal appears. ### Impact Users cannot create or edit personas through the TUI modal interface. Persona management is limited to listing and switching, with no ability to create or modify personas interactively. ## Subtasks - [ ] Create `src/cleveragents/tui/screens/persona_editor_modal.py` with a `PersonaEditorModal` class that subclasses `textual.app.Screen` (as a modal) - [ ] `PersonaEditorModal` must support both creation (new persona) and editing (existing persona) modes - [ ] Wire `/persona:create` in `TuiCommandRouter.handle()` to push `PersonaEditorModal` in creation mode - [ ] Wire `/persona:edit <name>` in `TuiCommandRouter.handle()` to push `PersonaEditorModal` in edit mode with the persona loaded - [ ] Tests (Behave): Add TDD scenario tagged `@tdd_issue`, `@tdd_expected_fail` asserting `/persona:create` pushes `PersonaEditorModal` - [ ] Tests (Behave): Add TDD scenario tagged `@tdd_issue`, `@tdd_expected_fail` asserting `/persona:edit` pushes `PersonaEditorModal` - [ ] Remove `@tdd_expected_fail` once implemented and verify scenarios pass - [ ] Verify coverage >= 97% via `nox -s coverage_report` - [ ] Run `nox` (all default sessions), fix any errors ## Definition of Done - [ ] `PersonaEditorModal` exists as a proper Textual `Screen` (modal) subclass - [ ] `/persona:create` pushes `PersonaEditorModal` in creation mode - [ ] `/persona:edit <name>` pushes `PersonaEditorModal` in edit mode - [ ] Both TDD scenarios pass without `@tdd_expected_fail` - [ ] All nox stages pass - [ ] Coverage >= 97% - 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#10476
No description provided.