Addresses the review feedback from the Obsidian team, plus a publish-dialog layout fix.
Requires Obsidian 1.13.0
The settings tab now uses the declarative settings API, so its settings show up in Obsidian's global settings search. That API landed in 1.13.0, and this release drops the older imperative fallback. Users on 1.12.x and earlier stay on 1.0.0.
Commands have been renamed
The command IDs no longer repeat the plugin ID, and their names no longer repeat the plugin name, which Obsidian already shows beside every command:
| Was | Now |
|---|---|
| Send to ZettelCasting - current file | Schedule post from current file |
| Send to ZettelCasting - active card | Schedule post from active Branch Writing card |
| Send to ZettelCasting - active branch | Schedule post from active Branch Writing branch |
If you bound a hotkey to any of these, rebind it — the underlying IDs changed, so the old binding no longer resolves.
Fixed
- The publish dialog could cut off the platform picker, output file name and the Schedule post button with no way to scroll to them. The options area now scrolls on its own, keeping the title and the primary action in place. This was most visible on themes that style modal content, such as Blue Topaz.
- The dialog is slightly wider, which reduces wrapping in the longer option descriptions.
Under the hood
- All network requests go through Obsidian's `requestUrl` instead of `fetch`, so they are no longer subject to the renderer's CORS rules. Media uploads build their own multipart body, byte for byte what the browser sent before.
- Settings writes are properly awaited, timers are scoped to the window their view belongs to, and the build no longer depends on the `builtin-modules` package.
- `npm run lint` now runs `eslint-plugin-obsidianmd`, the same ruleset the Obsidian team reviews with.