Skip to content

v0.28.10

Latest

Choose a tag to compare

@github-actions github-actions released this 10 Oct 04:51
· 2 commits to main since this release
Immutable release. Only release title and notes can be modified.

Follow @plannotator on X for updates

Missed recent releases?
Release Highlights
v0.28.9 Large Inbox messages through plannotator inbox mcp fixed, an Inbox sidebar you can close and resize, Edit Mode in reviews of several files, the new Pi logo
v0.28.8 The Plannotator Inbox (preview): messages, questions, files and guided reviews from your agents in one local window
v0.28.7 Ask this session keeps your drafts as drafts, image comments survive a reload, hostname check on every server
v0.28.6 Ask AI names the lines you selected, reorder quick labels and edit their emoji, Pi fixed-port crash fixed, OpenCode 2 subagent notice fixed
v0.28.5 Several files in one review, the plannotator tool on Pi and OpenCode 2, decisions name the exact file, Ask this session reconnects after sleep
v0.28.4 Comments come back after the agent edits a file, the agent can list and close its reviews, PR-description feedback no longer dropped, Pi thinking levels
v0.28.3 Typing into your agent while it answers an Ask no longer streams into Plannotator
v0.28.2 Question cards show wrapped choices and tables, pinned images named by their file, Done with nothing to send starts no agent turn
v0.28.1 Ask AI from diagram comments, pinned images named for the agent, OpenCode 1 URL toasts and one reply per feedback, folder feedback sent once
v0.28.0 Ask this session in Claude Code, Pi and OpenCode 2, Claude Code mod on by default, Pi plan review no longer blocks, first-run demo
v0.27.25 Code review works with color.diff = always, Bitbucket review fixes, wide tables no longer collapse in Firefox, install script fix
v0.27.24 Image previews stay in the all-files view, PR comment previews open on the commented line

What's New in v0.28.10

A small Inbox release. You can now open the Inbox from your other devices over Tailscale, images in agent messages load, and a click anywhere on an attachment tile opens the file.

Open the Inbox over your tailnet

The Inbox only listens on this computer, so until now the only way to reach it from a phone or another machine was to set up tailscale serve by hand, which let every device on the tailnet in, including the agent connection. Now one flag does it:

plannotator inbox --tailscale

The command prints an address such as https://studio.tail1234.ts.net:52817/. Open it on any device signed in to your tailnet.

  • Tailnet only, never public. The Inbox stays bound to this computer. tailscale serve publishes it over HTTPS inside your tailnet. The Inbox never uses tailscale funnel.
  • Only your own login gets in. The Inbox lets in the Tailscale login that owns this computer and refuses everyone else, including tagged devices. To let in another login, add it to ~/.plannotator/config.json: { "inboxTailscaleAllow": ["you@example.com"] }. An allowed login can reply and send New messages, and those become turns in your live agent sessions on this computer, where agents run commands. Allow only people you would let run your agents.
  • Agent connections stay local. MCP and the reply wake answer only on this computer, never over the tailnet.
  • On for one run or for good. --tailscale publishes until the Inbox stops, and works with --background and --no-open. If the Inbox is already running, the command asks it to publish. To publish at every start, including when an agent starts the Inbox, turn on Over your tailnet in the Inbox's Settings (or set { "inboxTailscale": true } in config.json). PLANNOTATOR_INBOX_TAILSCALE=0 keeps it off whatever the flag or the switch says.
  • Tailscale missing or signed out? The Inbox still runs on this computer, and Settings and the terminal say why it could not publish.

The address uses the Inbox's own port and is removed when the Inbox stops or restarts. If the Inbox is killed (kill -9, a reboot), the address stays in Tailscale until the next start removes it; run tailscale serve --https=<port> off to remove it sooner. Full details: plannotator.ai/docs/reference/inbox.

  • #1818, requested by an Inbox user who wanted to reach it over their tailnet

Images in agent messages load

An agent's message with ![alt](shots/after.png) showed a broken image, because the Inbox had no route for it. Images in messages now load when the file is inside the message's project: a path relative to the folder the agent sent from, or an absolute path inside the project. This covers markdown images, <img> tags and images in question context. PNG, JPEG, GIF, WebP, SVG, AVIF, BMP and ICO files up to 10 MB are served. The Inbox serves only images the message itself references, so the route cannot be used to read other files. Images from the web (https://…) still do not load.

Additional Changes

  • Click anywhere on an attachment tile. The tiles under an agent message opened only from the small "Open" text. The whole tile now opens the file, and keyboard focus outlines the whole tile (#1817)

Behavior changes

  • /mcp needs a loopback address with the Inbox's own port. An HTTP MCP client must reach http://127.0.0.1:<port>/mcp directly. An ssh -L forward to a different local port is now refused. plannotator inbox mcp over stdio is unaffected.
  • Use --background to keep a published Inbox running. nohup plannotator inbox --tailscale & stops when the terminal closes while the Inbox is published. Run plannotator inbox --tailscale --background instead.

Install / Update

macOS / Linux:

curl -fsSL https://plannotator.ai/install.sh | bash

Windows:

irm https://plannotator.ai/install.ps1 | iex

Claude Code Plugin: The plugin and the plannotator binary update separately, so run the install script above as well. In a terminal:

claude plugin marketplace update plannotator
claude plugin update plannotator@plannotator

Then restart Claude Code. Inside Claude Code, run /plugin marketplace update plannotator, then open /plugin → Installed → plannotator → Update now.

Pi:

pi update --extensions

OpenCode: Re-run the install script above. It now also clears the OpenCode 2 plugin cache.

What's Changed

Community

  • @hexsprite reported that images in Inbox messages never loaded in #1813, with the exact repro and the cause traced to the missing route.

Full Changelog: v0.28.9...v0.28.10