Releases: allenhutchison/obsidian-gemini
✨ Gemini Scribe 4.8 - Scheduled & Background Tasks, Ollama, Activity Modal
Highlights
- ⏰ Scheduled tasks — run agent tasks on a cron, time-of-day, or day-of-week schedule with full management UI
- 🌙 Missed-run catch-up — tasks that should have run while Obsidian was closed surface on startup for review
- 🛰️ Background tasks — deep research and image generation now run in the background with output consolidated under
[state-folder]/Background-Tasks/ - 📊 Unified activity modal — Background Tasks and RAG status share a single tabbed view
- 🦙 Ollama provider — point the plugin at a local Ollama server for offline, local-model chat
- 🛑 Runaway-loop abort — repeated tool-loop detections within a turn now abort the turn with a clear notice instead of churning
- 🧪 Eval harness — new harness for agent-loop changes with multi-hop retrieval, loop-trap tasks, pass^k reliability, and per-run model overrides
- 📱 Mobile fixes — agent view layout on iOS and CatchUpModal now opens directly on mobile
- 🛠️ Headless agent loop —
AgentLoopextracted from the agent view so scheduled and background runners share the same execution engine
Details
This release introduces scheduled tasks: define agent tasks with cron, time-of-day, or day-of-week schedules and manage them with a dedicated UI. If Obsidian was closed when a run was due, a catch-up modal surfaces missed runs on startup. Long-running operations like deep research and image generation now run as background tasks, with all their output consolidated under [state-folder]/Background-Tasks/, and a unified activity modal gives you a single place to monitor background work alongside RAG indexing status. Ollama joins as a provider option for fully local chat. The runaway-loop detector now escalates to a per-turn abort with a user-visible notice. Under the hood, AgentLoop has been extracted so scheduled and background runners share the same engine as the UI, and a new eval harness with multi-hop, loop-trap, and pass^k reliability checks helps verify agent-loop changes. Includes mobile fixes for iOS layout and the catch-up modal, plus a migration of the test runner from ts-jest to Vitest.
What's Changed
- Fix WikiLink rendering by unescaping backticks and backslashes by @allenhutchison in #575
- Auto-scope semantic search to project root when available by @allenhutchison in #579
- Add skill picker modal with slash command activation by @allenhutchison in #577
- Add project filtering to session list modal by @allenhutchison in #578
- Add four new bundled skills: deep-research, image-generation, vault-semantic-search, recall-sessions by @allenhutchison in #580
- Add retry logic with API-provided delays and quota exhaustion detection by @allenhutchison in #581
- Add file-based logging alongside console output (#465) by @allenhutchison in #584
- perf: Add lightweight session metadata query to avoid full hydration (#505) by @allenhutchison in #583
- Refactor: Extract tool display and follow-up from agent-view-tools.ts (#512) by @allenhutchison in #582
- Refactor RAG indexing service with composition pattern by @allenhutchison in #590
- Refactor AgentView: Extract send and attachments logic into modules by @allenhutchison in #591
- Refactor: Split vault tools into modular files by @allenhutchison in #592
- Refactor settings UI into modular components by @allenhutchison in #593
- feat: Add curated models.json and GitHub Action for model updates by @allenhutchison in #595
- Always save RAG store name setting, add feedback for cleared value by @allenhutchison in #602
- fix: Image model replaced by text model during discovery by @allenhutchison in #594
- fix: Format and validate auto-generated model update PRs by @allenhutchison in #608
- Replace InstanceType with type imports for ObsidianGemini by @allenhutchison in #606
- Fix race condition in temperature/topP slider validation (issue #601) by @allenhutchison in #605
- Add error handling for dynamic modal imports in settings by @allenhutchison in #603
- Debounce settings saves to prevent excessive plugin lifecycle runs by @allenhutchison in #604
- refactor: Replace model discovery with curated JSON model list by @allenhutchison in #596
- chore: Update available Gemini models by @github-actions[bot] in #609
- docs: Add FAQ entries for provider and model support questions by @allenhutchison in #610
- fix: Type-check test files in CI and fix hidden type errors by @allenhutchison in #612
- docs: Link bundled skills blog post from agent-skills guide by @allenhutchison in #617
- chore(deps): bump peter-evans/create-pull-request from 7 to 8 by @dependabot[bot] in #615
- chore(deps-dev): bump the dev-dependencies group with 3 updates by @dependabot[bot] in #616
- docs: Explain language handling and localization in FAQ by @allenhutchison in #614
- fix: Stabilize system prompt for Gemini implicit caching by @allenhutchison in #624
- feat: Surface Gemini cached-token metrics in UI and debug logs by @allenhutchison in #625
- feat: Implement dynamic selection prompts and UI refinements by @allenhutchison in #628
- fix: correct Agent Mode documentation link path by @JayadityaGit in #639
- fix: update documentation URLs to Vite site by @allenhutchison in #640
- Feat/background task infrastructure by @saheersk in #637
- chore: Upgrade GitHub Actions to Node.js 24.x by @JayadityaGit in #644
- chore(deps): bump hono from 4.12.12 to 4.12.14 by @dependabot[bot] in #642
- chore: Update available Gemini models by @github-actions[bot] in #626
- fix: point ModelListProvider remote URL at master branch by @allenhutchison in #646
- chore(deps): bump protobufjs from 7.5.4 to 7.5.5 by @dependabot[bot] in #647
- fix: Clear shelf when creating or loading agent session (#648) by @allenhutchison in #649
- chore(deps-dev): bump the dev-dependencies group with 4 updates by @dependabot[bot] in #654
- chore(deps): bump actions/upload-pages-artifact from 4 to 5 by @dependabot[bot] in #653
- fix: preserve editor selection for get_workspace_state (#542) by @allenhutchison in #655
- Feat/background tool mode by @saheersk in #651
- refactor: extract AgentLoop from AgentViewTools for headless reuse by @allenhutchison in #665
- fix: pre-resolve generate_image background output_path by @allenhutchison in #666
- fix: normalize list_files path to handle trailing slashes by @allenhutchison in #669
- fix: mobile agent view layout on iOS (#668) by @allenhutchison in #671
- refactor: require confirmationProvider on ToolExecutionEngine by @allenhutchison in #672
- test: regression test for recall_sessions matching deleted-file refs by @allenhutchison in #673
- feat: abort runaway tool loops via per-turn detector escalation by @allenhutchison in #675
- feat: scheduled task engine — manager, markdown storage, headless ru… by @saheersk in #650
- fix: add confirmationProvider to ScheduledTaskRunner by @allenhutchison in #682
- feat: Add eval harness for agent-loop changes by @allenhutchison in #676
- chore(deps-dev): bump postcss from 8.5.6 to 8.5.10 by @dependabot[bot] in https://github.com/allen...
✨ Gemini Scribe 4.7 - Projects, Session Memory & File Shelf
Highlights
- 📂 Projects — scope agent sessions to a folder with custom instructions and tool/skill overrides
- 🧠 Session recall — the agent can search past conversations for relevant context
- 📎 File context shelf — unified drag-and-drop bar replaces the old context panel
- 📝 Diff review view — write and edit operations show a side-by-side diff before applying
- 📦 Bundled skills — built-in help and Obsidian knowledge skills, auto-generated from docs
- 📄 Binary file awareness — agent tools can read images, audio, video, and PDFs directly
- 🏗️ Layered prompt architecture — system prompts refactored into composable Handlebars sections
- ⚡ Strict TypeScript checks — property initialization and unused variable enforcement
Details
This release introduces Projects, letting you scope agent sessions to a folder with custom instructions, permission overrides, and skill filters. Session recall gives the agent memory across conversations — it can search past sessions for relevant context. The new file context shelf replaces the old context panel with a compact drag-and-drop bar that auto-expands folder contents. Write and edit tool calls now show a diff review view so you can inspect changes before they're applied. Bundled skills ship built-in help and Obsidian knowledge that are auto-generated from the docs site at build time. Agent tools can now read binary files (images, audio, PDFs) encountered during tool execution. The prompt system has been refactored into layered Handlebars templates for better maintainability. Under the hood, a new event bus architecture decouples lifecycle hooks, and strict TypeScript checks improve code reliability.
What's Changed
- chore(deps): bump actions/checkout from 4 to 6 by @dependabot[bot] in #415
- chore(deps): bump actions/setup-node from 4 to 6 by @dependabot[bot] in #416
- chore(deps): bump actions/download-artifact from 4 to 8 by @dependabot[bot] in #417
- chore(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #418
- chore(deps-dev): bump the dev-dependencies group with 5 updates by @dependabot[bot] in #419
- fix: Align text properly after @file chips in input by @allenhutchison in #425
- chore: Enable strict unused checks and improve API key error messaging by @allenhutchison in #424
- feat: Add file diff review view for write_file tool by @allenhutchison in #432
- fix: Remove tool confirmation timeout (#429) by @allenhutchison in #433
- fix: Improve frontmatter property formatting guidance by @allenhutchison in #434
- fix: Restore previously focused tab when diff view closes by @allenhutchison in #438
- feat: Add bundled skills (gemini-scribe-help, obsidian-bases) by @allenhutchison in #439
- feat: Add binary file awareness for filesystem tools by @allenhutchison in #450
- chore(deps-dev): bump @google/genai from 1.45.0 to 1.46.0 in the dev-dependencies group by @dependabot[bot] in #451
- fix: Accumulate streaming tool calls across chunks (#441) by @allenhutchison in #445
- fix: Clear session title when creating new session by @allenhutchison in #452
- fix: Prevent header buttons from overflowing on narrow screens by @allenhutchison in #453
- docs: Update model names and add skills/ to folder tree by @allenhutchison in #454
- fix: Deprecate gemini-scribe-prompt note frontmatter by @allenhutchison in #458
- chore: Remove deprecated v4 migration infrastructure by @allenhutchison in #461
- refactor: Centralize folder initialization into FolderInitializer by @allenhutchison in #459
- chore(deps): bump picomatch by @dependabot[bot] in #464
- refactor: Extract plugin initialization into LifecycleService by @allenhutchison in #462
- chore(deps): bump brace-expansion by @dependabot[bot] in #468
- chore(deps-dev): bump handlebars from 4.7.8 to 4.7.9 by @dependabot[bot] in #467
- feat: Track all accessed files in session frontmatter by @allenhutchison in #466
- feat: Add ProjectManager for project discovery and parsing by @allenhutchison in #469
- feat: Add agent lifecycle event bus with 5 core hooks by @allenhutchison in #470
- docs: Add FAQ for Folder Notes plugin conflict by @allenhutchison in #471
- feat: Log tool execution summaries to session history by @allenhutchison in #472
- fix: read_file returns success with exists:false for missing files by @allenhutchison in #481
- fix: Merge sequential tool callouts into single block in session history by @allenhutchison in #482
- chore(deps): bump actions/configure-pages from 5 to 6 by @dependabot[bot] in #485
- chore(deps): bump actions/deploy-pages from 4 to 5 by @dependabot[bot] in #484
- refactor: Consolidate token tracking into event bus subscribers by @allenhutchison in #483
- refactor: Consolidate auto-labeling into turnEnd subscriber with improved titles by @allenhutchison in #487
- feat: Add sessionCreated and sessionLoaded lifecycle hooks by @allenhutchison in #488
- refactor: Move accessed files tracking to toolChainComplete subscriber by @allenhutchison in #489
- refactor: Consolidate history saving — single user save, remove guards by @allenhutchison in #490
- refactor: Extract event bus subscribers into dedicated files by @allenhutchison in #491
- chore(deps): Update @google/genai, @modelcontextprotocol/sdk, esbuild by @allenhutchison in #493
- fix: Skills/ rename, remove File Version, user name in history by @allenhutchison in #492
- Fix duplicate user message writes to session history by @allenhutchison in #495
- feat: Add session-project linkage with auto-detection by @allenhutchison in #494
- feat: Inject project instructions into system prompt by @allenhutchison in #497
- feat: Scope discovery tools to project root when active by @allenhutchison in #498
- feat: Add project-level skill filtering and permission overrides by @allenhutchison in #500
- feat: Add project picker, header badge, and Switch Project command by @allenhutchison in #502
- feat: Add project management commands by @allenhutchison in #503
- feat: Add recall_sessions tool for contextual session memory by @allenhutchison in #504
- docs: Update documentation for all changes since v4.6.0 by @allenhutchison in #517
- feat: Add prompt guidance for recall_sessions tool by @allenhutchison in #513
- docs: Add FAQ for reusing prompts in Agent mode by @allenhutchison in #515
- fix: Replace dynamic import('obsidian') with static import in createProject by @allenhutchison in #519
- fix: Allow typing literal @ symbol in agent chat by @allenhutchison in #514
- fix: Preserve newlines from Shift+Enter in agent chat input by @allenhutchison in #521
- fix: Project auto-detection not working on session creation by @allenhutchison in #525
- Add EditSkillTool for updating existing skills by @allenhutchison in #531
- feat: Replace get_active_file with get_workspac...
✨ Gemini Scribe 4.6 - Context Management & Tool Permissions
Highlights
- 🧠 Automatic context compaction — long conversations are summarized to stay within model limits
- 📊 Live token usage display with cached/uncached breakdown (opt-in in settings)
- 🛡️ Per-tool permission policies — configure allow, deny, or ask-every-time per tool
- 🔧 Collapsible tool activity bar — tool calls grouped into expandable sections
- 💭 Expandable thinking section replaces tooltip for model reasoning
- 📁 Fixed plugin init failure when folders already exist (Obsidian Sync)
Details
This release adds automatic context management that monitors token usage and summarizes older conversation turns when approaching model limits. A new token counter (enable in settings) shows live usage with a breakdown of cached vs new tokens, updating after each tool call.
Tool permissions can now be configured per-tool with allow/deny/ask policies. Tool calls are grouped into collapsible activity bars for cleaner chat UI, with status badges properly aligned.
The thinking model output now uses an expandable section instead of a tooltip. Also fixes a plugin initialization failure when using Obsidian Sync where folders already exist but the metadata cache isn't ready.
What's Changed
- feat: Group tool calls into collapsible activity bar by @allenhutchison in #399
- fix: Replace thinking text tooltip with expandable section by @allenhutchison in #400
- chore(deps): bump hono from 4.12.5 to 4.12.7 by @dependabot[bot] in #401
- feat: Add context management with automatic compaction and token usage display by @allenhutchison in #402
- fix: Improve token tracking reliability in context manager by @allenhutchison in #405
- feat: Add per-tool permission policy system by @allenhutchison in #404
- fix: Improve context token tracking reliability and display by @allenhutchison in #407
- Fix "Folder already exists" error on plugin init (#408) by @allenhutchison in #409
Full Changelog: 4.5.1...4.6.0
Gemini Scribe 4.5.1 - iOS Compatibility Fix
🔧 iOS Compatibility Fix
- 🍎 Fixed plugin failing to load on iOS due to Node.js module imports
This patch fixes the plugin failing to load on iOS devices. The issue was caused by Node.js module imports that are not available in the mobile environment.
What's Changed
- chore(deps-dev): bump the dev-dependencies group with 3 updates by @dependabot[bot] in #397
- Fix plugin failing to load on iOS due to Node.js module imports by @allenhutchison in #398
Full Changelog: 4.5.0...4.5.1
Gemini Scribe 4.5.0 - MCP Servers, Skills & Secure Storage
Highlights
- 🔌 [Experimental] MCP server support with HTTP transport and OAuth authentication
- 🧠 Agent skills system following the agentskills.io specification
- 📎 Unified drag-and-drop pipeline with file type classification
- 🔐 API key migrated to Obsidian SecretStorage for secure handling
- 🔍 Search box in Add Context Files modal for quick filtering
- ⚡ Default chat model changed to Flash for free API key compatibility
- 🔄 RAG indexing now starts when toggled without requiring plugin reload
- 📚 New documentation site with expanded FAQ and contributing guides
Details
This release adds experimental MCP (Model Context Protocol) server integration with HTTP transport and OAuth support, letting you connect external tools to your agent. The new agent skills system allows extensible AI capabilities following the agentskills.io spec. Your API key is now stored securely via Obsidian's SecretStorage (OS keychain). File attachments have been unified with smart classification for text, media, and binary files. The default chat model is now Flash for better compatibility with free API keys.
Minimum Obsidian version: 1.11.4
What's Changed
- feat: add VitePress documentation site by @allenhutchison in #339
- chore(deps-dev): bump the dev-dependencies group with 3 updates by @dependabot[bot] in #341
- feat: single source of truth for release notes by @allenhutchison in #340
- feat: add MCP server support by @allenhutchison in #342
- Potential fix for code scanning alert no. 1: Workflow does not contain permissions by @allenhutchison in #344
- Potential fix for code scanning alert no. 2: Workflow does not contain permissions by @allenhutchison in #345
- Potential fix for code scanning alert no. 3: Workflow does not contain permissions by @allenhutchison in #346
- Extract HTML entity decoding into utility function by @allenhutchison in #348
- Override esbuild version to 0.27.3 in Vite dependency by @allenhutchison in #350
- Add Turndown HTML-to-Markdown conversion for web fetch fallback by @allenhutchison in #349
- fix: resolve ReDoS vulnerability in table divider regex by @allenhutchison in #351
- Add Obsidian plugin development agent skill by @allenhutchison in #355
- Add code review agent skill by @allenhutchison in #356
- chore(deps-dev): bump the dev-dependencies group with 3 updates by @dependabot[bot] in #360
- chore(deps): bump qs from 6.14.1 to 6.14.2 by @dependabot[bot] in #359
- refactor: use Obsidian APIs for frontmatter manipulation by @allenhutchison in #357
- feat: Unified drag-and-drop pipeline with file classification routing by @allenhutchison in #361
- chore(deps): bump hono from 4.11.8 to 4.12.0 by @dependabot[bot] in #364
- chore(deps-dev): bump the dev-dependencies group with 3 updates by @dependabot[bot] in #365
- chore(deps): bump minimatch by @dependabot[bot] in #368
- chore(deps): bump hono from 4.12.0 to 4.12.2 by @dependabot[bot] in #367
- chore(deps-dev): bump rollup from 4.57.1 to 4.59.0 by @dependabot[bot] in #370
- chore(deps): bump hono from 4.12.2 to 4.12.3 by @dependabot[bot] in #369
- feat: Add agent skills system following agentskills.io spec by @allenhutchison in #371
- chore(deps-dev): bump the dev-dependencies group with 5 updates by @dependabot[bot] in #372
- feat: Migrate API key to Obsidian SecretStorage by @allenhutchison in #380
- chore: Add pre-push hook and clean up test warnings by @allenhutchison in #384
- feat: Add obsidian-cli agent skill for plugin debugging by @allenhutchison in #386
- docs: Add testing guide for desktop and mobile by @allenhutchison in #387
- feat: Add create-pr agent skill by @allenhutchison in #385
- fix: Start RAG indexing when toggled without requiring plugin reload by @allenhutchison in #388
- chore: Extract release process and UI/UX into agent skills by @allenhutchison in #389
- docs: Expand FAQ and improve docs site navigation by @allenhutchison in #391
- feat: Add MCP HTTP transport and OAuth support by @allenhutchison in #392
- feat: Add a search box in "Add Context Files" modal by @doherty in #379
- chore(deps): bump @hono/node-server from 1.19.9 to 1.19.10 by @dependabot[bot] in #394
- chore(deps): bump hono from 4.12.3 to 4.12.5 by @dependabot[bot] in #395
- fix: Change default chat model to Flash by @allenhutchison in #396
New Contributors
Full Changelog: 4.4.0...4.5.0
Gemini Scribe 4.4.0 - Deep Research & Quality of Life
What's New
- 🔬 Deep research migrated to gemini-utils ResearchManager
- 🛡️ Trusted Mode with extended vault tools
- 🔤 Fixed HTML entities appearing in chat responses
- 📝 HTML markup now preserved in saved chat history
- 🔧 Better empty response messages list executed tools
- ✨ Subtle fade-in animation for confirmation results
Details
This update brings an improved deep research engine, trusted mode for streamlined tool execution, and several quality-of-life fixes. HTML entities returned by Gemini models are now properly decoded, and markup is preserved in saved history files. Empty response messages now list which tools were executed for better transparency.
All Changes
- feat: Trusted Mode + Extended Vault Tools — follow-up fix (#326)
- feat(deep-research): migrate to gemini-utils ResearchManager (#317)
- feat: list executed tools in empty response message (#237, #333)
- feat: add fade-in animation for confirmation results (#233, #335)
- fix: decode HTML entities in Gemini API responses (#327, #331)
- fix: preserve HTML markup in saved chat history (#112, #332)
- fix: improve type safety for thoughtSignature extraction (#235, #334)
- fix: ignore generated files in Prettier checks
- chore(deps): bump @allenhutchison/gemini-utils (#322)
- chore(deps-dev): bump dev-dependencies group (#323)
What's Changed
- chore(deps-dev): bump the dev-dependencies group with 2 updates by @dependabot[bot] in #323
- chore(deps): bump @allenhutchison/gemini-utils from 0.4.3 to 0.5.0 in the production-dependencies group by @dependabot[bot] in #322
- feat(deep-research): migrate to gemini-utils ResearchManager by @allenhutchison in #317
- feat: Trusted Mode + Extended Vault Tools — follow-up fix by @ArnBdev in #326
- fix: decode HTML entities in Gemini API responses by @allenhutchison in #331
- fix: preserve HTML markup in saved chat history by @allenhutchison in #332
- feat: list executed tools in empty response message by @allenhutchison in #333
- feat: add fade-in animation for confirmation results by @allenhutchison in #335
- fix: improve type safety for thoughtSignature extraction by @allenhutchison in #334
New Contributors
Full Changelog: 4.3.1...4.4.0
v4.3.1 - Setup Experience Fix
🔧 Setup Experience Fix
This release fixes a critical issue where new users could not access settings to configure their API key.
Highlights
- 🔑 Fixed plugin setup for new users - Settings are now always accessible, even before API key is configured
- ⚙️ Graceful error handling - Plugin loads partially when unconfigured, showing helpful messages
- 🔄 Auto-activation - Plugin automatically activates when API key is added, no restart needed
What was fixed
Issue #316 reported that new users couldn't access the plugin settings to enter their API key because the plugin would fail to initialize without one. This created a catch-22 situation. The fix ensures settings are always accessible, allowing users to configure the plugin even when initialization fails.
Full Changelog: 4.3.0...4.3.1
What's Changed
- fix: allow settings access when API key is missing (fixes #316) by @allenhutchison in #318
Full Changelog: 4.3.0...4.3.1
4.3.0 - Images & Selection Actions
✨ Gemini Scribe 4.3 - Images & Selection Actions
What's New
- 🖼 Multimodal image support - attach images to your agent conversations
- ✨ Explain Selection - get AI explanations of selected text via right-click menu
- ❓ Ask about Selection - ask questions about selected text via right-click menu
- 🔍 Folder and tags filtering for semantic search
Bug Fixes
- 🔗 Fixed @ mentions to use proper wikilink paths
- ⌨ Fixed IME composition issues for international keyboards
- 🛑 Fixed Stop button to properly halt pending tool executions
Maintenance
- 📦 Removed obsidian-dataview dependency
This update adds multimodal capabilities - you can now attach images to your agent conversations. New selection-based actions let you quickly explain or ask questions about any selected text via the right-click menu. Semantic search now supports folder and tag filtering.
What's Changed
- chore(deps-dev): bump preact from 10.28.1 to 10.28.2 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #295
- chore(deps-dev): bump the dev-dependencies group with 10 updates by @dependabot[bot] in #299
- Remove obsidian-dataview dependency by @allenhutchison in #298
- Fix STOP AGENT button failing to halt pending tool executions by @allenhutchison in #300
- Add folder and tags filtering to vault_semantic_search by @allenhutchison in #301
- fix(ui): prevent message submission during IME composition by @shijincheng0223-dot in #305
- chore: standardize code formatting and add lint checks by @allenhutchison in #309
- fix: use wikilinks with full paths for @ mentioned files by @allenhutchison in #308
- chore(deps-dev): bump the dev-dependencies group with 3 updates by @dependabot[bot] in #310
- feat(image): add multimodal image support by @shijincheng0223-dot in #307
- feat(ui): add Explain Selection and Ask about Selection actions by @allenhutchison in #311
New Contributors
- @shijincheng0223-dot made their first contribution in #305
Full Changelog: 4.2.1...4.3.0
Gemini Scribe 4.2.1 - RAG Stability & New Features
🔧 RAG Stability & New Features
This release brings major improvements to the semantic vault search feature.
Bug Fixes
- 🐛 Fixed RAG re-indexing on every restart - Your vault no longer re-indexes unnecessarily when Obsidian restarts
- 🐛 Fixed "File already exists" error - Resolved race condition during cache saves on Linux
New Features
- 📄 PDF and attachment indexing - Index PDFs and other supported file types alongside markdown
- ⏸️ Pause/resume commands - Control syncing with
Gemini Scribe: Pause RAG syncandResume RAG sync - 📊 Detailed status modal - View indexed files, failures, and search your index with the new tabbed interface
- 🔄 Resume interrupted indexing - Continue indexing after crash or restart instead of starting over
- ⚡ Rate limit handling - Automatic retry with exponential backoff when hitting API limits
- 💾 Incremental cache saves - Cache saves during indexing for better durability
Technical Improvements
- Changed hash algorithm from mtime:size to SHA-256 for reliable change detection
- Deferred RAG initialization to
onLayoutReady()to ensure metadata cache is ready - Added fallback to direct disk read when metadata cache isn't populated yet
Full Changelog: 4.2.0...4.2.1
4.2.0 - Semantic Search & Improved Errors
Semantic Search & Improved Errors
Highlights
- 🔬 [Experimental] Semantic vault search using Google File Search API
- 🗂️ Background indexing keeps your vault searchable
- 💬 Clearer API error messages (quota, auth, rate limits)
- 🖼️ Fixed image model dropdown in settings
- ✏️ Fixed writing tool to respect YAML frontmatter
Details
This update introduces experimental semantic search powered by Google's File Search API. When enabled in Advanced Settings, your vault is indexed in the background, allowing the AI to search by meaning rather than just keywords. Also includes improved error messages that clearly explain API issues like quota limits or authentication problems.
What's Changed
- Fix writing tool to respect YAML frontmatter by @allenhutchison in #242
- Add unit tests for GeminiClient.supportsThinking() by @allenhutchison in #243
- Add RAG indexing feature using Google File Search API by @allenhutchison in #244
- chore(deps-dev): bump jws from 4.0.0 to 4.0.1 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #264
- Improve API error messages with user-friendly descriptions by @allenhutchison in #269
- Remove Claude GitHub Actions workflows by @allenhutchison in #270
- Fix blank image model dropdown in settings by @allenhutchison in #271
- Update documentation to reflect v4.0+ architecture by @allenhutchison in #272
- Document in-chat confirmation system by @allenhutchison in #273
Full Changelog: 4.1.1...4.2.0