Follow @plannotator on X for updates
Missed recent releases?
Release
Highlights
v0.27.21
Remote and phone sessions load several times faster, real Request changes on GitHub, model pickers show real names, OpenCode fixes
v0.27.20
Mistral Vibe support, annotate gets the full Options menu and Settings, jj Commits panel, long lines wrap in plan code blocks
v0.27.19
Before/After image previews in code review, file comments as GitHub file threads, forge-correct #123 links, /plannotator-last finds the right session
v0.27.18
Model pickers from your installed Claude and Codex (Opus 5.5, Fable 5.1, GPT-6), unsent PR review comments survive new pushes
v0.27.17
Diagram files open in the diagram viewer, OpenCode switches model with agent, idle review stops polling the git remote, Tree is the default review view
v0.27.16
Themed diagrams on Mermaid 12, comment on any node or edge, patch-file review, embedded HTML documents render
v0.27.15
Plannotator TUI and Herdr Annotate announcement, element context on pinpoints, HTML links open as linked documents, All files panel, Classic diff default
v0.27.14
Pi plan progress survives compaction, Codex threads across rollout files, WSL browser setting, Mod+E edit mode
v0.27.13
Open a review on a specific base ( --base, --diff-type), symlink containment on /api/doc, CI flake fix, Amp decision relay
v0.27.12
Unified decision control, token hover cards, local-vs-remote diff, approval notes
v0.27.11
OpenCode server leak fix, durable local feedback archive, unknown-subcommand fix
v0.27.10
Auto-viewed files on scroll, annotation undo/redo, OpenCode 2 slash commands restored, npm 12 agent terminal fix
What's New in v0.27.22
A fix release. Plans can open the documents they link to, Claude review jobs are locked down more tightly, Code Tour works on Linux machines where Claude Code's sandbox cannot start, and Pi no longer reviews an outdated plan. Eight pull requests, two of them from community contributors, answering four reports.
Plans can open the documents they link to
Claude Code saves plans in ~/.claude/plans/, outside your project. Plannotator only looked inside the project for linked files, so a plan that linked [notes](notes.md) or [[notes]] to a file saved beside it showed a link that went nowhere.
Plan review now also looks in the plan file's own folder, but only for files the plan actually links to, matched by exact name. Every plan you have ever made lives in that folder, so a plan can open its own notes without being able to reach any other plan. Links inside code blocks do not count, and plans kept inside the project still fall back to the project root as before. If a file beside the plan has the same name as a project file, the one beside the plan wins.
(#1620, closing #1443, by @bendrucker)
Claude review jobs are locked down
Code review, Code Tour and Guided Review run Claude Code with a list of read-only commands they are allowed to use. That list had grown looser than its purpose: a few entries accepted options that could run other programs or write files, and the review prompt contains the diff under review, which is untrusted text. For most people, Claude Code's own sandbox is off, so that list was the only thing standing between a hostile diff and the machine.
The list is now narrowed to the commands the prompts actually use, shared by all three job types, with the risky options explicitly refused. Jobs also no longer read a repository's own .claude/settings.json, so a pull request you are reviewing cannot add permissions or hooks to the job. Your personal Claude Code settings and any managed settings still apply. Jobs no longer load your MCP servers either; before, a Code Tour could wander into tools from your IDE.
Code Tour on Linux when Claude Code's sandbox cannot start
If your Claude Code settings enable its sandbox and the machine lacks bubblewrap and socat, the sandbox fails to start and Claude refuses every command. Code Tour then ended with "Tour blocked: git access is unavailable" and no hint why.
Now, when a Claude job has every ordinary git command refused, the Agents tab shows a warning explaining what happened. You can install those two packages, or turn Claude's sandbox off for Plannotator's jobs only with PLANNOTATOR_CLAUDE_SANDBOX=0 or { "claudeSandbox": false } in ~/.plannotator/config.json. Plannotator never turns the sandbox off on its own, since that would quietly override a choice you made.
(#1628, closing #1627, reported by @Infeligo)
Pi reviews the plan you just wrote
Pi runs all the tool calls in one assistant message at the same time. When the agent edited the plan and submitted it in the same message, the submit could read the file before the edit landed, so the review opened on the previous version and version history recorded it. The submit tool now tells Pi to run its batch in order, so the edit always finishes first. Every Pi version the extension supports honors this.
(#1623, closing #1622, reported by @bugs-wkettlitz)
Additional Changes
- Claude reviews no longer fail after producing findings. Recent Claude Code versions can end one run with several result messages when the model uses background subagents, and the last one is often empty. Plannotator read only the last message, so about one code review in three was marked failed even though Claude had returned findings. Review, Code Tour and Guided Review now read the newest message that carries results (#1630).
- VS Code tabs follow a changed data folder. Plannotator looked up VS Code's connection file once at startup, so setting
PLANNOTATOR_DATA_DIRlater made opening a review in VS Code quietly fall back to the browser. It now looks the file up each time (#1621, closing #1502, by @gwynnnplaine). - Tests stay out of your data folder. Running the test suite from a package directory wrote drafts, history and saved plans into the real
~/.plannotator, and a personal config could make tests fail. Every package now uses the same temporary data folder the root run does (#1624, #1626).
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".
Pi: Update @plannotator/pi-extension to 0.27.22 and restart Pi.
OpenCode: Clear cache and restart:
rm -rf ~/.bun/install/cache/@plannotatorWhat's Changed
- fix(server): resolve the VS Code IPC registry path per call by @gwynnnplaine in #1621
- fix(plan): open docs linked beside the plan file by @bendrucker in #1620
- fix(pi): run plannotator_submit_plan sequentially so it never reads a stale plan by @backnotprop in #1623
- test(pi): sandbox review-server tests from the user's config by @backnotprop in #1624
- test: sandbox the data dir when tests run from a package directory by @backnotprop in #1626
- fix(agents): hermetic Claude review jobs + sandbox opt-out for Linux by @backnotprop in #1628
- security(agents): narrow Claude job command allowlists to what the prompts use by @backnotprop in #1629
- fix(agents): read structured output from any Claude result event, not just the last by @backnotprop in #1630
Contributors
@bendrucker made plans able to open the notes and documents saved next to them, a gap every Claude Code user with multi-file plans ran into.
@gwynnnplaine tracked down the last module that froze the data folder at startup and fixed it with tests that reproduce the bug.
Community
- @bugs-wkettlitz diagnosed the Pi race down to pi's parallel tool execution and proposed the exact fix in #1622
- @Infeligo reported Code Tour failing on Linux, with the full tool log, in #1627
Full Changelog: v0.27.21...v0.27.22