0.1.0
0.1.0 (2026-08-01)
Features
- a11y: a finding highlight says whose it is without its colour (110ba42)
- actions: a custom action states what it does to the note (8b2b589)
- actions: action-binding resolution to dispatchable targets (d670df1), closes #7
- actions: built-in verb registry with per-verb instruction prompts (7c338c5)
- actions: custom actions dispatch like built-ins, class and all (7ab0c51)
- actions: humanize built-in action verb (9fa9b51)
- backends: dedicated OpenRouter backend kind (fb16f1c)
- backends: per-backend thinking settings for all API providers (fd97786)
- cli: a CLI backend resolves like any other, everywhere (926d9dd)
- cli: a health check that runs the real thing, and a detector that runs nothing (86eb529)
- cli: a panel review returns its scorecard instead of paying for one and dropping it (a2d5313)
- cli: add ai-editor:cancel subcommand (e34e5f7)
- cli: add ai-editor:status subcommand (7be8452)
- cli: buffered ai-editor:review CLI handler (fa58134), closes #12
- cli: cancelling a run kills the whole tree, and checks (fff53ba)
- cli: claude code and codex invocation contracts (05b689d)
- cli: CLI editor executor behind the same contract as API backends (f1324f2)
- cli: consent is a record of which binary, not a yes (a120cc0), closes #9 #12
- cli: the note reaches the tool over stdin, in a sandbox it cannot escape (c403c14)
- cli: what runs, what it can see, and what it may say are decided before anything starts (988ee58), closes #12
- commands: bulk accept and dismiss per editor and for the whole run (ec886ee), closes #3
- commands: dynamic per-action palette commands follow the settings (d04b3cc)
- commands: static palette commands for review dispatch and finding navigation (b6827c6)
- commands: toggle daemon mode from the palette (7ece5e7)
- commands: unified memory-based triage stepping engine (f25912d)
- comments: ask for comments, from three surfaces (c08ab87), closes #13
- comments: background comment runs, keyed by comment and not by view (38d7374), closes #13
- comments: background job lifecycle with honest interrupted-job semantics (2638cde), closes #1
- comments: background jobs yield to foreground work (0728810)
- comments: durable comment schema and cross-session re-anchoring (c3c665a)
- comments: margin column geometry and card model (95d1711)
- comments: sidecar repository with atomic writes and corruption recovery (f69eea9)
- comments: the durable store loads with the plugin and follows the vault (a0664f3)
- comments: the job registry joins the durable store to the live runs (ab3512e)
- comments: the margin column follows the note (bec3414), closes #13
- comments: the margin column renders (f31acdb)
- comments: the side panel shows background jobs with live timers (180cc1e)
- context: follow links from prompt-source notes into the prompt (9ecc949)
- context: one budget policy, and it reports what it dropped (094f41b)
- context: one prompt-build entry point, and a preview that reads it (5d05749)
- daemon: daemon controller glue, rail armed indicator, editor-set redispatch seam (8a02ba5)
- daemon: pure daemon scheduler core (idle windows, coalescing, fire gates) (9121540)
- diff: word-level LCS diff with whitespace preservation and bridge folding (4fff879)
- domain: M0 contracts and anchoring engine (1430eb2)
- editor: dispatch incremental stale-marking while the user types (5fd0080)
- end-to-end review flow - transport, backend glue, review UI wiring (6b55b11)
- M1-M2 slice - providers, orchestration, context assembly, settings UI, CM6 skeleton (326570f)
- orchestration: enforce behavior.maxConcurrentRequests across all runs (29bf5e5)
- orchestration: lean TransformRunHandle + TransformController sharing the review gate (6525525), closes #12 3/#4
- orchestration: per-editor retry inside an existing run (4810a5b), closes 3/#4
- panel: decide per-editor finding navigation, purely (9de7ae3)
- panel: Review button in the side-panel header, bound to the panel's note (e0d85ab)
- panels: a panel run is one run, aggregation and all (ef41d84)
- panels: every surface that convenes a panel starts a panel run (89e8583)
- panels: one vocabulary for telling an editor from a panel (435e6ad), closes #11
- panel: step through one editor's findings from its section (db308de)
- panels: the aggregation request fits a budget, and says what it left out (ffdb4f8)
- panels: the charter reaches every member's prompt (6ffdb22)
- panels: the scorecard is a typed shape, not a bag of strings (cdb9e4e)
- panels: the scorecard is on screen, and its fixes point at the text (6bb0efb), closes #4
- plugin: present transform results inline with rail spinner and shared cancel (0139942)
- plugin: rail chip tooltips name each editor with its live status (c605b90)
- plugin: show what's new in a tab instead of a modal dialog (9df354b)
- rail: a panel run is one ringed entity that owns its members (35e1ba1), closes #11 #11
- rail: flip daemon mode from above the Review button (2ceaa49)
- rail: name every row, ring every status (5185627)
- rail: render named rows, status rings and motion cues (e6a2807), closes #11
- review: ask an editor for more without throwing away what it said (f4b1816), closes 3/#4
- review: bulk triage planning and severity filter state (1a513a4)
- review: one reviewability gate that says why, and the panel button state it feeds (e749cf2), closes #16
- review: per-finding push-back thread state (5eb3fbf), closes #3
- review: run instructions target a set of editors (4c8584d)
- review: the "Generate more" affordance, priced in the label (37ce095)
- review: thread turn orchestration and dispatch (112b0ef), closes #12 #7
- rules: binding rules filter the dispatch path (closes SEAM M6) (d0710ed)
- rules: pure binding-rule engine and note-type resolver (5a926f7)
- rules: vault seam for note facts and the optional OSK adapter (2251df5)
- services: selection scope plumbing for review runs (c3508d6)
- services: shared reviewability predicate + settings mutation observer (64afd8e)
- services: transform service dispatches built-in action verbs end-to-end (433ba2e), closes #4
- settings: actions tab enforces review-only panel bindings and surfaces hidden actions (ac61f7a)
- settings: CLI backends are creatable, behind two separate consents (6b23f79)
- settings: configurable request timeout replacing hardcoded 300s (28af75e)
- settings: daemon mode schema and behavior tab controls (a37da92)
- settings: import and export dialogs in the Behavior tab (cd34766)
- settings: Rules tab states the real evaluation order and what each rule does (3d419a2)
- settings: schema-versioned settings model with salvage load and referential integrity (40d8a0e)
- settings: settings transfer — export a subset, import it as a plan (50fd566)
- settings: setup wizard core — step machine, one shared backend rule, real health check (540b2c0)
- settings: starter pack seeds default action bindings (5837b77)
- settings: the Actions tab can actually author a custom action (b83c530)
- settings: the CLI backend dialog states which tool it runs (0626906)
- settings: the settings tab asks for support, like every other plugin (32d3591)
- settings: the setup wizard, its copy, the command and the first-run trigger (592a464)
- settings: vault note autocomplete on note-reference fields (5dfe4bb)
- starter-pack: humanizer persona from osk-writing-humanizer taxonomy (93d93a8)
- starter: the charter says what "top" means and what to do with dissent (00ec193)
- transport: chunk-safe SSE decoder with adversarial chunking tests (6c34f68)
- ui: a modal that shows exactly what will be sent (64bdfd3)
- ui: a rule-disabled note shows no rail, no menus, no commands (adf6bdd)
- ui: adaptive narrow-pane layout for the rail and cards (10ad3d0)
- ui: bound actions dispatch from the editor context menu (9ed101d)
- ui: current-finding decoration state and programmatic card open (87bf9d9)
- ui: editor and file context menus for review dispatch (9a5ed7c)
- ui: finding card push-back threads (42dd072)
- ui: freeform ask-an-editor modal entry point (design §6 decision 1) (991fbcd)
- ui: inline transform preview widget with word-level diff and accept/reject (01e485c)
- ui: keyboard triage loop — cursor, card-on-jump, accept/dismiss commands (8da93e4)
- ui: per-file severity filter over decorations, panel and triage (2cce37d)
- ui: rail chip click reveals and cycles the editor's findings (d186d1b)
- ui: retry affordance on failed editors in rail chip and side panel (3343271)
Bug Fixes
- a11y: a colour swatch says which colour is chosen (fdae37a)
- a11y: six of the seven settings tabs pointed aria-controls at nothing (a1f58fd)
- a11y: the settings tab bar keeps the promise its roles make (fd6f044)
- a11y: the side panel names what it shows (a62e058)
- backends: adaptive thinking for current Anthropic models, legacy budget clamps, compatible reasoning progress (c34472f)
- backends: launch consent is enforced where a backend becomes a process (80a4185)
- backends: stream the OpenRouter kind (dd664b1)
- cli: --editors stops being resolved against the rule it should override (8e03659)
- cli: distinct bad-args error code and state-derived settled report (555d6c7)
- cli: every run ends with the tree verified gone, and an aborted run never starts one (b046e89)
- cli: report mid-retry editors as retrying skips in one-shot review output (df633f8)
- cli: the Windows kill goes through the boundary's own gate (863494e)
- comments: margin column follows the right note, and costs nothing on quiet panes (d9c59b2)
- comments: the durable store stops losing comments to its own edge cases (a63b848), closes #13
- comments: the margin answers, and a refusal never strands a comment (e6506a6)
- comments: the margin column stops eating focus, cards and names (a16c534)
- daemon: abort dispatch on mid-flight disable/unload, clear schedule on same-pane navigation, reduced-motion guard (c1b84e1)
- orchestration: occurrence-aware finding dedupe and run eviction (75dee05)
- orchestration: release concurrency permit when an editor goes terminal (88456a7)
- panel: Ask for comments finds the note the panel is showing (4951d0a)
- panels: a member's findings dropped by the contract cap are counted as omitted (ab409e9)
- panels: a run being aggregated is still running, and the scorecard is checked against the roster (6d11cdf)
- panel: the finding stepper answers a keyboard, and says where it landed (77fcfdb)
- plugin: heal registerView double-load race instead of dying on load (b70b12b)
- preview,docs: an excluded note keeps its preview command, and the guide stops calling push-back a placeholder (b42ba2c)
- preview,review: the preview accounts for the panel charter, and an unavailable panel refuses before the size guard (f2c62b6)
- preview,rules: the preview accounts for action instructions, and a foreign regex cannot freeze the UI (47dd1f1)
- providers: ollama think:false and advisory-hint clamping from live-vault verification (0d359cb)
- rail: reconcile the rows, and say what is happening (a995ef2)
- review: a detached run never opens a thread turn (10b399f)
- review: actionable requires an anchored text like accept does (ee9c7c7)
- review: close CLI/selection contract holes from adversarial fix pass (3e0f05f)
- review: rebase the triage cursor onto live anchors (8ec4ce8)
- review: report disabled and deleted instruction editors as typed skips (6d44d08)
- rules,review: one note-scoped answer to "who would review this note" (7de8c4c)
- rules: detect the Starter Kit, and pick note types from its list (e1a2e57)
- rules: the Starter Kit is only mentioned when it is there (6c4321a)
- settings: an export never carries CLI launch consent (06cdbf9)
- settings: an import is a destination, and a cap must not orphan a reference (06be0ff)
- settings: repair duplicate entity ids and settings-tab paper cuts (c3499d2), closes #12
- settings: the CLI surfaces stop overstating what they know (fa5da22)
- settings: the seeded panel's name is sentence case like everything else (ece2e68)
- settings: the two Behavior toggles that promised things and did nothing (0b4d198)
- settings: the wizard saves what it validated, and refuses the case it says it refuses (ba85644)
- styles: the stylesheet stops styling the whole app (c4027bd)
- transport: name CORS in the opaque fetch network failure message (fa066a4)
- ui: a renamed folder no longer strands a run under every note in it (d35d485)
- ui: accessible names for the filter, the thread and the rail button (a6ad3a9)
- ui: ask-editor submit guards note switch and collapsed-capture scope (5a0b1c3)
- ui: card-on-jump survives the reveal scroll (70e153a)
- ui: isolate finding accept from adjacent undo history (045986c)
- ui: panel bulk actions act on the file the panel shows (7144183)
- ui: push-back locks the card immediately and never loses the message (cbec624)
- ui: sentence case stops being an opinion and becomes a rule (7b76f22)
- ui: status-bar fallback, file lifecycle cleanup, timer and card guards (f11180d)
- ui: the panel is called AI Editor Review everywhere (2a0a741)
- ui: the two asks stop being hidden by a rule they override (0b62197)
- ui: the two strings the panel rename missed (2f7337a)
- ui: the verdict reaches the rail's accessible name, cards say which panel, and the fan-out prices itself (49cd9f3), closes #11
- ui: transform preview survives note-switch loads and isolates accept undo (b100e6e)
- ui: user-facing names say AI Editor, and the wizard gets its spacing (d53511e)
- ui: verdict pills say what the verdict means, not the wire token (298e02e)
- ui: wider finding card and live-view fallback for panel binding (c1b83b5)
- whats-new: the unload path stops detaching the tab's leaves (cbe4b8d)
Performance Improvements
- anchoring: one normalization pass per document, not per quote (17ae9ad)
- context: one view of the vault per run, not one per editor (dce515a)
- diff: a large rewrite gets a real diff, not a before/after (a15973e)
- ui: the highlights are capped, and the panel says by how much (f560297)
Enjoying this plugin?
- 💬 Join the Knowii community and learn to organize your notes and put your knowledge to work, together with fellow knowledge workers
- 📬 Subscribe to my newsletter for Obsidian, Personal Knowledge Management and note-taking
▶️ Subscribe to my YouTube channel- ❤️ Become a GitHub Sponsor or buy me a coffee
- 🧰 Discover my other Obsidian plugins and my products