| 0.22.11 | ### Ollama diagnostics - Added optional request capture in Ollama connection settings. Saved JSON files can be replayed with curl to investigate tool-calling issues. - Added request IDs, response timing, finish reasons, and tool-result metadata to developer-console logs. - Empty responses that reach the output token limit now show actionable guidance instead of retrying. - Improved error handling so unrelated failures are not reported as unsupported tool calling. Request capture is off | High | 10/22/2026 |
| 0.22.10 | ### New - **Answers for Dashboard Hub Timeline `@ai` posts.** Local LLM Hub now answers `@ai` posts using what you choose in Dashboard Hub: - read-only Vault tools - your RAG index - connected MCP servers - Skills, including skill workflows AnythingLLM supports none of these options. ### Fixed - Dashboard AI features (Base and workflow generation, Timeline answers) now run only the tools they offered the model. Previously, a model could call other tools, including write too | High | 10/12/2026 |
| 0.22.9 | - New chats now preserve your previous skill selection, including built-in skills and an empty selection. - Skills are no longer enabled automatically when you open a file. - Empty chats now suggest the appropriate editing skill for Markdown, Canvas, Base, and Dashboard files. Enable it with one click. | High | 10/6/2026 |
| 0.22.8 | - Fixed the workflow generation plan collapsing into an almost invisible area. - Removed the empty gray space below the plan. - The plan now adjusts to the screen height, with scrolling for longer content | High | 10/4/2026 |
| 0.22.7 | ### Changed - Added **\+ New** to the Local RAG configuration dropdown, replacing the separate add button. Enter a name to create a configuration; it is selected automatically and its embedding and index options appear. - The dropdown now starts blank when no configuration is selected, replacing the **None** option. ### Fixed - Bundled the updated shared library as a prebuilt local dependency, allowing installation with lifecycle scripts disable <img width="1278" height="1046" alt="ในใฏ | High | 10/3/2026 |
| 0.22.6 | ### Fixes - Fixed "Connection failed: socket hang up" errors that occurred immediately at the start of the second turn in multi-step reasoning (tool calls) against llama-router and llama.cpp backends. Servers built on cpp-httplib close the connection after a streamed response instead of honoring HTTP keep-alive. Since v0.22.0, the plugin fully finished each streamed turn before continuing, which returned that connection to Node's keep-alive pool โ so the next tool/reasonin | High | 9/19/2026 |
| 0.22.5 | ### Fixes - Fixed RAG synchronization stopping after the first 50 files when started from settings. Sync now continues until all remaining files are processed. - Added a summary of PDF extraction failures after synchronization. - Updated the shared library to fix local LLM streaming transport. | High | 9/19/2026 |
| 0.22.4 | ### Fixed - Fixed conflicting instructions in Vault: no discovery mode that could discourage the model from using rag_search. The prompt now encourages searching the selected RAG index before concluding that information is missing. - Removed the suggestion to switch to Vault: all when context is insufficient. RAG remains independent of Vault permissions, including Vault: off. ### Improved - Added an expandable mobile message composer for easier editing of longe | High | 9/14/2026 |
| 0.22.3 | ## What's changed - Slash commands can now automatically select a configured skill when the prompt is sent. - Updated the shared LLM Hub components and behavior. **Full Changelog**: https://github.com/takeshy/obsidian-local-llm-hub/compare/0.22.2...0.22.3 | High | 9/12/2026 |
| 0.20.10 | ### Added - **Dynamic RAG search.** Models with function calling can now run their own follow-up queries against the selected RAG index. Automatic retrieval still runs on every message, so models without tool support behave as before; a capable model can rephrase the query when the automatic result is off-topic or broader than the question. Up to 3 searches per turn including the automatic one, 3 chunks per follow-up search. - **Local file links in replies now open.** A link t | High | 8/29/2026 |
| 0.20.0 | - Added configurable folders for plugin data and agent skills. - Existing workspace and skills folders are moved automatically when their paths are changed. - Added support for nested vault-relative folder paths. - Updated the settings interface for Obsidian 1.13 and later. - Improved settings layout on narrow screens to prevent horizontal scrolling. - Updated RAG indexing, chat history, workflow history, and skill management to respect the configured folders. | High | 8/14/2026 |
| 0.19.11 | ### Workflow improvements - Added a RAG setting selector to the rag-sync workflow node editor. - Added a Show progress option to the Workflow sidebar. Disable it to run hotkey workflows without opening the execution progress dialog. - Preserved options.showProgress when workflows are edited and saved from the sidebar. - Improved AI workflow review guidance so valid prompt-file โ rag-sync workflows are no longer given redundant file- path checks. - Expanded the work | High | 8/1/2026 |
| 0.19.6 | fix Obsidian 1.10 API compatibilit | High | 7/26/2026 |
| 0.18.3 | ## Whatโs Changed - Improved OKF knowledge sources with on-demand document loading. - Active OKF bundles now inject only their index into the chat context, reducing prompt size and unnecessary token usage. - Added support for directory links resolving to their index.md. - Nested OKF indexes are now treated as progressive-disclosure documents instead of separate selectable bundles. - Increased the maximum loaded document content to 20,000 characters. - Added path validati | High | 7/15/2026 |
| 0.17.1 | ## What's Changed - Added a dashboard switcher to the dashboard toolbar. - Click the dashboard title to switch between `.dashboard` files in the vault. - Dashboards with duplicate names show their full path for easier identification. - The current dashboard is marked in the switcher menu. - Removed the dedicated Markdown dashboard widget. - Existing `type: markdown` dashboard widgets are now treated as File widgets. - Markdown files remain supported through the | High | 7/6/2026 |
| 0.14.1 | fix lint warning | High | 6/25/2026 |
| 0.13.2 | ### Combined RAG - Restrict source candidates for **Combine internal** RAG settings. - Only standalone internal RAG settings with the same effective embedding server URL and embedding model can now be selected together. - This prevents accidentally combining indexes built with incompatible embedding configurations. | High | 5/30/2026 |
| 0.12.9 | ## Fixed - Fixed UI and workflow failures caused by using Obsidianโs createEl / createDiv / createSpan helpers on activeDocument. - Replaced those calls with activeDocument.createElement(...) to avoid invalid direct append operations on Document. ## New Contributors Thanks to @OlivierLmr for their first contribution in #10, which fixed workflow and modal UI rendering issues related to `activeDocument` element creation. | High | 5/27/2026 |
| 0.12.8 | ### Fixed - Removed the bundled React DOM 19 code path that triggered Obsidian's dynamic `<script>` element scanner warning. - Downgraded `react` and `react-dom` to React 18. - Kept existing React view mounting behavior via `createRoot`. - Confirmed the production bundle no longer contains `createElement("script")`. | High | 5/19/2026 |
| 0.12.6 | ### Fixed - Added GitHub artifact attestations for release assets. - Release workflow now generates provenance attestations for: - `main.js` - `manifest.json` - `styles.css` ### Changed - Updated release workflow permissions to allow OIDC and artifact attestation generation. | High | 5/13/2026 |
| 0.12.4 | ### Changed - Addressed Obsidian plugin review findings across source and UI code. - Improved popout window compatibility by using `activeWindow` / `activeDocument` where appropriate. - Replaced direct static style assignments with CSS classes for better theming and maintainability. - Replaced deprecated UTF-8 base64 handling with `TextEncoder` / `TextDecoder`. - Removed the unused `builtin-modules` development dependency. | High | 5/12/2026 |
| 0.12.3 | ### Improved - Vault tools now support text-based vault files beyond Markdown, including `.canvas`, `.json`, `.txt`, `.csv`, `.yaml`, `.yml`,`.svg`, `.html`, `.xml`, `.css`, `.js`, `.ts`, and `.tsx`. - `create_note`, `read_note`, `propose_edit`, `rename_note`, `list_notes`, and `search_notes` can now work with supported non- Markdown files such as Obsidian Canvas files. - When no extension is provided, vault tools continue to default to `.md` for compatibility with existing note workflows.
| High | 4/29/2026 |
| 0.12.2 | ## New Features - Clickable tool tags in chat โ Tool names shown under "Tools used" (read_note, create_note, update_note, propose_edit, rename_note, get_active_note) are now clickable and open the referenced note directly. Tools that don't target a specific note (search_notes, list_notes, MCP tools, etc.) show their argument details in a Notice on click | High | 4/16/2026 |
| 0.12.1 | ๐ Bug Fixes @-mention resolution now handles all vault file paths Fixed a class of bugs where mentioning a note via ๏ผ path in Chat or the AI Workflow modal silently failed or produced wrong results. ### What was broken - Paths with spaces โ @My Notes/Daily.md resolved only My and left the rest as literal text. - Unicode paths โ @ใกใข/ๆฅๆฌ่ช.md often failed to match depending on surrounding characters. - Regex-special characters โ paths containing (, ), +, ., [, etc. were silently trunca | High | 4/15/2026 |
| 0.12.0 | ## ๐ง 1 File = 1 Workflow โ breaking change Each `.md` file now holds **exactly one** workflow code block. The name inside the workflow YAML is no longer an addressable identifier โ a workflow is identified by its file path, period. ### What breaks - **Multi-block files become read-only.** Opening a file with โฅ2 workflow blocks shows an error banner with a new **Split into individual files** button that migrates blocks 2..N into sibling files (block 1 stays in place). - **Sub-workflow | High | 4/15/2026 |
| 0.10.2 | ## โจ Confirm Modal Overhaul ### Rich diff view - **Unified / Split view toggle** - **Word-level highlighting** โ changed parts are highlighted per word - **Per-line comments** โ click any line to attach a comment; comments are sent to the LLM as structured feedback (`Line 12 (+): <content>\nComment: ...`) when you click "Request changes" ### Skill-modify visibility - **SKILL.md instructions diff now shown** alongside the YAML diff when modifying a skill. Previously only th | High | 4/13/2026 |
| 0.10.0 | ## โจ New Features ### AI Workflow / Skill Generation Overhaul - **Three-phase pipeline** (Plan โ Generate โ Review) for better quality - Plan: plain-language plan shown first (OK / Re-plan / Cancel) - Review: auto-review after generation; pick OK (with confirmation) / Refine / Cancel - Refine feeds review feedback back to the LLM for another pass - **Split Create buttons**: dedicated "Create workflow with AI" and "Create skill with AI" entry points - **Modify skill with AI**: when | Medium | 4/12/2026 |
| 0.9.5 | - Chat view restores previous thread โ Reopening the Chat view within the same Obsidian session now automatically restores the last active conversation. No more losing your place when switching between tabs. | High | 4/11/2026 |
| 0.9.4 | ## Bug fix - Fix PDF page offset calculation โ Empty pages in PDFs no longer cause incorrect page labels. Previously, pages with no extractable text would cause all subsequent pages to share the same offset, leading to inaccurate pages X-Y of N labels in search results. | Medium | 4/10/2026 |
| 0.9.3 | ## PDF support for RAG indexing and search PDF files in your vault are now automatically indexed alongside Markdown files. Text is extracted using Obsidian's built-in PDF.js, chunked, and embedded just like regular notes. - PDF indexing โ PDF text extraction and embedding during RAG sync - Page tracking โ Each chunk stores its page range (e.g. "pages 2-5 of 24"), displayed as a badge in search results - PDF preview โ Switch between extracted text view and PDF page preview per result - R | Medium | 4/10/2026 |
| 0.9.2 | ## Bug fix: plugin update now works correctly ### Fixes - Fixed missing `version` field in `manifest.json` that prevented Obsidian from detecting and applying updates (#8) - Cleaned up invalid entries in `versions.json` ### Prevention - `version-bump.mjs` now falls back to reading `package.json` when `npm_package_version` is not set - Added `manifest.json` version validation step to CI (build & release workflows) ### Upgrade note - **From 0.8.0 or earlier:** update to 0.9.2 should work nor | Medium | 4/9/2026 |
| 0.9.1 | ## RAG Search: Multi-field keyword filter with AI suggestion ### Multi-field AND/OR keyword filter - Keyword filter now supports multiple fields - Within a field: space-separated terms use OR logic (any term matches) - Between fields: AND logic (all fields must match) - Click + AND to add a filter field, โ to remove ### AI keyword suggestion - Each filter field has a โฆ (sparkle) button - Uses the configured AI refine model to expand keywords with synonyms and rela | High | 4/8/2026 |
| 0.9.0 | ## RAG Search enhancements ### Keyword Filter - Search results can now be narrowed down by keyword (space-separated AND logic) - Matches against both chunk text and file path - "Select all" and result count reflect the filtered view ### Chunk Editor - Click the pencil icon on an expanded result to open the chunk editor modal - Load previous/next chunks from the same file with automatic overlap removal - Edited results show an "Edited" badge and accent border in the results list | Medium | 4/8/2026 |
| 0.8.0 | ## New Features - Built-in Obsidian Skills - Three built-in skills that teach the LLM about Obsidian-specific file formats - obsidian-markdown - Wikilinks, embeds, callouts, properties, and other Obsidian Flavored Markdown syntax - json-canvas - Creating and editing .canvas files with nodes, edges, and groups - obsidian-bases - Creating and editing .base files with views, filters, formulas, and summaries - Built-in skills are shown with a "built-in" badge in the skill dropdown | Medium | 4/3/2026 |
| 0.7.1 | Fix: sentence case lint error in placeholder text | Medium | 3/31/2026 |
| 0.7.0 | ## RAG Search Tab โ Index Settings Panel Added an index settings panel (gear icon) to the RAG Search tab. - Adjust Chunk Size and Chunk Overlap via sliders directly from the search tab - Edit Target Folders and Excluded Patterns without leaving the search UI - Sync button with cancel support โ rebuild the index without navigating to plugin settings - Last synced timestamp display - Indexed files list accordion with per-file chunk counts - Changing chunk size or overlap now | Medium | 3/31/2026 |
| 0.6.0 | ## New: RAG Search tab A dedicated RAG Search tab has been added between Chat and Workflow, enabling standalone semantic search across your indexed vault notes. ### Features - RAG setting selector โ Choose which named RAG setting to search against - Adjustable parameters โ Override Top K and minimum score threshold per search - Result list with preview โ Each result shows file path, relevance score (%), and expandable text preview - Batch selection โ Select all / individual results w | Medium | 3/30/2026 |
| 0.5.0 | ## Multiple Named RAG Settings You can now create and manage multiple RAG settings. Configure different embedding models, chunk sizes, target folders, and more for each setting, and switch between them on the fly. ### Key Changes: - Multiple RAG settings โ Create, rename, and delete named RAG settings from the settings page - RAG selector in chat โ A dropdown next to the model selector lets you choose which RAG setting to use per conversation - External index toggle โ Replaced t | Medium | 3/23/2026 |
| 0.3.2 | ## Improvements - Renamed framework label to "LM Studio (OpenAI compatible)" to clarify it works with any OpenAI-compatible API endpoint - Embedding model fetch now filters by name pattern, excluding non-embedding models ## Documentation - Added cloud LLM setup guide (OpenAI, Google Gemini) with RAG configuration instructions | Low | 3/18/2026 |
| 0.3.0 | ## Breaking Change - Renamed workflow code block language from ```workflow to ```llm-workflow - Existing ```workflow blocks can still be read and executed - New and saved workflows will use ```llm-workflow ## Bug Fixes - Fixed inability to enable this plugin alongside Gemini Helper - Both plugins registered a code block processor for the workflow language, causing the second one to fail on load | Low | 3/18/2026 |
| 0.2.12 | ## Bug fixes - Fix chat terminating immediately when using tools (Vault/MCP) with AnythingLLM - AnythingLLM's OpenAI-compatible endpoint does not support the tools parameter โ sending it caused the server to return an internal chat ID instead of LLM output - Tools are now automatically disabled for AnythingLLM with a notice shown to the user - Fix pending tool calls lost on stream end - When a stream ended without a [DONE] marker, accumulated tool calls were silentl | Low | 3/15/2026 |
| 0.2.11 | ## New Features - vLLM support: Added vLLM as a selectable LLM framework with default URL http://localhost:8000 - Separate embedding server URL: RAG settings now allow specifying a dedicated embedding server URL, independent from the LLM server - Event-triggered workflows: Workflows can be automatically triggered by vault events (create, modify, delete, rename, file-open) with built-in event variables (_eventType, _eventFilePath, _eventFile, _eventFileContent, _eventOldPath) ## Improveme | Low | 3/15/2026 |
| 0.2.9 | ## Bug Fixes - Fix Mermaid diagram rendering on mobile: Fixed an issue where workflow Mermaid diagrams failed to render on mobile. Mermaid's \<br\> tags inside foreignObject caused strict XML parsing to fail in mobile WebView. Switched to HTML parsing to tolerate HTML void elements. | Low | 3/13/2026 |
| 0.2.8 | ## Bug fixes - Fix streaming stalls โ Replaced the stream signaling mechanism with a robust version-counter pattern (StreamSignal) that prevents lost notifications between Node.js event callbacks and the async generator. Added a 2-minute idle timeout so stalled connections are detected and reported as errors instead of hanging indefinitely. ## Changes - Workspace folder is now fixed โ The workspace folder name (LocalLlmHub) is no longer configurable and is treated as a constant, consi | Low | 3/11/2026 |
| 0.2.7 | ## Changes - Workspace folder is now fixed โ The workspace folder name (LocalLlmHub) is no longer configurable and is treated as a constant, consistent with the skills and workflows folders. The setting has been removed from the settings UI. Existing saved settings will be automatically migrated. - Fix sentence case for UI text โ Addressed Obsidian plugin review feedback for sentence case compliance in settings labels. ## Migration notes - If you had customized the workspace fold | Low | 3/11/2026 |
| 0.2.6 | ## Bug Fixes - Mermaid diagram: Fix parse error when workflow nodes target "end" (Mermaid reserved word) โ now routes to FINISH node with display label kept as "โ END" - Clipboard copy: Replace deprecated document.execCommand("copy") with ClipboardItem API fallback - SVG rendering: Use DOMParser instead of direct innerHTML assignment for Mermaid diagram rendering, with parse error handling - Code quality: Remove eslint-disable for @typescript-eslint/no-explicit-any by using typed | Low | 3/11/2026 |
| 0.2.5 | ## Bug Fixes - Mermaid diagram: Fix parse error when workflow nodes target "end" (Mermaid reserved word) โ now routes to FINISH node with display label kept as "โ END" - Clipboard copy: Replace deprecated document.execCommand("copy") with ClipboardItem API fallback - SVG rendering: Use DOMParser instead of direct innerHTML assignment for Mermaid diagram rendering, with parse error handling - Code quality: Remove eslint-disable for @typescript-eslint/no-explicit-any by using typed | Low | 3/11/2026 |
| 0.2.4 | ## New Feature - rag-sync: single file sync โ The rag-sync workflow node now supports syncing a single file when path is specified, making it significantly faster for event-triggered workflows. Use oldPath to handle file renames. Omitting path falls back to a full sync. Unchanged files are automatically skipped via checksum comparison. ``` - id: sync type: rag-sync path: "{{__eventFilePath__}}" saveTo: syncResult ``` ## Documentation - Add AnythingLLM as a suppor | Low | 3/11/2026 |
| 0.2.3 | ## Changes - Fixed skills/workflows folder paths โ skills and workflows folders are now fixed constants instead of configurable settings. The skills folder setting has been removed from the settings UI. - File explorer icons โ ๐งฉ and โก emoji icons are now shown before the skills and workflows folders in Obsidian's file explorer. | Low | 3/11/2026 |
| 0.2.2 | ## Changes - Add AnythingLLM support (OpenAI-compatible API with /v1/openai path prefix) - Fix SSE streaming bug where empty `usage: {}` caused premature stream termination - Fix embedding model settings UI (remove redundant text input, add placeholder) - LLM Modal: re-render on framework change, AnythingLLM-specific API key description **Full Changelog**: https://github.com/takeshy/obsidian-local-llm-hub/compare/0.2.1...0.2.2 | Low | 3/11/2026 |
| 0.2.1 | ## Fixes - Fix release tag format for Obsidian community plugin submission (remove v prefix) | Low | 3/10/2026 |
| v0.2.0 | initial release | Low | 3/10/2026 |