Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| v0.19.1 | Hook-native annotation, custom base branch, OpenCode workflow modes, quieter plan diffs, anchor navigation |
| v0.19.0 | Code Tour agent, GitHub-flavored Markdown, copy table as Markdown/CSV, flexible Pi planning mode, session-log ancestor-PID walk |
| v0.18.0 | Annotate focus & wide modes, OpenCode origin detection, word-level inline plan diff, Markdown content negotiation, color swatches |
| v0.17.10 | HTML and URL annotation, loopback binding by default, Safari scroll fix, triple-click fix, release pipeline smoke tests |
| v0.17.9 | Hotfix: pin Bun to 1.3.11 for macOS binary codesign regression |
| v0.17.8 | Configurable default diff type, close button for sessions, annotate data loss fix, markdown rendering polish |
| v0.17.7 | Fix "fetch did not return a Response" error in OpenCode web/serve modes |
| v0.17.6 | Bun.serve error handlers for diagnostic 500 responses, install.cmd cache fix |
| v0.17.5 | Fix VCS detection crash when p4 not installed, install script cache path fix |
| v0.17.4 | Vault browser merged into Files tab, Kanagawa themes, Pi idle session tool fix |
| v0.17.3 | Sticky lane repo/branch badge overflow fix |
| v0.17.2 | Supply-chain hardening, sticky toolstrip and badges, overlay scrollbars, external annotation highlighting, Conventional Comments |
What's New in v0.19.2
v0.19.2 adds stacked PR review, source line numbers in exported feedback, and several UX fixes. Five PRs, one from a first-time contributor.
Code Review
Stacked PR Review
Reviewing a PR that belongs to a stack used to mean reviewing it in isolation. You could see the diff for that one branch, but not how it fit into the larger chain. Switching to a different PR in the stack meant closing the review and starting a new session.
Stacked PR review keeps you in a single session across every PR in the stack. A stack tree popover shows the full chain with clickable navigation. Each PR gets its own worktree checkout, so switching PRs recomputes the diff against the correct base without mixing changes between layers. Two scope modes let you toggle between viewing a single PR's changes (layer) and all accumulated changes from the default branch (full-stack).
Multi-PR posting lets you submit review feedback to multiple PRs at once. A confirmation dialog shows exactly where comments will go before posting to GitHub or GitLab, with parallel submission and partial-failure retry. Annotations from full-stack diffs can't be mapped to a single PR's line numbers, so they're surfaced as copyable markdown rather than silently dropped.
A new "Branch" option in the default diff type setting (and first-run dialog) gives users who work primarily with committed changes a one-click default.
- #620 by @backnotprop
Source Line Numbers in Exported Feedback
When Claude receives annotation feedback, it got the block content and the highlighted text but had no way to locate the annotation in the source file. For large documents with repeated headings or similar paragraphs, this ambiguity forced extra round-trips.
Exported annotations now include source line numbers. Single-line blocks show (line 42), multi-line blocks show (lines 10–14). Code blocks account for fence lines when computing ranges. Files with YAML frontmatter are offset-corrected so line numbers match the original file, not the parsed output.
For converted content (HTML files rendered through Turndown, URLs fetched via Jina Reader), the feedback includes a caveat that line numbers refer to the converted markdown rather than the original source. When viewing a linked HTML document within a plan, the conversion flag is derived per-document so mixed collections of markdown and HTML files each get the correct label.
- #623 by @backnotprop
UX
Diff Type Dialog Re-Presented
Many users who set up Plannotator before v0.17.8 never saw the "Committed" option (branch diff vs. the default branch) because the first-run dialog only showed at install time. Users were asking how to set committed changes as their default without realizing the option existed.
The dialog is now re-presented to existing users with clearer descriptions, a wider layout with a 60/40 split, and a hover-to-zoom preview of the toolbar dropdown. The dialog reminds users they can switch views anytime during a review. Existing preferences are preserved — this only re-shows the picker, it doesn't reset anyone's choice.
Options Menu Ghost Dot Removed
The pulsing notification dot on the Options menu was meant to flag new settings after an update. In practice, the dot appeared on every session and users couldn't figure out how to dismiss it. The entire new-settings-hint system has been removed. Settings changes are communicated through release notes instead.
Additional Changes
- Docs: toolbar inventory updated. Documentation references to "Insert" and "Replace" annotation types have been scrubbed to match the shipped UI, which uses Delete, Comment, Quick Label, Looks Good, Global Comment, and Copy. — #618 by @vxio, closing #617
- Docs: OpenCode plugin configuration. Clarified plugin setup instructions for OpenCode users. — commit
33f409a
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: stacked PR review — PR switching, scope toggling, multi-PR posting by @backnotprop in #620
- feat(plan,annotate): include source line numbers in exported feedback by @backnotprop in #623
- docs: scrub Insert/Replace from docs to match shipped UI by @vxio in #618
- fix: remove ghost dot on Options menu (new-settings-hint system) by @backnotprop in commit
7ab2d8f - fix: re-show diff type setup dialog with clearer options and toolbar hint by @backnotprop in commits
aaad89e,03d4e8b
New Contributors
Community
@vxio noticed the docs still referenced Insert and Replace annotation types that were removed from the UI, filed #617, and contributed the fix in #618. First contribution to the project.
Full Changelog: v0.19.1...v0.19.2