Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| v0.19.24 | Amp integration, configurable data directory, Auto Mode permission option, Pi plan approval fix |
| v0.19.23 | Droid integration, Windows Pi AI fix, quieter update indicator |
| v0.19.22 | Safari copy fix in plan viewer, CLAUDE_CONFIG_DIR support for session logs |
| v0.19.21 | Ask AI in plan review and annotate mode, shared AI runtime, origin-aware provider defaults |
| v0.19.20 | Interactive goal setup UI, OpenCode submit_plan fixes, browser no-op sentinel handling for Claude agents |
| v0.19.18 | Edit-based submit_plan for OpenCode, Pi namespace migration, Codex annotate-last fix, OpenCode commands dir fix |
| v0.19.17 | Reworked goal setup skill (interview-driven flow), CLI --version flag |
| v0.19.16 | Code navigation with peek view (Cmd/Ctrl+click tokens in diffs) |
| v0.19.15 | Commit-based diff base, jj evolution diffs, GitLab reliability fixes, OpenCode command intercept fix |
| 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 |
What's New in v0.19.25
v0.19.25 is a patch release with five bug fixes. Three address production issues with the Amp plugin introduced in v0.19.24, one fixes Mermaid diagram rendering, and one fixes a UI flicker in Settings. Two PRs are from external contributors, including one first-timer.
Amp Plugin Production Fixes
The Amp integration shipped in v0.19.24 worked in development but failed in production when installed globally. Three issues surfaced once users installed the plugin to ~/.config/amp/plugins/:
The plugin resolved the plannotator binary via PATH lookup, which in Amp's Bun-shaped runtime could resolve to the wrong executable. It now checks the standard installer paths (~/.local/bin/plannotator on Linux/macOS, %LOCALAPPDATA%\plannotator on Windows) before falling back to PATH. A PLANNOTATOR_BIN environment variable is also available for custom installs.
Amp's ctx.$ helper reported the plugin directory rather than the active workspace, so Plannotator commands ran from the wrong working directory. The plugin now reads Amp's CLI log to resolve the real workspace root.
Amp sets BUN_BE_BUN=1 in the plugin environment. The standalone Plannotator binary inherited this variable and behaved like bun instead of executing its own commands, failing with Script not found "annotate". The plugin now strips this variable before spawning the binary.
Mermaid Diagram Rendering Fix
Mermaid diagrams had several visual regressions: blocks rendered at incorrect sizes, zoom level reset on every parent re-render, and the pinpoint drag handle attached to the wrong target. The root cause was that the parent Viewer component re-injected the rendered SVG via dangerouslySetInnerHTML four to five times during mount and again on every re-render, wiping any imperative DOM changes the Mermaid component had applied after render (sizing attributes, viewBox adjustments, zoom state).
The fix has two parts. First, the component is wrapped in React.memo with a custom comparator that only re-renders when the diagram content changes, blocking parent-triggered re-renders entirely. Second, the sizing attributes (max-width, preserveAspectRatio, height) are now baked directly into the SVG markup string before it enters React state, so even when a legitimate re-render does inject the HTML, the attributes survive. The SVG normalization logic was extracted into a separate dependency-free module (mermaidSvg.ts) to keep it unit-testable without pulling in the browser-only mermaid library.
- #819, contributed by @HyunmoAhn
Settings AI-Tip Input Flicker Fix
The lightbulb button in Settings that opens the AI instruction tip editor caused intense flickering on open. The slide-in animation used a max-height: 0 → 60px keyframe, which is a layout property. Inside the scroll viewport, this triggered a layout feedback loop: the browser recalculated layout, which restarted the animation, which triggered another layout, roughly 40 times per second. The fix switches the keyframe to opacity and transform (translateY), which are compositor-only properties that don't participate in layout.
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-extensionDroid: Install via the plugin marketplace:
droid plugin marketplace add backnotprop/plannotator
droid plugin install plannotator@plannotator
Amp: Install the CLI first, then copy the plugin:
mkdir -p ~/.config/amp/plugins
curl -fsSL https://raw.githubusercontent.com/backnotprop/plannotator/main/apps/amp-plugin/plannotator.ts \
-o ~/.config/amp/plugins/plannotator.tsWhat's Changed
- fix: Amp plugin binary resolution by @backnotprop in #810
- fix: Amp plugin workspace cwd by @backnotprop in #811
- fix: Amp plugin Bun env leak by @backnotprop in #812
- fix: Mermaid block sizing, zoom retention, and pinpoint drag by @HyunmoAhn in #819
- fix: flickering AI-tip input in label settings by @j-token in #830
New Contributors
- @HyunmoAhn made their first contribution in #819
Contributors
@HyunmoAhn diagnosed and fixed the Mermaid rendering regressions, tracing the root cause to repeated dangerouslySetInnerHTML injections from the parent component. The PR included a full test suite for the extracted SVG normalization logic. @j-token returned with a fix for the Settings AI-tip flicker, identifying the max-height animation as the source of the layout feedback loop. @jj-valentine filed #829 with a clear reproduction path and a preliminary code-level diagnosis that pointed directly at the animation keyframes.
Full Changelog: v0.19.24...v0.19.25