Expand description
Session lifecycle — create, resume, list, delete. KodaSession — per-conversation state.
Holds mutable, per-turn state: database handle, session ID, provider instance, approval mode, and cancellation token. Instantiable N times for parallel sub-agents or cowork mode.
§Architecture
KodaAgent (shared, immutable)
├─ tools, system prompt, project root
└─ shared via Arc across sessions
KodaSession (per-conversation, mutable)
├─ database handle (SQLite)
├─ session_id (UUID)
├─ provider instance
├─ trust mode (plan/safe/auto)
└─ cancellation tokenThis split allows the same agent to power multiple concurrent sessions (e.g., main REPL + background sub-agents) without shared mutable state.
Structs§
- Koda
Session - A single conversation session with its own state.