Release Notes

2.2.0 (2026-10-03)

Your API key now lives in Obsidian’s secret storage

The API key used to sit in plain text in the plugin’s data file, which syncs with your vault (Git, Syncthing, cloud sync). It is now kept in Obsidian’s secret storage on each device instead. The plugin settings only remember the name of the secret.

  • Nothing to do. Every device moves its key into its own secret storage automatically on its next start. Your scripts and MCP clients keep working with the same key.
  • The plain-text copy is removed after 60 days. It stays in the data file for now so that all your synced devices can pick up the key on their own. Once every device runs this version, you can remove it right away with Remove plain-text copy now in Settings → REST and MCP server → Security.
  • Regenerating the key now writes the new key to this device’s secret storage only. Enter it on your other devices too, and update your clients.
  • If a device ever has neither the secret nor the plain-text copy, the plugin tells you and does not start the server, instead of silently creating a new key that would break your clients.

2.1.3 (2026-09-28)

Bug Fixes

  • plugin: let an unloaded instance neither save, report nor retry
  • plugin: never listen beyond loopback without an API key
  • plugin: run server starts and stops one at a time
  • plugin: write nothing once unloaded and treat a blank key as missing

2.1.2 (2026-09-28)

Bug Fixes

  • plugin: keep the support block from stacking on every settings refresh

2.1.1 (2026-09-23)

Bug Fixes

  • build: harden the release path from the template
  • build: rebuild versions.json from the published releases
  • plugin: never let an unloaded instance bind or keep the port

2.1.0 (2026-09-22)

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

Bug Fixes

  • deps: move the fast-uri override off the vulnerable line
  • deps: move the js-yaml override off the vulnerable line
  • plugin: apply a regenerated API key right away instead of at the next restart

2.0.0 (2026-08-28)

⚠ BREAKING CHANGES

  • plugin: minAppVersion moves 1.8.7 -> 1.13.0.

Ports the imperative settings tab to the declarative API following the fleet recipe. 10 scalars become control definitions bridged through a new Plugin.updateSettings (persist-then-commit — memory swaps only after saveData succeeds, replacing the tab-private updateSetting that mutated memory first). setControlValue rejects on failure, including type mismatches and out-of-range numbers.

Live state stays imperative: server status (Start/Stop), CLI status (Recheck) and the API key row (Copy / Regenerate) are render rows refreshed via update(); “Listening on” and the 0.0.0.0 security warning are conditionally-visible definitions re-evaluated per render.

Parity notes: blockedCommands keeps its exact split/trim/filter normalization; defaultVault is deliberately not trimmed; port and requestTimeout mirror the zod schema’s bounds inline with NO defaultValue (a cleared field is refused, not silently reset). The API key field’s inline setCssStyles moved to a CSS class.

Guard spec + AGENTS.md “Declarative settings” ported from the template.

Settings pane rendering needs eyes-on verification in Obsidian.

Features

  • plugin: declare settings via getSettingDefinitions (Obsidian 1.13)
  • 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: port template catalog-reviewer + toolchain fixes (2.8.0+)
  • plugin: bring back the follow button, and stop lying about brands
  • plugin: serialize settings writes — overlapping edits lost data

1.4.0 (2026-07-29)

Features

  • plugin: aggregate what’s new dialogs across simultaneously updated plugins

1.3.0 (2026-07-29)

Features

  • plugin: add Knowii community to the what’s new dialog and harden it

1.2.0 (2026-07-27)

Features

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

1.1.9 (2026-07-17)

1.1.8 (2026-06-17)

Bug Fixes

  • deps: clear all dependency vulnerability advisories

1.1.7 (2026-06-17)

1.1.6 (2026-05-15)

1.1.5 (2026-05-15)

1.1.4 (2026-05-15)

Bug Fixes

  • all: fixed Already connected to a transport issue
  • all: fixed CLI binary not detected on MacOS

1.1.3 (2026-05-15)

1.1.2 (2026-05-14)

1.1.1 (2026-05-13)

1.1.0 (2026-05-13)

Features

  • all: improved obsidian cli detection/usage
  • all: updated release workflow and removed hardcoded cli entries

1.0.1 (2026-04-16)

Bug Fixes

  • all: improved obsidian cli detection

1.0.0 (2026-04-15)

Features

  • all: improved behavior and performance at startup (loading in the background)
  • all: improved MCP and docs
  • all: updated

0.1.0 (2026-02-21)

Features

  • all: improved api docs
  • all: improved command discovery
  • all: initial implementation of the RESTful API and MCP server
  • all: updated
  • all: updated docs