UAT: TUI Persona schema missing spec-required fields — theme, hotkey_bindings, layout_configuration, and automation_profile fields absent #3044

Open
opened 2026-04-05 04:15:06 +00:00 by freemo · 1 comment
Owner

Metadata

  • Branch: fix/tui-persona-schema-missing-fields
  • Commit Message: fix(tui): add theme, hotkey_bindings, layout_configuration, and automation_profile fields to Persona schema
  • Milestone: v3.7.0
  • Parent Epic: #868

Background and Context

The spec defines a Persona as a named collection of settings that includes:

  • Theme and Styling: A reference to a theme that defines the color palette and styles for all UI components
  • Hotkey Bindings: A set of custom hotkey mappings that override the default key bindings
  • Layout Configuration: Pre-defined layouts that arrange and show/hide different UI panels and widgets
  • Default Actors: Default strategy and execution actors to be used when creating new plans
  • Automation Profile: A default automation profile that governs the level of autonomy for plans initiated under that persona

Current Behavior

The Persona schema in src/cleveragents/tui/persona/schema.py (lines 20–83) only defines these fields:

  • name, description, icon, actor, color, base_arguments, scoped_projects, scoped_plans, argument_presets, cycle_order, greeting

The following spec-required fields are completely absent:

  • theme — no reference to a theme
  • hotkey_bindings — no custom hotkey mappings
  • layout_configuration — no layout configuration
  • automation_profile — no default automation profile

Additionally, the actor field covers "Default Actors" only partially — the spec mentions both strategy and execution actors, while the schema only has a single actor field.

Expected Behavior

Per docs/specification.md, the Persona schema must include:

  • theme: str | None — reference to a theme by name
  • hotkey_bindings: dict[str, str] — key → action mappings
  • layout_configuration: dict[str, Any] — layout panel/widget configuration
  • automation_profile: str | None — default automation profile name

Code Location

  • src/cleveragents/tui/persona/schema.py lines 20–83: Persona model missing theme, hotkey_bindings, layout_configuration, automation_profile fields

Subtasks

  • Add theme: str | None field to Persona schema (references a theme by name)
  • Add hotkey_bindings: dict[str, str] field to Persona schema (key → action mappings)
  • Add layout_configuration: dict[str, Any] field to Persona schema
  • Add automation_profile: str | None field to Persona schema
  • Update PersonaRegistry to handle the new fields in YAML serialization/deserialization
  • Update BDD scenarios in features/tui_persona_schema_coverage.feature to cover new fields
  • Run nox -e typecheck, fix any errors
  • Run nox -e unit_tests, fix any failures
  • Verify coverage ≥ 97% via nox -e coverage_report
  • Run nox (all default sessions), fix any errors

Definition of Done

This issue is complete when:

  • Persona schema includes all four spec-required fields (theme, hotkey_bindings, layout_configuration, automation_profile)
  • YAML serialization/deserialization works correctly for all new fields
  • BDD scenarios in features/tui_persona_schema_coverage.feature cover new field validation
  • nox -e typecheck passes with no errors
  • nox -e unit_tests passes with no failures
  • Coverage ≥ 97% (nox -e coverage_report)
  • All nox stages pass
  • A Git commit is created where the first line matches the Commit Message in Metadata exactly, with an ISSUES CLOSED: #<N> footer
  • The commit is pushed on branch fix/tui-persona-schema-missing-fields and submitted as a PR to master, reviewed, and merged before this issue is marked done

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

## Metadata - **Branch**: `fix/tui-persona-schema-missing-fields` - **Commit Message**: `fix(tui): add theme, hotkey_bindings, layout_configuration, and automation_profile fields to Persona schema` - **Milestone**: v3.7.0 - **Parent Epic**: #868 ## Background and Context The spec defines a `Persona` as a named collection of settings that includes: - **Theme and Styling**: A reference to a theme that defines the color palette and styles for all UI components - **Hotkey Bindings**: A set of custom hotkey mappings that override the default key bindings - **Layout Configuration**: Pre-defined layouts that arrange and show/hide different UI panels and widgets - **Default Actors**: Default strategy and execution actors to be used when creating new plans - **Automation Profile**: A default automation profile that governs the level of autonomy for plans initiated under that persona ## Current Behavior The `Persona` schema in `src/cleveragents/tui/persona/schema.py` (lines 20–83) only defines these fields: - `name`, `description`, `icon`, `actor`, `color`, `base_arguments`, `scoped_projects`, `scoped_plans`, `argument_presets`, `cycle_order`, `greeting` The following spec-required fields are **completely absent**: - `theme` — no reference to a theme - `hotkey_bindings` — no custom hotkey mappings - `layout_configuration` — no layout configuration - `automation_profile` — no default automation profile Additionally, the `actor` field covers "Default Actors" only partially — the spec mentions both strategy and execution actors, while the schema only has a single `actor` field. ## Expected Behavior Per `docs/specification.md`, the `Persona` schema must include: - `theme: str | None` — reference to a theme by name - `hotkey_bindings: dict[str, str]` — key → action mappings - `layout_configuration: dict[str, Any]` — layout panel/widget configuration - `automation_profile: str | None` — default automation profile name ## Code Location - `src/cleveragents/tui/persona/schema.py` lines 20–83: `Persona` model missing `theme`, `hotkey_bindings`, `layout_configuration`, `automation_profile` fields ## Subtasks - [ ] Add `theme: str | None` field to `Persona` schema (references a theme by name) - [ ] Add `hotkey_bindings: dict[str, str]` field to `Persona` schema (key → action mappings) - [ ] Add `layout_configuration: dict[str, Any]` field to `Persona` schema - [ ] Add `automation_profile: str | None` field to `Persona` schema - [ ] Update `PersonaRegistry` to handle the new fields in YAML serialization/deserialization - [ ] Update BDD scenarios in `features/tui_persona_schema_coverage.feature` to cover new fields - [ ] Run `nox -e typecheck`, fix any errors - [ ] Run `nox -e unit_tests`, fix any failures - [ ] Verify coverage ≥ 97% via `nox -e coverage_report` - [ ] Run `nox` (all default sessions), fix any errors ## Definition of Done This issue is complete when: - [ ] `Persona` schema includes all four spec-required fields (`theme`, `hotkey_bindings`, `layout_configuration`, `automation_profile`) - [ ] YAML serialization/deserialization works correctly for all new fields - [ ] BDD scenarios in `features/tui_persona_schema_coverage.feature` cover new field validation - [ ] `nox -e typecheck` passes with no errors - [ ] `nox -e unit_tests` passes with no failures - [ ] Coverage ≥ 97% (`nox -e coverage_report`) - [ ] All nox stages pass - [ ] A Git commit is created where the **first line** matches the Commit Message in Metadata exactly, with an `ISSUES CLOSED: #<N>` footer - [ ] The commit is pushed on branch `fix/tui-persona-schema-missing-fields` and submitted as a PR to `master`, reviewed, and merged before this issue is marked done --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-new-issue-creator
freemo added this to the v3.7.0 milestone 2026-04-05 04:15:26 +00:00
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#3044
No description provided.