github backnotprop/plannotator v0.17.1

one hour ago

Follow @plannotator on X for updates


Missed recent releases?
Release Highlights
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
v0.16.0 GitHub Copilot CLI, external annotations API, bot callback URLs, interactive checkboxes, print support, diff display options
v0.15.5 Custom display names, GitHub viewed file sync, expand/collapse all in file tree, search performance, WSL fix
v0.15.2 Compound Planning skill, folder annotation, /plannotator-archive slash command, skill installation via platform installers
v0.15.0 Live AI chat in code review, plan archive browser, folder file viewer, resizable split pane, Pi full feature parity

What's New in v0.17.1

v0.17.1 is a patch release that fixes PR review in the Pi extension and addresses several cross-platform bugs found during an exhaustive parity audit of every server endpoint between Bun and Pi runtimes.

Pi PR Review

The Pi extension's plannotator-review command was completely ignoring PR URL arguments and always falling back to local git diffs. v0.17.1 implements the full PR review flow: URL parsing, authentication checks, PR metadata fetch, and local worktree creation for both same-repo and cross-repo PRs. Same-repo PRs use git worktree add --detach with the PR's head ref; cross-repo forks use a shallow clone with tracking refs for both branches.

Beyond the missing PR flow, an audit of all 27 review server feature areas uncovered 12 parity gaps in the Pi server. These ranged from missing diagnostic logging on PR actions to incorrect access guards that would have allowed diff switching in PR mode. All have been fixed.

Remote URL Parsing

parseRemoteUrl has been rewritten to handle the full range of git remote formats. The previous regex incorrectly matched HTTPS URLs with non-standard ports (e.g., https://gitlab.example.com:8443/group/project.git) as SSH, and failed on multi-segment GitLab paths like group/subgroup/project. The new implementation handles SSH, SSH with port (ssh://git@host:22/path), standard HTTPS, and HTTPS with custom ports as separate cases. This fix applies to both Bun and Pi runtimes.

Cross-Repo Clone Fixes

Cross-repo PR clones (forks from different organizations) had two issues. The gh repo clone and glab repo clone commands don't accept a --hostname flag, so self-hosted GitHub Enterprise and GitLab instances would fail. The fix uses GH_HOST and GITLAB_HOST environment variables instead, which both CLIs respect. The shallow fetch depth has also been increased from 50 to 200 commits to handle PRs with longer histories.

Additional Changes

  • Git Add button hidden in PR mode. The staging button was incorrectly visible during PR reviews because the server returned diffType: undefined and the client defaulted to "uncommitted". The client now disables staging when PR metadata is present
  • Diff viewer theme flash fix. Switching files in the diff viewer caused a brief flash of the wrong theme. The Pierre diff library's theme was being computed asynchronously via requestAnimationFrame; the initial state now reads CSS custom properties synchronously so the correct background appears on the first frame
  • Resolved/Outdated filters in PR comments. The PR comments tab now has toggle buttons to hide resolved or outdated review threads. Filters use the same green and amber color tokens as the existing status badges and integrate with the existing Clear Filters control

Install / Update

macOS / Linux:

curl -fsSL https://plannotator.ai/install.sh | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

Claude 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 ~/.bun/install/cache/@plannotator

Then in opencode.json:

{
  "plugin": ["@plannotator/opencode@latest"]
}

Pi: Install or update the extension:

pi install npm:@plannotator/pi-extension

VS 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

Full Changelog: v0.17.0...v0.17.1

Don't miss a new plannotator release

NewReleases is sending notifications on new releases.