todo-31-runtime-persistence.md 961 B

Todo 31: Runtime Persistence

Status

done

Goal

Persist live WebSocket runtime data into the SQLite session store so completed turns can be replayed through the REST APIs.

Scope

  • Add an optional session_id to DebugRunRequest.
  • Let the WebSocket runtime create or reuse a persisted session.
  • Persist Agent config snapshots when a session is created or reused.
  • Persist user and assistant messages for each turn.
  • Persist audit entries with turn and round indexes.
  • Persist one usage row per ChatAgent model call.
  • Continue turn indexes for an existing persisted session.

Verification

  • Runtime tests prove session creation, turn/message persistence, audit rows, usage rows, and existing-session turn indexes.
  • Existing queue, audit, WebSocket, and store tests still pass.
  • uv run pytest tests/test_sqlite_store.py tests/test_debug_runtime.py tests/test_websocket_api.py -q passes: 55 tests.
  • uv run pytest passes: 66 tests.