Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| 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 |
| 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 |
What's New in v0.19.5
v0.19.5 is a review editor release with five changes across four PRs and one direct commit. The headline feature is the all-files diff view, which renders every changed file in a single scrollable pane. This release also fixes two bugs reported by community members: code review failing on repos with non-ASCII file paths (Korean, Chinese, Japanese, Cyrillic, etc.), and hide-whitespace destroying code indentation.
All-Files Diff View
The review editor now has a unified scrolling mode that renders every changed file in a single pane, with sticky file headers and viewport-based lazy mounting via IntersectionObserver. Instead of clicking through files one at a time, you can scroll through the entire diff in one pass.
Each file has a sticky header that stays visible as you scroll, showing the file path, viewed/staged status, and collapse controls. Files can be collapsed individually or marked as viewed (which auto-collapses them). Keyboard shortcuts make navigation fast: [ and ] scroll between files, v marks a file as viewed and collapses it, a stages or unstages, c opens a file comment, and x collapses or expands. The z key undoes the last collapse, reopening the file and scrolling back to it.
The all-files view opens by default and coexists with single-file tabs in the Dockview panel system. Click-and-drag line selection works directly in the diff content area, not just the gutter.
- #640 by @backnotprop
File Comments in All-Files View
The single-file diff view already supported file-scoped comments via a button in the file header. The all-files view now has the same capability. Press c or click the comment button in any file's sticky header to open a comment popover anchored to that file. This rounds out the annotation workflow so you can leave file-level feedback without switching to a single-file tab.
Clickable Code File Paths in Plans
Inline code spans like `src/utils/foo.ts` and bare prose paths like packages/server/index.ts are now detected as code file paths and rendered as clickable elements. Clicking one opens the code file viewer with syntax highlighting, the same viewer introduced in v0.19.4 for markdown file links.
Backtick-wrapped paths use direct file extension matching, while bare prose paths require a / separator to avoid false positives on plain words. A subtle shimmer animation hints at interactivity without disrupting the familiar inline-code appearance. The shimmer respects prefers-reduced-motion.
- #639 by @backnotprop
Server-Side Hide Whitespace
The hide-whitespace toggle introduced in v0.19.4 processed whitespace suppression on the client side by normalizing file contents before diffing. This worked for most cases but had a side effect: the normalization trimmed and collapsed whitespace in the file content itself, destroying all code indentation in the rendered diff.
The fix moves whitespace handling to the server, where git diff -w does the comparison correctly. Git ignores whitespace for diffing purposes but preserves the original formatting in its output. The setting is read from ~/.plannotator/config.json on startup so the initial diff already respects the saved preference. Toggling the setting does an in-place patch update without resetting the active file.
- #638 by @backnotprop, fixing indentation regression reported by @zeroZshadow on #631
Non-ASCII and Whitespace File Path Support
Code review was showing 0 files when the repository contained paths with non-ASCII characters (Korean, Chinese, Japanese, accented Latin, Cyrillic, etc.) or whitespace. Git defaults to core.quotePath=true, which emits paths as octal escapes (e.g., \355\225\234\352\265\255\354\226\264 instead of 한국어). The diff parser expected unquoted paths and silently dropped every affected file.
The fix passes -c core.quotePath=false as a per-invocation flag to both the Bun and Pi server git entry points. This outputs raw UTF-8 paths without modifying the user's git config. It has no effect on ASCII-only repositories.
- #637, closing #628 reported by @silee9019
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
- fix(review): support non-ASCII and whitespace file paths in code review by @backnotprop in #637
- fix(review): move hide-whitespace to server-side git diff -w by @backnotprop in #638
- feat(ui): detect code file paths in backtick spans and bare prose by @backnotprop in #639
- feat(review): all-files diff view with unified scrolling by @backnotprop in #640
- feat(review): file comment button in all-files view + remap C/X shortcuts by @backnotprop
Community
Two community reports directly shaped this release:
- @silee9019 filed a detailed bug report in #628 documenting the non-ASCII file path issue, including a minimal reproduction case and the root cause analysis that identified
core.quotePathas the culprit - @zeroZshadow caught the hide-whitespace indentation regression on #631, which led to the server-side rewrite in #638
Full Changelog: v0.19.4...v0.19.5