Release Notes

1.0.0 (2026-09-01)

⚠ BREAKING CHANGES

  • plugin: minAppVersion moves 1.8.7 -> 1.13.0.

Ports the 598-line imperative settings tab to the declarative API following the template (2575a89) and the AI Editor port’s structure:

  • Scalars are control definitions bridged by key through getControlValue/setControlValue; every write still goes through plugin.updateSettings, the single persistence path. setControlValue rejects on failure so the pane rolls back to the stored truth.
  • Skill folders and manual resources are SettingDefinitionLists with native add/delete. Deletion uses the LIVE index per the framework contract; resource VALUE keys use the stable resource id (resource..), never an index, so a drag/delete can not reroute a write.
  • Each manual resource is a navigable sub-page (type/name/slug/URL), with displayValue mirroring the resource type on the entry.
  • Search backend sections switch via visible() predicates instead of conditional re-renders; the missing-base-URL warning is its own conditionally-visible row.
  • Bearer token, API key (no password control type exists), status grid, client-setup buttons, rescan and reindex stay imperative render/action rows — each writing only inside its own settingEl.
  • Port slider replaced by a number control with min/max/step + validate and deliberately NO defaultValue (a cleared field is refused inline, not silently reset).
  • plugin.ts: settings field carries override (1.13 typings declare it), and the background-rescan refresh calls settingTab.update() instead of display() — display() is never called under the declarative API.
  • Guard spec + AGENTS.md “Declarative settings” section ported from the template. obsidian typings 1.12.0 -> 1.13.1.

Verified in the live vault via the obsidian CLI: plugin reloads clean, registry running, catalog rebuilt (410 skills), getSettingDefinitions returns the full tree, control-value bridge reads live data correctly, and data.json is byte-identical apart from the plugin’s own lastScanStats bookkeeping — no setting lost. Settings pane rendering still needs eyes-on verification in Obsidian (nothing in CI renders it).

Features

  • build: fail the build on a lockfile the catalog review cannot parse
  • build: make the rule floor check that it is still wired in
  • build: refuse commits that loosen the rules instead of fixing the finding
  • plugin: declare settings via getSettingDefinitions (Obsidian 1.13)
  • plugin: publish subagent definitions as a second catalog family
  • plugin: show what’s new in a tab instead of a modal dialog
  • plugin: surface support CTAs everywhere users can see them

Bug Fixes

  • build: inline the changelog via a define, stop shrinking the brand list
  • build: port template catalog-reviewer + toolchain fixes (2.8.0+)
  • plugin: harden the declarative settings port per external review
  • plugin: honour limit on POST /search and expose readiness via GET /status
  • plugin: make /status report readiness and align the search limit contract
  • plugin: persist settings before committing them to memory
  • plugin: resources could not be removed — pages get no onDelete button
  • plugin: serialize settings writes — overlapping edits lost data

0.2.0 (2026-07-29)

Features

  • plugin: add a status panel with copy-ready client config #7
  • plugin: add POST /explore faceting and richer GET /agents filtering #5
  • plugin: rank sandbox registry.search like the lexical backend

Performance Improvements

  • plugin: cache embedding vectors across reloads
  • plugin: make skill rescans incremental

0.1.0 (2026-07-27)

Features

  • plugin: show a what’s new dialog once after plugin updates

Bug Fixes

  • plugin: compile against public Obsidian typings (1.12.0)

0.0.2 (2026-07-17)

Bug Fixes

  • docs: correct Pages config and complete docs site

0.0.1 (2026-06-24)

Features

  • plugin: add Reindex button to rebuild the search index in place
  • plugin: embedding auto-retry + hosted-api embedding backend
  • plugin: hybrid semantic search core (lexical + dense vectors, RRF)
  • plugin: implement M1 registry server with catalog + lexical search
  • plugin: implement M2 skill scanning and enrichment
  • plugin: implement M3 skill file serving
  • plugin: implement M4 MCP endpoint with Code Mode
  • plugin: M5 search-backend factory + M6 EADDRINUSE retry
  • plugin: opt-in skill-folder watching + verified MCP client e2e
  • plugin: reuse shared FolderSuggest for skill folder inputs
  • plugin: scaffold ARD server plugin with settings skeleton
  • plugin: semantic search via a local embedding server (no bundle, no download)

Bug Fixes

  • plugin: guard against the registry resurrecting after unload
  • plugin: skip embedder for empty catalog in SemanticSearchBackend