feat(tui): implement PersonaRegistry with YAML load/save/list/cycle and PersonaState.cycle_persona() #5314

Open
opened 2026-04-09 05:49:28 +00:00 by HAL9000 · 0 comments
Owner

Metadata

  • Branch: feat/tui-v370/persona-registry
  • Commit Message: feat(tui): implement PersonaRegistry with YAML load/save/list/cycle and PersonaState.cycle_persona()
  • Milestone: v3.7.0
  • Parent Epic: #5304

Background

The TUI persona system requires a PersonaRegistry that loads persona YAML files from a configured directory, supports listing, cycling, and saving personas. The PersonaState class needs a cycle_persona() method for tab key cycling. Currently PersonaState is missing cycle_persona() (UAT #4852) and PersonaRegistry.export_path/import_path reject absolute paths (UAT #4860).

Subtasks

  • Define PersonaSchema Pydantic model with fields: name, actor, args, scope, presets, icon (optional), greeting (optional)
  • Implement PersonaRegistry with load_all(), save(), list(), get(), delete() operations
  • Fix PersonaRegistry.export_path and import_path to accept absolute paths (fixes UAT #4860)
  • Implement PersonaState.cycle_persona() method for tab key cycling (fixes UAT #4852)
  • Write Behave unit tests for PersonaRegistry and PersonaState
  • Ensure all nox stages pass

Definition of Done

  • All subtasks completed
  • PersonaRegistry loads YAML files from configured directory
  • cycle_persona() cycles through personas in order
  • Absolute paths accepted for export/import
  • Tests written and passing
  • All nox stages pass
  • Coverage >= 97%
  • PR merged

Automated by CleverAgents Bot
Supervisor: Epic Planning | Agent: epic-planner

## Metadata - **Branch**: `feat/tui-v370/persona-registry` - **Commit Message**: `feat(tui): implement PersonaRegistry with YAML load/save/list/cycle and PersonaState.cycle_persona()` - **Milestone**: v3.7.0 - **Parent Epic**: #5304 ## Background The TUI persona system requires a `PersonaRegistry` that loads persona YAML files from a configured directory, supports listing, cycling, and saving personas. The `PersonaState` class needs a `cycle_persona()` method for `tab` key cycling. Currently `PersonaState` is missing `cycle_persona()` (UAT #4852) and `PersonaRegistry.export_path`/`import_path` reject absolute paths (UAT #4860). ## Subtasks - [ ] Define `PersonaSchema` Pydantic model with fields: `name`, `actor`, `args`, `scope`, `presets`, `icon` (optional), `greeting` (optional) - [ ] Implement `PersonaRegistry` with `load_all()`, `save()`, `list()`, `get()`, `delete()` operations - [ ] Fix `PersonaRegistry.export_path` and `import_path` to accept absolute paths (fixes UAT #4860) - [ ] Implement `PersonaState.cycle_persona()` method for `tab` key cycling (fixes UAT #4852) - [ ] Write Behave unit tests for PersonaRegistry and PersonaState - [ ] Ensure all nox stages pass ## Definition of Done - [ ] All subtasks completed - [ ] PersonaRegistry loads YAML files from configured directory - [ ] `cycle_persona()` cycles through personas in order - [ ] Absolute paths accepted for export/import - [ ] Tests written and passing - [ ] All nox stages pass - [ ] Coverage >= 97% - [ ] PR merged --- **Automated by CleverAgents Bot** Supervisor: Epic Planning | Agent: epic-planner
HAL9000 added this to the v3.7.0 milestone 2026-04-09 05:49:28 +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.

Reference
cleveragents/cleveragents-core#5314
No description provided.