github backnotprop/plannotator v0.9.3

7 hours ago

Follow @plannotator on X for updates


Missed recent releases?
Release Highlights
v0.9.2 Fix version history logging noise in OpenCode TUI
v0.9.1 Plan Diff marketing dialog viewport fix
v0.9.0 Plan Diff with two view modes, version history, sidebar redesign, terminology cleanup
v0.8.5 Pi coding agent support, auto-close countdown, image endpoint security fix, OpenCode package fix
v0.8.2 BROWSER env var fix for macOS and WSL devcontainers
v0.8.1 Devcontainer BROWSER fallback, mermaid clipping fix, annotation toolbar focus guard
v0.8.0 Open source (MIT/Apache-2.0), annotate command, self-hosted share portal, resizable panels, mermaid controls, auto-close on approval, documentation site
v0.7.0 TOC sidebar, sticky actions, save to notes without approving, import teammate reviews, viewed file tracking
v0.6.8 Mermaid diagram rendering, repo/branch info display
v0.6.7 Quick Comment mode, type-to-comment shortcut, smart agent detection
v0.6.6 OpenCode sub-agent fix, CVE-2026-22812 security update
v0.6.5 Cmd+C shortcut, newline preservation, hook timeout fix
v0.6.4 Cmd+Enter keyboard shortcut
v0.6.3 OpenCode npm package fix, cache path fix
v0.6.2 OpenCode title generation fix, WSL browser detection

What's New in v0.9.3

Other Markdown files that your plan references can now be opened and annotated directly inside the viewer — useful for document-heavy or spec-driven approaches. Click a link, review the doc, leave feedback, and it all gets included when you approve or deny. Plan Diff also gained a "VS Code" button that opens the diff in VS Code's native side-by-side editor (or whatever code aliases to such as Cursor). Plus a toolbar dismissal fix and automated npm publishing for the OpenCode and Pi packages.

Linked Document Navigation & Annotation

When a plan references a local .md file (e.g., [see architecture](./docs/ARCHITECTURE.md)), clicking the link now opens it directly inside the Plannotator viewer — no new tabs, no context switching. The document swaps in place with a "Back to plan" button in the sidebar, and the Table of Contents updates to reflect the linked document's headings.

More importantly, you can annotate linked documents the same way you annotate the plan itself. Highlight text, leave comments, suggest replacements — all the usual annotation tools work. When you approve or deny, annotations from every linked document you visited are aggregated into the feedback payload sent to the agent, organized by filepath under a "Linked Document Feedback" section.

Annotation state is cached per filepath within a session. Navigate to a doc, annotate it, go back to the plan, revisit the doc later — your annotations are still there.

The server resolves paths using a multi-strategy approach: absolute paths, paths relative to the project root, and bare filename search via glob. Path traversal outside the project root is blocked. Ambiguous filenames (multiple matches) return a list of candidates so you can pick the right one.

  • Thanks to @dgrissen2 for building the initial linked document viewer and /api/doc endpoint (#184)

Open Diff in VS Code

The Plan Diff viewer now has a "VS Code" button that opens the current diff in VS Code's native side-by-side diff editor. If you're comparing your plan against a previous version and want a more familiar diff environment, one click gets you there. Uses code --diff under the hood with the version history files — no temp file juggling.

Toolbar Dismiss on Outside Click and Escape

Annotation toolbars in both the plan review and code review UIs now dismiss when you click outside them or press Escape. Previously, toolbars could get stuck open after making a selection, requiring another text selection to clear them. The fix consolidates dismissal behavior into a shared useDismissOnOutsideAndEscape hook used by both UIs.

Automated npm Publishing

The release pipeline now publishes @plannotator/opencode and @plannotator/pi-extension to npm automatically when a version tag is pushed. Uses npm's OIDC trusted publishing for provenance — no long-lived secrets. Pull requests run a dry-run build to catch packaging issues before merge. All GitHub Action versions are pinned to full SHAs for supply chain hardening.


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

  • ci(release): add npm publishing with OIDC provenance and dry-run mode by @rcdailey in #170
  • Add "Open in VS Code Diff" button to plan diff viewer by @backnotprop in #180
  • fix(ui): dismiss annotation toolbars on outside click and Escape by @flex-yj-kim in #182
  • feat: open linked .md files in read-only tabs with TOC navigation by @dgrissen2 in #184

Contributors

Full Changelog: v0.9.2...v0.9.3

Don't miss a new plannotator release

NewReleases is sending notifications on new releases.