• 0.15.0 eabec1bf67

    0.15.0 Stable

    jkaindl released this 2026-07-12 20:28:23 +00:00 | 131 commits to main since this release

    Added

    • Collapsible settings sections. The settings tab now groups its sections into collapsible
      headers you can fold away, and the open/closed state persists per section. The Live-Embedding
      section starts expanded the first time you open settings (that's where you enter the endpoint
      nothing works without). Section headers are fully keyboard- and screenreader-operable
      focusable via Tab, Enter/Space to toggle, with a visible focus ring and aria-expanded.
    • Index state shown as a delta. The index section reads "N / M notes" with an inline
      "complete the index" button. The count is computed as embedded = total − missing (the same
      basis as the self-heal), so it reflects genuinely missing notes instead of a stale index count.

    Changed

    • One backlog truth. The embedding status no longer shows a separate "pending" count; the
      index-state delta is now the single source of truth for what still needs embedding — this
      removes the confusing "1 pending" vs "225 missing" contradiction.
    • Internal: all query-embedding / retrieval call sites were consolidated behind a single
      obsidian-free RetrievalFacade shared by the UI and the MCP server (the MCP tools behave
      byte-identically).

    Fixed

    • Chat and Smart Apply reconnect after going offline. Both now resolve the embedder through
      the shared facade, so after an offline period or an endpoint switch they reconnect correctly
      instead of embedding against a dead endpoint.
    Downloads
  • 0.14.1 73e2dfa348

    0.14.1 Stable

    jkaindl released this 2026-07-12 07:44:46 +00:00 | 157 commits to main since this release

    Changed

    • Build: replaced the builtin-modules dev-dependency with Node's built-in
      node:module builtinModules for the esbuild externals list (both bare and
      node:-prefixed forms). No runtime or behaviour change — addresses a
      community-review recommendation.
    Downloads
  • 0.14.0 c11500de66

    0.14.0 Stable

    jkaindl released this 2026-07-12 06:57:05 +00:00 | 159 commits to main since this release

    Added

    • Easier MCP setup for external clients. The MCP-server settings section now generates
      ready-to-copy connection snippets for Claude Code, OpenCode, OpenClaw, and a generic
      .mcp.json
      client (pick from a dropdown), lets you reveal and rotate the Bearer token,
      lists the three tools the server exposes (search, related, read_note), and adds a
      "Test connection" button that self-checks the running server end-to-end (with a 5s timeout
      so it can never hang). Server start failures now report a plain-text cause (e.g. "Port belegt")
      instead of a generic guess. Loopback-only, no new transport, no new dependencies.
    Downloads
  • 0.13.0 c2203359a3

    0.13.0 Stable

    jkaindl released this 2026-07-11 13:21:15 +00:00 | 169 commits to main since this release

    Added

    • External access via MCP is now a built-in plugin feature. Enable the MCP server in
      Settings → "MCP-Server" and connect an external LLM agent (e.g. Claude Code) with
      claude mcp add --transport http … — three read-only tools (search, related, read_note)
      over your vault's index. The server is desktop-only, binds to loopback (127.0.0.1) only,
      runs only while Obsidian is open, and requires a Bearer token (auto-generated on enable) on
      every request. Defense-in-depth: DNS-rebinding protection (Host-header allowlist), constant-time
      token comparison, and a realpath containment guard so read_note cannot follow a symlink out of
      the vault.

    Changed

    • The MCP server is now this in-plugin HTTP server (Streamable HTTP) instead of a separate stdio
      Node CLI — it is bundled into main.js and the standalone mcp-server.js target is removed.
    Downloads
  • 0.12.0 c8011c9db2

    0.12.0 Stable

    jkaindl released this 2026-07-11 08:48:55 +00:00 | 187 commits to main since this release

    Added

    • Index robustness — the vector index is now hardened against data loss. A truncated or unreadable index is detected loudly (byte-length validation on load) and puts the plugin into a read-protected state instead of silently overwriting your good index with an empty one — the failure mode that could previously collapse a full index down to a handful of notes. New recovery tools in a "Index-Robustheit" settings section: complete the index re-embeds only the notes missing from the index (a fast delta reindex, also offered automatically when a large gap is detected on load), and device-local backups (kept in the plugin folder outside vault sync, last 3 rotated) can be restored with one click. When another device syncs a drastically smaller index, the good in-memory index is kept rather than adopted. A degraded index state is now surfaced in the status bar (⚠ Index beschädigt) instead of failing silently.

    Changed

    • Internal: data-loss-critical decisions centralised in pure-core index_guard.ts (load classification, persist shrink-guard, vault↔index diff) and index_backup.ts (backup naming/rotation); live index writes are serialised to keep the persist guard correct under concurrent vault events.
    Downloads
  • 0.11.0 fc19697987

    0.11.0 Stable

    jkaindl released this 2026-07-10 19:53:11 +00:00 | 208 commits to main since this release

    Added

    • MCP server — use your vault index from Claude Code and other MCP clients. A bundled stdio server (mcp-server.js, built alongside the plugin by npm run build) exposes three read-only tools over your existing embedding index: search (semantic search, embeds the query via your configured endpoint), related (neighbours of a note, fully offline), and read_note (full markdown text, .md only, exclude prefixes enforced case-insensitively, symlink-escape protection via realpath containment). Configuration is read at server startup from the plugin's own settings (data.json); the index itself is picked up live whenever the plugin rewrites it. One server instance per vault; the server never writes to your vault. See the README's "MCP server" section for client registration (.mcp.json).

    Changed

    • Internal: pure settings truth (VaultRagSettings/DEFAULT_SETTINGS/endpoint migration) extracted to settings_core.ts (re-exported, no behaviour change); obsidianmd lint rules scoped to plugin code with a targeted import guard for the Node-side MCP code.
    Downloads
  • 0.10.1 c551a00918

    0.10.1 Stable

    jkaindl released this 2026-07-08 15:24:18 +00:00 | 227 commits to main since this release

    Release 0.10.1

    Downloads
  • 0.10.0 65307783ac

    0.10.0 Stable

    jkaindl released this 2026-07-08 15:01:15 +00:00 | 230 commits to main since this release

    Added

    • Endpunkt-Presets: Ein-Klick-Buttons „+ LM Studio" / „+ Ollama" mit korrekten Default-Ports.
    • Klartext-Diagnose pro Endpunkt statt nur rot/grün (Verbindung abgelehnt / Hostname unbekannt / Zeitüberschreitung / kein LLM-API).
    • Nicht-blockierende Eingabe-Prüfung (fehlendes Schema/Port, Platzhalter-IP).

    Changed

    • Chat-Endpunkt-Default auf http://localhost:1234 (LM Studio) geändert.
    Downloads
  • 0.9.0 e0f0f35f9c

    0.9.0 Stable

    jkaindl released this 2026-07-07 17:44:04 +00:00 | 240 commits to main since this release

    Added

    • Non-deterministic Smart Apply mode ("additive") — a per-application mode toggle in the Smart Apply cockpit. Alongside the default deterministic mode (the LLM only assigns your original blocks and never invents), the additive mode lets the LLM infer frontmatter values that aren't verbatim in the text and insert marked addition blocks — each carrying an ordinal confidence (high/medium/low) that you accept or reject individually in the diff gate. Low-confidence items are unchecked by default. Your original blocks stay byte-exact either way, and the deterministic path is bit-identical to before. A template can declare its preferred mode via a reserved smartapply_modus frontmatter key (never leaked into target notes), with a global default in settings. An optional "keep provenance" audit toggle records inferred keys as a smartapply_erschlossen field and marks additions with %%erschlossen: …%% comments — or leaves a clean document. Confidence is encoded via icon shape and text, not colour alone (WCAG 1.4.1).
    • Undo ↔ Redo toggle in the Smart Apply diff gate — after "Undo" the button becomes "Redo" and restores exactly what was applied (the final selection plus audit state), so an accidental undo is one click to reverse.
    Downloads
  • 0.8.0 24806d2488

    0.8.0 Stable

    jkaindl released this 2026-07-07 09:09:24 +00:00 | 260 commits to main since this release

    Added

    • Unified sidebar hub — the four separate sidebar views (Related Notes, Semantic Search, Chat, Smart Apply) are now a single "Vault Retrieval" hub with a tab bar, opened from one ribbon icon. The four commands deep-link straight to their tab. All panels stay mounted, so state persists across tab switches: a running chat stream or an open Smart-Apply diff survives switching away and back. The context-sensitive panels (Related, Smart Apply) refresh lazily — only when their tab is visible.

    Changed

    • Old per-function sidebar leaves are migrated away automatically on load (one hub view replaces four).
    • Tab icons: Related now uses waypoints, Search uses the magnifying glass.

    Fixed

    • Smart Apply no longer resets a manually chosen template when a background re-index fires for the same note.
    Downloads