Brings the plugin up to the Obsidian community directory's automated review standards ahead of the 2026-10-30 deadline.
What changed
- Raised
minAppVersionto 1.7.2, matching the APIs the plugin actually uses (previously 0.15.0, which was never accurate). - Fixed the ESLint setup, which was silently running none of the Obsidian rules —
configs.recommendedbecame a flat-config array in 0.2.0, and spreading it intorulesdisabled the lot. - Typed every HTTP and JSON boundary — license, quota, embeddings, MCP transport, view scaffolds.
- Moved inline styles into CSS so themes can restyle the review UI. Dynamic positions now use CSS custom properties.
- Replaced
innerHTMLwith Obsidian'ssetText/emptyhelpers. - Non-streaming requests now use
requestUrl; chat keepsfetchbecauserequestUrlcannot stream SSE. - Sentence case throughout the settings and review UI.
Fixes
- Agent messages with an unrecognised payload shape rendered
[object Object]; they now render readable JSON. - The registration quota panel showed
undefined / undefinedandNaNwhen the backend omitted counters. - Seven promises had no rejection handling — a failure silently aborted the operation instead of surfacing.
Notes
Custom views are unchanged and still supported. No change to chat, search, or editing behaviour.
Scan status: 1 remaining error, the Function constructor that compiles user-authored views. There is no non-eval way to run user code; an exception request is in docs/obsidian-review-exception-request.md.