Add standalone sessions with a shared profile, continuous JSONL history, and persistent work/tmp directories. Reuse frontend preset assembly and the existing model/tool loop with explicit Chat and Session targets.
Validation: pnpm run check
Route /fix through the existing resume lifecycle and revise the last reply's selected swipe from its current saved text. Preserve manual edits, support command cancellation, and keep persistent metadata on the bound message.
- add Agent Profile domain models, file repository, resolver, and management commands
- resolve profiles before run creation and persist resolved_profile.json in run inputs
- drive tools, skills, workspace roots, output artifacts, rounds, and budgets from profiles
- support agentSystemPrompt replacement and model-facing tool description overrides
- enforce profile tool policy and skill read budgets at runtime
- Add file-backed Skill storage with import preview, install, export, source refs, and safe file reads
- Expose the Skill Host API and embedded Preset/Character Skill import prompts
- Register skill.list and skill.read in the Agent tool loop
- Cover archive roundtrips, source cleanup, symlink safety, and API contracts
- Refresh Agent docs around the current Skill capability boundary
- Add run-scoped provider_state for Agent model calls, including
session tracking, message cursors, native continuation metadata, and
OpenAI Responses previous_response_id handling.
- Route OpenAI Responses through WebSocket sessions with incremental
Agent inputs, strip internal provider state from upstream/log payloads,
and persist per-round model responses for diagnostics.
- Document the current Custom OpenAI Responses and Agent provider_state
contracts, replacing stale phase-oriented notes with current behavior.
- Route Agent model calls through canonical request and response IR
- Add ChatCompletionExchange for typed normalized responses without splitting legacy generation
- Preserve provider-native metadata for Claude, Gemini, Responses, and Interactions
- Harden tool call ID handling and provider-specific schema adaptation
- Update Agent architecture docs for Phase 2D contracts and follow-up work
Add read-only Agent tools for inspecting current chat context and
run-scoped World Info activation.
- Register chat_search, chat_read_messages, and worldinfo_read_activated
- Add message-indexed JSONL readers for character and group chats
- Return chat search snippets with stable message refs instead of full text
- Capture dry-run World Info activation in Agent prompt snapshots
- Keep World Info tool output focused on entry name, lorebook, and content
- Wire context tools through the existing registry, dispatcher, journal, and tool result flow
- Add coverage for chat message reads, chat search dispatch, and activated World Info reads
- Add workspace list, read, write, patch, and finish tool support
- Track full-read state before applying precise workspace patches
- Persist tool arguments/results and checkpoint workspace mutations
- Return recoverable tool errors to the model for self-correction
- Raise agent tool loop limit to support longer multi-step runs
- Update Agent docs and Host ABI notes for the Phase 2B baseline
- Introduce the Agent domain model, run/workspace/checkpoint repositories,
and a file-backed workspace store with event journaling.
- Wire the runtime service into Tauri commands and expose the frontend Agent
API for starting, observing, cancelling, reading, and committing runs.
- Derive workspaces from stable chat identity while keeping each run isolated,
and make unsupported Phase 1 paths fail fast.
- Document the Agent architecture, API contract, workspace model, LLM gateway,
tool/MCP boundaries, and implementation plan.