UAT: TUI Persona Editor Modal entirely absent — spec requires full-screen modal for creating, editing, and deleting personas with theme, hotkey, and default settings configuration #2984

Open
opened 2026-04-05 03:08:10 +00:00 by freemo · 2 comments
Owner

Metadata

  • Branch: feat/tui-persona-editor-modal
  • Commit Message: feat(tui): implement Persona Editor Modal for full persona management UI
  • Milestone: v3.7.0
  • Parent Epic: #868

Background and context

The specification defines a Persona Editor as a full-screen modal that allows users to create, edit, and delete personas. It provides a user-friendly interface for configuring all aspects of a persona, including theme, hotkeys, and default settings. Personas are defined in YAML files and can be managed through the Persona Editor Modal (per ADR-045, Persona System).

While the persona registry backend (src/cleveragents/tui/persona/registry.py) and schema (src/cleveragents/tui/persona/schema.py) are implemented, the corresponding UI layer is entirely absent. The slash catalog advertises persona:create, persona:edit, and persona:delete commands, but none of these are wired to any modal or handler — they fall through to an "Unknown persona command" error in the command router.

Current behavior (for bugs)

The TUI command router (src/cleveragents/tui/commands.py, lines 58–67) only handles persona list and persona set. The slash catalog (src/cleveragents/tui/slash_catalog.py, lines 29–33) lists persona:create, persona:edit, and persona:delete as available commands, but invoking any of them returns:

Unknown persona command: create

No PersonaEditorModal class exists anywhere under src/cleveragents/tui/. There are no full-screen modal files for persona management.

Steps to reproduce:

  1. Launch the TUI: agents tui
  2. Type /persona:create in the prompt
  3. Observe: TUI returns "Unknown persona command: create" instead of opening the Persona Editor Modal

Expected behavior

A PersonaEditorModal Textual full-screen modal class should exist in src/cleveragents/tui/screens/persona_editor_modal.py that provides a user-friendly interface for:

  • Creating new personas (name, actor, description, icon, color)
  • Editing existing personas (all fields)
  • Deleting personas (with confirmation dialog)
  • Configuring theme selection per persona
  • Configuring hotkey bindings per persona
  • Configuring default settings (default actor, automation profile)
  • Managing argument presets

The slash commands /persona:create, /persona:edit <name>, and /persona:delete <name> must open this modal.

