# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Planned

- **Persona Hot-Swap**: Planning for runtime persona switching capability. The `ctl_switch_persona` tool is planned to allow an agent to change its persona mid-session while preserving conversation history, turn counters, token accounting, and MCP server state. **Not yet implemented.**

  **Planned behavior:**
  - Persona would no longer be immutable for running daemon agents
  - New control tool: `ctl_switch_persona(persona_ref)` (planned)
  - Persona switch would be applied at the next turn boundary (cooperative, not immediate)
  - Conversation history would be preserved across persona switches
  - Only one pending persona switch would be allowed at a time

  **Documentation:**
  - See [docs/INTERFACES.md Section D.5](./docs/INTERFACES.md#d5-ctl_switch_personapersona_ref) for planned API reference
  - See [docs/DESIGN.md Section 8](./docs/DESIGN.md#8-persona-runtime-switchability) for architecture planning

## [0.1.0] - 2026-03-01

### Added

- Initial release of anima CLI agent runner
- Agent lifecycle management: run, spawn, chat, daemon modes
- MCP server interface for status, interaction, and interruption
- Built-in control tools: `ctl_finish`, `ctl_fail`, `ctl_request_approval`, `ctl_suspend_until`, `ctl_spawn_subagent`
- Budget enforcement with grace finalization
- State persistence in `$ANIMA_STATE` (default `~/.anima/`)
- Interactive `talk` command with SSE streaming support
- PersonaSpec JSON schema for agent configuration
- JobSpec JSON schema for job configuration

[Unreleased]: https://github.com/yourorg/anima/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/yourorg/anima/releases/tag/v0.1.0
