Add comprehensive documentation for the Obsidian Bases core plugin including file structure, property namespaces, filter syntax, formula syntax, view configuration, and usage guidelines.
Update Spinner and ThoughtIndicator components to use --background-primary instead of --background-secondary and --background-primary-alt for visual consistency across the UI.
Separate UI state (userInstructionAreaActive) from content state
(userInstructionActive). Add dynamic check for non-empty user instruction
to update button highlight indicator based on actual content.
Remove version numbers from Mistral model enum names (MistralLarge_3 → MistralLarge, MistralMedium_3_1 → MistralMedium, MistralSmall_3_2 → MistralSmall) and update display text to indicate "latest" versions. This aligns naming with the underlying "latest" API endpoints and improves maintainability.
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