Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| 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 |
| v0.17.1 | Pi PR review parity, parseRemoteUrl rewrite, cross-repo clone fixes, diff viewer flash fix |
| v0.17.0 | AI code review agents, token-level annotation, merge-base diffs |
| v0.16.7 | Gemini CLI plan review, install script skills directory fix |
| v0.16.6 | Perforce support, Pi shared event API, suggested code prefill, file tree expand fix |
| v0.16.5 | Resize handle scrollbar fix, VS Code Marketplace publish |
| v0.16.4 | Compound planning improvement hook, GitHub Enterprise + self-hosted GitLab, dockview workspace, new themes |
| v0.16.3 | Pi phase configuration, CLI help, untracked file discovery fix, review scroll reset |
| v0.16.2 | Draggable comment popovers, cross-file annotation visibility, custom diff fonts, OpenCode verbose log fix |
| v0.16.1 | SSE stream idle timeout fix for external annotations API |
What's New in v0.17.5
v0.17.5 is a hotfix for a server crash affecting plannotator review on systems without Perforce installed, plus a fix for stale OpenCode plugin caches that the install script failed to clear.
VCS Detection Crash When Perforce Is Not Installed
When running plannotator review, the server detects which version control system manages the current directory. The detection loop tries each provider in order: git first, then Perforce (p4). The Perforce provider calls Bun.spawn(["p4", "info"]) to check for a workspace. On systems where the p4 binary isn't installed, Bun.spawn throws an ENOENT error that was not caught. The unhandled exception crashed the Bun server process.
This affected every user who doesn't have Perforce installed and ran plannotator review. The git provider's detection had the same vulnerability — if git wasn't in $PATH (possible on some Windows configurations), the spawn would throw before Perforce detection even ran.
Both providers now catch spawn failures and return false, allowing the detection loop to continue to the next provider or fall back to git as the default. Perforce support continues to work for users who have it installed.
Install Script Cache Path Fix
The install script clears cached OpenCode plugin packages to force a fresh download on the next run. The cache-busting targeted ~/.cache/opencode/node_modules/@plannotator, but OpenCode actually stores plugin packages at ~/.cache/opencode/packages/@plannotator. Users who ran the install script to update were still running the old cached plugin version in OpenCode until the cache expired or was manually cleared.
Both install.sh and install.ps1 now clear the correct path.
Install / Update
macOS / Linux:
curl -fsSL https://plannotator.ai/install.sh | bashWindows:
irm https://plannotator.ai/install.ps1 | iexPin a specific version:
curl -fsSL https://plannotator.ai/install.sh | bash -s -- --version v0.17.5Claude Code Plugin: Run /plugin in Claude Code, find plannotator, and click "Update now".
Copilot CLI:
/plugin marketplace add backnotprop/plannotator
/plugin install plannotator-copilot@plannotator
Gemini CLI: The install script auto-detects ~/.gemini and configures hooks, policy, and slash commands. See apps/gemini/README.md for manual setup.
OpenCode: Clear cache and restart:
rm -rf ~/.cache/opencode/packages/@plannotator ~/.bun/install/cache/@plannotatorThen in opencode.json:
{
"plugin": ["@plannotator/opencode@latest"]
}Pi: Install or update the extension:
pi install npm:@plannotator/pi-extensionVS Code Extension: Install from the VS Code Marketplace. Tested with Claude Code running in VS Code's integrated terminal. Not currently compatible with Anthropic's official VS Code extension due to upstream hook bugs.
What's Changed
- fix: catch VCS detection spawn failures when p4/git not in PATH by @backnotprop in #527
- fix: correct OpenCode cache path in install scripts by @backnotprop in #527
Community
@Zengwenj reported the crash in #528 with a clear reproduction path and suspected cause. @xxJava confirmed the issue on both Windows and macOS and provided the full stack trace that pinpointed the exact line in p4.ts. @boris-gorbylev and @chocochu confirmed the issue on macOS with OpenCode.
Full Changelog: v0.17.4...v0.17.5