Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| v0.10.0 | Short URL sharing with E2E encryption, code suggestions in review UI, CJK input method support, customizable Obsidian filenames, XDG install fix |
| v0.9.3 | Linked document navigation & annotation, VS Code diff integration, toolbar dismiss fix, automated npm publishing |
| v0.9.0 | Plan Diff with two view modes, version history, sidebar redesign, terminology cleanup |
| v0.8.5 | Pi coding agent support, auto-close countdown, image endpoint security fix, OpenCode package fix |
| v0.8.0 | Open source (MIT/Apache-2.0), annotate command, self-hosted share portal, resizable panels, mermaid controls, auto-close on approval, documentation site |
| v0.7.0 | TOC sidebar, sticky actions, save to notes without approving, import teammate reviews, viewed file tracking |
| v0.6.8 | Mermaid diagram rendering, repo/branch info display |
| v0.6.7 | Quick Comment mode, type-to-comment shortcut, smart agent detection |
What's New in v0.11.0
Annotations are no longer a single-session gamble. Auto-save drafts persist your work in the background — if the server crashes, the browser refreshes, or you accidentally close the tab, your annotations are waiting when you come back. The comment writing experience was rebuilt around a proper popover with expandable dialog mode, solving the cramped single-line textarea that made long comments painful. Obsidian users get a new vault browser sidebar tab for browsing and annotating vault files directly during plan review. And a critical bug where Claude Code was silently ignoring deny feedback has been fixed — your "Request Changes" annotations now actually reach the model.
Auto-Save Annotation Drafts
Every annotation you make is now automatically saved in the background to ~/.plannotator/drafts/. If the Plannotator server crashes, Bun segfaults, the browser refreshes, or your SSH connection drops — your work survives. When you reopen the same plan, you're prompted to restore the draft or discard it.
Drafts are keyed by plan content hash so they match the right plan even across server restarts. They're cleaned up automatically on successful approve or deny. Both the plan review and code review UIs have independent draft systems.
This was the single most frustrating gap in the tool — losing 20 minutes of careful annotation feedback to a stray kill signal or browser reload. It should have shipped months ago.
Comment Popover
The comment textarea — previously a cramped inline input at the bottom of the annotation toolbar — is now a dedicated popover that appears near your text selection. It auto-focuses, auto-sizes, and supports image attachments inline. For longer comments, click the expand button to open a full dialog with more room to write.
The popover tracks the anchor element's position on scroll and resize, flips above the selection when there isn't enough space below, and handles click-outside dismissal correctly even when child portals (like the image annotator) are open. Keyboard shortcuts carry over: Cmd+Enter to submit, Escape to close.
Obsidian Vault Browser
A new sidebar tab lets Obsidian users browse their vault's markdown files directly during plan review. Enable it in Settings > Saving > Obsidian, and a vault icon tab appears alongside Table of Contents and Version Browser. Click any .md file to open and annotate it — the annotations are included in the feedback sent back to the agent.
Plans often reference existing docs, specs, or notes that live in your vault. Instead of switching to Obsidian or using /plannotator-annotate separately, you can now pull in relevant context and annotate it as part of the same review session.
- Inspired by @TomLucidor's discussion on Obsidian integration (#181)
Improved Deny Message Framing
The deny message — what Claude sees when you click "Request Changes" — has been rewritten to make your feedback harder to overlook. The previous framing was technically correct but easy for the model to skim past, especially with longer annotation lists. The new framing structures the feedback more assertively so Claude incorporates your annotations rather than re-entering plan mode with a surface-level revision.
- Thanks to @injun-choi-0914 for reporting this (#215)
OpenCode: Configurable Plan Review Timeout
The submit_plan tool in the OpenCode plugin had a hardcoded timeout that would reopen the browser window after 5-10 minutes if you hadn't reviewed the plan yet. After several cycles of this, the agent would give up and print the plan to the console. The timeout is now configurable — set it in your OpenCode config to match your workflow, whether you review plans immediately or let them queue up while you step away.
Additional Changes
- Missing annotate command in install scripts — the
/plannotator-annotateslash command wasn't included in the plugin install, so users who updated from pre-v0.8.0 couldn't use the annotate feature without manual setup (#218 by @maggiehe) - Pi extension: blocklist-only bash safety — the Pi extension now uses a blocklist approach for bash command safety instead of an allowlist, and the plan file path is interactive rather than hardcoded (#222)
- Server modularization — extracted shared route handlers (image serving, file uploads, draft API) into reusable modules, reducing duplication across the plan, review, and annotate servers (#214)
- CommentPopover image attachment fix — image attachments in the comment popover no longer cause the popover to close, fixed via a
data-popover-layerconvention for portal click-outside detection (#226)
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".
OpenCode: Clear cache and restart:
rm -rf ~/.bun/install/cache/@plannotatorThen in opencode.json:
{
"plugin": ["@plannotator/opencode@latest"]
}Pi: Install or update the extension:
pi install npm:@plannotator/pi-extensionWhat's Changed
- feat: Obsidian vault browser sidebar tab by @backnotprop in #209
- refactor: extract shared route handlers and modularize plan server by @backnotprop in #214
- feat: auto-save annotation drafts to survive server crashes by @backnotprop in #217
- fix: add missing /plannotator-annotate command to install scripts by @maggiehe in #218
- feat: CommentPopover for better comment writing UX by @backnotprop in #220
- feat(pi-extension): blocklist-only bash safety + interactive plan file path by @backnotprop in #222
- fix: make OpenCode submit_plan timeout configurable by @backnotprop in #223
- fix: improve deny message framing to prevent ignored feedback by @backnotprop in #224
- feat: What's New v0.11.0 first-open dialog by @backnotprop in #225
- fix: CommentPopover closes when adding image attachments by @backnotprop in #226
Contributors
Community members who reported issues and requested features that shaped this release:
- @eromoe — #212 (auto-save annotation drafts)
- @kylerm42 — #219 (comment textarea UX)
- @injun-choi-0914 — #215 (deny feedback not reaching model)
- @L3tum — #221 (OpenCode plan review timeout)
- @TomLucidor — #181 (Obsidian integration discussion)
Full Changelog: v0.10.0...v0.11.0