github backnotprop/plannotator v0.19.15

latest release: v0.19.16
5 hours ago

Follow @plannotator on X for updates


Missed recent releases?
Release Highlights
v0.19.14 Visual explainer skill update, PFM code-file hover previews, Graphviz, diff tab size and line bg intensity, hooks settings tab
v0.19.11 Jujutsu (jj) VCS backend, slimmer hunk separators, collapse viewed files, multi-line gutter selection fix
v0.19.9 OpenCode user-managed workflow, Pi model switch fix, Codex skill install, shimmer removal
v0.19.8 49 themes with syntax highlighting, keyboard shortcut registry, smart code-file path validation, remote URL notifications
v0.19.7 Codex Stop-hook plan review, Codex skills, sidebar auto-close, file tree context menu
v0.19.6 Non-blocking Pi browser sessions, agent picker dropdown for OpenCode, annotate-last file resolution fix
v0.19.5 All-files diff view, clickable code file paths, server-side hide whitespace, non-ASCII path support
v0.19.4 All-files diff type, code file viewer, hide whitespace, quick-settings popover
v0.19.3 Configurable feedback messages, hide merged PRs in stacked PR selector
v0.19.2 Stacked PR review, source line numbers in feedback, diff type dialog re-show, ghost dot removal, docs cleanup

What's New in v0.19.15

v0.19.15 is a fixes and reliability release. It resolves GitLab pagination failures on large MRs, prevents OpenCode commands from blowing up agent context with auto-attached files, fixes loose list rendering, and addresses several smaller issues across the install scripts and port handling. On the feature side, the diff base picker now supports commit SHAs and jj gains an evolution history diff mode. Thirteen PRs in this release, four from external contributors including one first-timer.

Commit-Based Diff Base

The base branch picker now has a "Commits" tab that lists the last 20 commits on your branch. Click any commit to use it as the diff base instead of a branch. This lets you compare against a specific point in your branch history, which is useful for reviewing incremental progress or isolating a set of changes.

You can also type a commit SHA directly into the search box and press Enter to use it as the base. Both full and abbreviated SHAs work.

Jujutsu Evolution Diff

For jj users, the diff type picker now includes an "Evolution" option that shows the amendment history of the current change. This uses jj evolog to compare the working copy against its previous version, letting you see what changed since your last amend or squash. The option only appears when the current change has 2 or more evolog entries.

An evolution log picker in the toolbar lets you select which prior version to compare against when multiple amendments exist.

OpenCode Command Intercept Fix

OpenCode users running /plannotator-review, /plannotator-annotate, or /plannotator-archive on large codebases could hit context-blowing issues. The commands resolved file references before the handler could suppress them, causing large file contents to be auto-attached as context parts. The commands now intercept in command.execute.before instead of the post-LLM event handler, clearing output.parts before any file resolution occurs. This also fixes a latent bug where /plannotator-last could fail to suppress the LLM turn due to an array reassignment instead of in-place mutation.

GitLab Reliability

Two fixes for GitLab merge request reviews:

Concatenated JSON parsing. glab api --paginate returns concatenated JSON arrays ([...][...]) instead of a single merged array. Large MRs with many files, comments, or CI jobs would fail with a JSON parse error. The response parser now handles multi-page concatenation correctly.

Inline comment persistence. When posting inline review comments to GitLab, API timeouts or rate limits could silently drop comments. Failed comments are now saved to ~/.plannotator/failed-comments/ with the MR slug, and the UI distinguishes between partial failures (warns, avoids duplicates on retry) and total failures (surfaces the error).

Additional Changes

  • Loose list continuation indent: Multi-paragraph list items now correctly indent continuation content under the parent bullet instead of rendering it flush-left. — #705, closing #704 (reported by @Thraka)
  • File comment draft persistence: File-level comments in code review now survive closing and reopening the comment popover. Drafts are keyed by PR URL, diff scope, and file path. — Authored by @codythatsme in #721
  • Hooks tab guidance: The Settings Hooks tab now shows the expected hook file path as a copyable button with creation instructions when the improvement hook file is not found. — #707
  • PLANNOTATOR_PORT=0 accepted: Setting PLANNOTATOR_PORT=0 no longer logs a spurious "Invalid port" warning. Port 0 tells the OS to assign a random port, matching the default local behavior. — #716, closing #715 (reported by @hearkenmx)
  • Codex hooks feature flag: The install script now writes hooks = true instead of codex_hooks = true in Codex config, matching the current Codex CLI flag name. — Authored by @leoreisdias in #708
  • Codex install guidance: Install script output now includes Codex-specific setup instructions. — Authored by @leoreisdias in #720
  • CI security: Scoped id-token:write permission to only the AWS OIDC deploy jobs that need it, removing it from the release workflow. — #706

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".

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

What's Changed

New Contributors

Community

@madhusudancs built the jj evolution diff mode from scratch, adding a new diff type, the evolog parser, and the evolution log picker UI.

@codythatsme contributed file comment draft persistence, a small change that removes the friction of accidentally closing a comment popover mid-thought.

@leoreisdias contributed two Codex improvements: updating the hooks feature flag name to match the current CLI, and adding setup guidance to the install script output.

Issue reporters who drove fixes in this release:

Full Changelog: v0.19.14...v0.19.15

Don't miss a new plannotator release

NewReleases is sending notifications on new releases.