Follow @plannotator on X for updates
Missed recent releases?
| Release | Highlights |
|---|---|
| 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 |
| v0.14.5 | GitLab merge request review, login page image fix, Windows install path fix |
| v0.14.4 | GitHub review submission, repo identifier in tab title, nested code fence parser fix, Pi paste URL wiring |
| v0.14.3 | PR context panel, diff search in code review, OpenCode permission normalization, landing page redesign |
| v0.14.2 | OpenCode plan mode prompt replacement, Windows non-ASCII path fix, Pi link fix |
| v0.14.1 | Single submit_plan with auto-detect, viewed-file draft persistence, Bear nested tag fix |
| v0.14.0 | PR review via GitHub URL, /plannotator-last for annotating agent messages, OpenCode plan mode permissions fix, VS Code SSH proxy fix
|
| v0.13.1 | OpenCode plan mode rewrite, Obsidian save fix |
What's New in v0.16.1
v0.16.1 fixes SSE connection stability for the external annotations API introduced in v0.16.0. 1 PR from an external contributor, 1 first-timer.
SSE Stream Idle Timeout Fix
Bun's default idle timeout of 10 seconds was killing the external annotations SSE stream (/api/external-annotations/stream) before the first 30-second heartbeat could fire. The browser's EventSource auto-reconnected, but each reconnect triggered a full snapshot resend and produced a [Bun.serve]: request timed out after 10 seconds warning in the console.
The fix uses Bun's per-request server.timeout(req, 0) to disable the idle timeout only on SSE stream requests. Normal HTTP requests keep the default 10-second safety net. The change applies to all three server types (plan, review, annotate).
- Authored by @foxytanuki in #439, closing #438
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".
Copilot CLI:
/plugin marketplace add backnotprop/plannotator
/plugin install plannotator-copilot@plannotator
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(server): keep external annotation SSE streams alive by @foxytanuki in #439
New Contributors
- @foxytanuki made their first contribution in #439
Community
@foxytanuki filed #438 with a thorough root cause analysis identifying the mismatch between Bun's 10-second idle timeout and the 30-second heartbeat interval, then followed up with the fix in #439.
@j-huang-rj independently identified the same issue and submitted a fix in #433. The targeted per-request approach from #439 was chosen, but both contributors spotted the problem within hours of v0.16.0 shipping.
Full Changelog: v0.16.0...v0.16.1