Acceptance criteria

  • PersonaEditorModal class exists and is accessible via /persona:create, /persona:edit, and /persona:delete slash commands
  • All persona fields (name, actor, description, icon, color, theme, hotkeys, default settings, argument presets) are configurable through the modal UI
  • A confirmation dialog is shown before any destructive delete action
  • BDD scenarios in features/tui_persona_editor_modal.feature cover all modal functionality (create, edit, delete, cancel, validation errors)
  • nox -e typecheck passes with no errors (no # type: ignore suppressions)
  • nox -e unit_tests passes with coverage ≥ 97%

Subtasks

  • Create src/cleveragents/tui/screens/persona_editor_modal.py with PersonaEditorModal class
  • Implement persona creation form (name, actor, description, icon, color)
  • Implement theme selection section
  • Implement hotkey binding configuration section
  • Implement default settings section (default actor, automation profile)
  • Implement argument presets management
  • Wire /persona:create, /persona:edit, /persona:delete slash commands to open the modal
  • Add confirmation dialog for persona deletion
  • Write BDD scenarios in features/tui_persona_editor_modal.feature
  • 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.
  • PersonaEditorModal class exists and is accessible via /persona:create, /persona:edit, and /persona:delete
  • All persona fields are configurable through the modal UI
  • Confirmation dialog shown for destructive delete action
  • BDD scenarios cover all modal functionality
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly (feat(tui): implement Persona Editor Modal for full persona management UI), followed by a blank line, then additional lines providing relevant details, and a footer ISSUES CLOSED: #<this issue number>.
  • The commit is pushed to the remote on branch feat/tui-persona-editor-modal.
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.
  • nox -e typecheck passes
  • nox -e unit_tests passes
  • Coverage ≥ 97%

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: ca-new-issue-creator

## Metadata - **Branch**: `feat/tui-persona-editor-modal` - **Commit Message**: `feat(tui): implement Persona Editor Modal for full persona management UI` - **Milestone**: v3.7.0 - **Parent Epic**: #868 ## Background and context The specification defines a Persona Editor as a full-screen modal that allows users to create, edit, and delete personas. It provides a user-friendly interface for configuring all aspects of a persona, including theme, hotkeys, and default settings. Personas are defined in YAML files and can be managed through the Persona Editor Modal (per ADR-045, Persona System). While the persona registry backend (`src/cleveragents/tui/persona/registry.py`) and schema (`src/cleveragents/tui/persona/schema.py`) are implemented, the corresponding UI layer is entirely absent. The slash catalog advertises `persona:create`, `persona:edit`, and `persona:delete` commands, but none of these are wired to any modal or handler — they fall through to an "Unknown persona command" error in the command router. ## Current behavior (for bugs) The TUI command router (`src/cleveragents/tui/commands.py`, lines 58–67) only handles `persona list` and `persona set`. The slash catalog (`src/cleveragents/tui/slash_catalog.py`, lines 29–33) lists `persona:create`, `persona:edit`, and `persona:delete` as available commands, but invoking any of them returns: > `Unknown persona command: create` No `PersonaEditorModal` class exists anywhere under `src/cleveragents/tui/`. There are no full-screen modal files for persona management. **Steps to reproduce:** 1. Launch the TUI: `agents tui` 2. Type `/persona:create` in the prompt 3. Observe: TUI returns `"Unknown persona command: create"` instead of opening the Persona Editor Modal ## Expected behavior A `PersonaEditorModal` Textual full-screen modal class should exist in `src/cleveragents/tui/screens/persona_editor_modal.py` that provides a user-friendly interface for: - Creating new personas (name, actor, description, icon, color) - Editing existing personas (all fields) - Deleting personas (with confirmation dialog) - Configuring theme selection per persona - Configuring hotkey bindings per persona - Configuring default settings (default actor, automation profile) - Managing argument presets The slash commands `/persona:create`, `/persona:edit <name>`, and `/persona:delete <name>` must open this modal. ## Acceptance criteria - `PersonaEditorModal` class exists and is accessible via `/persona:create`, `/persona:edit`, and `/persona:delete` slash commands - All persona fields (name, actor, description, icon, color, theme, hotkeys, default settings, argument presets) are configurable through the modal UI - A confirmation dialog is shown before any destructive delete action - BDD scenarios in `features/tui_persona_editor_modal.feature` cover all modal functionality (create, edit, delete, cancel, validation errors) - `nox -e typecheck` passes with no errors (no `# type: ignore` suppressions) - `nox -e unit_tests` passes with coverage ≥ 97% ## Subtasks - [ ] Create `src/cleveragents/tui/screens/persona_editor_modal.py` with `PersonaEditorModal` class - [ ] Implement persona creation form (name, actor, description, icon, color) - [ ] Implement theme selection section - [ ] Implement hotkey binding configuration section - [ ] Implement default settings section (default actor, automation profile) - [ ] Implement argument presets management - [ ] Wire `/persona:create`, `/persona:edit`, `/persona:delete` slash commands to open the modal - [ ] Add confirmation dialog for persona deletion - [ ] Write BDD scenarios in `features/tui_persona_editor_modal.feature` - [ ] 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. - `PersonaEditorModal` class exists and is accessible via `/persona:create`, `/persona:edit`, and `/persona:delete` - All persona fields are configurable through the modal UI - Confirmation dialog shown for destructive delete action - BDD scenarios cover all modal functionality - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly (`feat(tui): implement Persona Editor Modal for full persona management UI`), followed by a blank line, then additional lines providing relevant details, and a footer `ISSUES CLOSED: #<this issue number>`. - The commit is pushed to the remote on branch `feat/tui-persona-editor-modal`. - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done. - `nox -e typecheck` passes - `nox -e unit_tests` passes - Coverage ≥ 97% --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-new-issue-creator
freemo added this to the v3.7.0 milestone 2026-04-05 03:09:23 +00:00
Author
Owner

Label compliance fix applied:

  • Added missing labels: Priority/High, State/Unverified, Type/Bug
  • Reason: Issue was missing all required labels per CONTRIBUTING.md. Inferred Type/Bug from the "UAT:" prefix. Applied Priority/High (TUI modal entirely absent is high severity) and State/Unverified as defaults.

Automated by CleverAgents Bot
Supervisor: Backlog Grooming | Agent: ca-backlog-groomer

Label compliance fix applied: - Added missing labels: `Priority/High`, `State/Unverified`, `Type/Bug` - Reason: Issue was missing all required labels per CONTRIBUTING.md. Inferred `Type/Bug` from the "UAT:" prefix. Applied `Priority/High` (TUI modal entirely absent is high severity) and `State/Unverified` as defaults. --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: ca-backlog-groomer
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: Confirmed
  • MoSCoW: Should Have

Valid finding verified during batch triage.


Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: ca-project-owner

Issue triaged by project owner: - **State**: Verified - **Priority**: Confirmed - **MoSCoW**: Should Have Valid finding verified during batch triage. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
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#2984
No description provided.