Implement complete Mistral AI support including message formatting, tool calls with ID validation (9-char alphanumeric), streaming, file attachments, and conversation naming service. Add extensive cross-provider integration tests covering Mistral interactions with Claude, OpenAI, and Gemini, including round-trip conversions, ID validation, and mixed conversation handling. Update all test fixtures to include Mistral API keys.
Expand wiki-link documentation with format rules for subdirectories, headings, and aliases. Include a comparison table showing common mistakes and correct usage to prevent folder path errors and improve link readability.
Enable PatchVaultFile to apply multiple patches in a single operation by converting oldContent and newContent from strings to arrays. Add whitespace-flexible regex matching as fallback when exact string matching fails, improving robustness for code with varying indentation. Update schemas, tool definitions, and all tests to reflect the new array-based API.
- Add execution agent context retention across plan steps
- Require atomic per-file enumeration for batch operations
- Pass user intent faithfully without pre-filtering
- Persist execution agent instance across orchestration steps
- Remove user instruction from planning/orchestration agents
- Add anti-pattern documentation for vague goal steps
- Clarify when to use read steps vs inline context
Update @anthropic-ai/sdk from 0.74.0 to 0.78.0, @google/genai from 1.41.0 to 1.42.0, and dev dependencies @types/node, happy-dom, and svelte-check to their latest patch versions.
Update Svelte from 5.51.2 to 5.53.0, upgrade various dependencies including @google/genai, @types/node, acorn, entities, and happy-dom. Add minimatch override to >=10.2.1 for security. Remove duplicate nested dependency declarations for brace-expansion, minimatch, and concat-map.
Replace the single Replan tool with three targeted alternatives:
ReviseStep, RevisePlan, and SkipStep. This gives the orchestration
agent more precise control over plan recovery — revising only the
current step, replacing all remaining steps, or skipping a step
entirely — rather than triggering a full replan each time.
Also give the orchestration agent read access to vault files so it
can resolve execution failures without routing back to the planning
agent, and update the execution agent prompt to stop it from
attempting self-recovery (gap resolution is now the orchestrator's
responsibility).
- Calculate step position relative to scroll container for accurate centering
- Add flex-shrink: 0 to spinner to prevent unwanted shrinking
- Pass alternateBackground prop to active step spinner
Enhance AI agent prompts to pass exploration findings as step context rather than creating redundant discovery steps. Add recovery guidelines for execution agent to handle minor gaps without replanning. Clarify replan context requirements for orchestration layer.
- Add toggleAll function to select/deselect all conversations
- Restructure layout using CSS grid for better alignment
- Add header row with column labels (Date, Title) and select-all checkbox
- Improve text overflow handling with min-width
- Update TypeScript ESLint packages to 8.56.0
Emit tool call start events immediately when tools begin execution,
allowing UI to display contextual "thinking" messages (e.g., "Generating
note contents..." for WriteVaultFile) before tool completion. Add
Spinner to ThoughtIndicator component for visual feedback during tool
operations.
Add getMimeType method mock to all Attachment test objects across AI service tests (Claude, Gemini, OpenAI) and mock StringTools.resizeB64Image in BaseAIFileService tests to prevent browser environment issues.
Migrate attachment storage from base64-in-JSON to separate binary files with SHA-256 naming, add automatic garbage collection, implement lazy loading via getBase64() and getMimeType() methods, normalize text MIME types, add image resizing, and update all AI provider integrations. Fix small issue that caused the chat area to scroll down on message streaming end even when scrolled up.
Replace two-agent description with three-agent architecture
(planning, orchestration, execution). Document the orchestration
agent's role in monitoring progress, replanning, and passing
context between steps.
- Rename toolDefinitions to aiFunctionDefinitions across all AI classes
- Add aiFunctionUsageMode property to control function calling behavior
- Implement provider-specific tool_choice/tool_config based on usage mode
- Remove AIController and create BaseAgent base class
- Update ExecutionPrompt with scope of execution guidelines
- Simplify ChatArea layout update logic by removing debounce
- Add naming service completion wait in ChatService
- Replace console.warn with Exception.warn in InputService
- Delete unused AIController.ts file
- Update all tests to use new aiFunctionDefinitions property
- Add horizontal margin to conversation divider in TopBar
- Adjust grid row sizing in conversation history modal
- Remove margin from modals on mobile screens (≤600px)
- Reduce bottom margin for diff mobile controls
- Remove redundant background styling from diff button container
- Fix diff view height calculation on mobile to avoid control overlap
- Remove isObserver parameter from updateChatAreaLayout
- Extract layout calculation logic into separate applyLayout function
- Add resetAutoScroll export to re-enable auto-scrolling
- Clear layoutUpdateTimeout when debounce is interrupted
- Simplify conditional logic for instant vs debounced updates
- Call resetAutoScroll when submitting new message
- Rename AIControllerService to MainAgent throughout test files
- Move AIFunctionService to AIServices directory
- Update service registration from AIControllerService to MainAgent
- Add agentType parameter to mock AI configuration
- Add resolveAIProvider method to mock service
- Update test comments to reflect orchestration agent workflow
- Remove planning/execution agent-specific tests in favor of integration tests
- Consolidate agent loop tests into main test suite
Replace legacy radius vars (--modal-radius, --button-radius, --input-radius) with standardized tokens (--radius-l, --radius-m). Add margins to modals and top bar divider for better spacing. Fix mobile diff view bottom margin to avoid Obsidian controls overlap.
- Expand SystemPrompt wiki-link guidance with examples and common mistakes
- Add ResizeObserver to ChatPlanArea for dynamic height adjustments
- Improve plan completion summary prompt with more context requirements
Update AskUserQuestionExecution function definition and ExecutionPrompt to provide clearer guidance on when to ask users vs. report outcomes. Emphasizes resolving ambiguity at discovery point rather than passing uncertain outcomes to orchestrator.
- Remove unused agentExecutionDefinitions and gatedDefinitions methods
- Delete obsolete CreatePlan.ts (replaced by ExecuteWorkflow.ts)
- Rename PlanningAgentSystemPrompt to PlanningPrompt for consistency
- Fix orchestration agent promise returns and replan flag handling
- Make saveConversation calls async throughout AIController
- Simplify vault cache delete event handling
- Change debug logging from console.log to console.debug
- Fix function name references in execution and main agents
Restructure all AI function descriptions to use consistent "Call this function:" and "Do NOT use this function:" sections for improved clarity and scannability.