github backnotprop/plannotator v0.28.56

one hour ago

Follow @plannotator on X for updates

Missed recent releases?
Release Highlights
v0.28.55 Floating reply drafts, now a setting under Experimental, open questions sit next to Reply again, a comment box that keeps unsent comments as Drafts, choose how your list looks: Minimal, Balanced or Detailed, update an older linked machine from this Inbox
v0.28.53 Start an agent in a new folder, or from a git URL, "+" on each project row starts a session there, a reaction tray, a thread's Links, Settings → Activity, New message offers the open thread's files, Bro mode: agents write to you in plain words
v0.28.52 Start agents from the Inbox, on by default, a new reply box, Ask AI for everyone, Insights in Settings → Decision data, Plannotator reloads itself after an update
v0.28.51 Starred threads, a note when an agent's session has ended, "Back from snooze", Ask about a past decision, expand arrows in guided reviews
v0.28.50 A faster, lighter Inbox, session names across the Inbox, initiatives on the Board, earlier comments on a file, global comments on Guided Reviews
v0.28.49 A checklist for each thread, a pill that shows who gets your reply, a calmer full screen, Inbox replies in T3 Code, --title for review and annotate
v0.28.48 Reply attachments that follow the draft, links to any web page on Board cards, instant theme switches, a daily anonymous ping, a faster Inbox
v0.28.47 Board lanes, Settings → Rows, a new thread header, a "Make it yours" tour step, Request guided review, Jira links on Board cards
v0.28.46 Snooze a thread, Settings → Accounts, long pastes become file tiles, HTML pages on a phone, hide the repository owner
v0.28.45 Plannotator Modern theme, a thread panel view, session names in the To picker, thread links open in place, comment on diagram parts
v0.28.44 The iPhone keyboard no longer moves the Inbox, pictures stay clear of the option card, What's new over your tailnet
v0.28.43 Voice dictation, combine and rename projects, Mark unread, full-screen threads, Q for open questions, search by type

What's New in v0.28.56

TL;DR

  • New: Questions can show trade-offs and a prototype to try
  • Fixed: A thread with many big pictures no longer crashes the tab
  • Changed: Escape closes New message and keeps your draft
  • Changed: Read threads stop being bold and keep their place
  • Changed: Agent messages that name no thread start a new one

Question cards can now carry each option's pros and cons and a page to try before you pick. Long threads with many screenshots use far less memory and stay responsive, and a thread with a lot of unread messages opens on its newest 20. New message and the reply box now treat Escape the same way: closing keeps your words.

0.28.56 has 40 PRs, all from @backnotprop. Five are CI and test fixes and one updates plannotator.ai. Five more are groundwork for code review in the Inbox, which stays off in this release.

Plannotator Inbox

Trade-offs and prototypes in questions

An agent can now add Pros: and Cons: lines under each option of a question. The card then shows a closed Trade-offs line under Why. Open it for a table with one row per option and its pros and cons side by side, stacked on a phone.

An agent can also add a Prototype: line: an HTML file attached to the same message, or a local app that is running. One line can belong to a single option, or sit at the block's own level and serve every option. A Try prototype tab (or Try prototypes when several options have a page) hangs from the options' tray. It opens a window on the recommended option's page, in Interact, with Annotate one click away. ‹ and › step between the options that have a page, and Pick picks that option and closes the window, leaving the answer unsent. Comments you make in the window go with your next Send, under the option's name. If the app has stopped, the window says so in one line, with "try again".

When your Inbox is published over your tailnet, a running-app prototype opens on your phone too. It goes through a relay that only you, the machine's owner, can use, and that serves only the apps a question named. An app page that hard-codes ws://localhost can't reach its server from the phone.

Before a message with prototypes is saved, the Inbox checks them. It refuses the send, naming the question and the option, when a file prototype is not an HTML file attached to the same message or when an app doesn't answer. Agents learn this from one new sentence in the Inbox tool's body field and a "Trade-offs and prototypes" section in plannotator inbox --help. #2965

Long threads use far less memory

A thread with many big screenshots could crash the browser tab. A 2880×1800 screenshot was decoded at full size wherever it was drawn, even as a 30 px tile, so a thread with 89 screenshots held about 1.9 GB of decoded pictures. The Inbox now asks for a copy at the width it draws: 1,600 px in a message, 800 in a gallery, 128 in a tile. The copy is made the first time the picture is shown, not when it is sent. The viewer and Open in still load the original. On that thread, decoded pictures went from about 1.9 GB to 226 MB.

Messages far from the view no longer keep their tooltips and menus mounted until the pointer or focus comes near, and a thread left open no longer keeps a copy of every earlier read. Over 80 new messages into an open 245-message thread, the page's memory now grows by about 9 MB instead of 54 MB. #2948

A thread that opens with more than 20 messages new since you last looked now opens on its newest 20. The older new ones wait behind the "Show 20 earlier" fold, still marked New, and the "New since you looked" line sits above that fold, so the thread opens where it did before. A link, search hit or notification that points to a folded message opens the fold down to it. With 20 or fewer new messages, nothing changes. #2976

Three more changes make long threads faster without changing what you see. Code blocks are colored as they come near the view, with the work done in a Web Worker, and a scroll no longer redraws the whole thread. On a thread with 360 code blocks, the time from click to first paint went from 4.5 s to 0.6 s #2955. Style rules that made every page change cost about 42 ms of style work on a long thread now cost under half a millisecond #2963. Each key typed in a question's answer no longer makes the window read and redraw the whole open thread #2979.

Escape keeps your New message draft

With words in New message, one Escape now closes it and saves a draft, with no question. The phone's Cancel and a click on the backdrop do the same. The toast reads "Draft saved · It never sends itself" with Reopen, which opens the draft as it was. Before, Escape asked "Keep this message as a draft?", and Escape on that question went back to writing, so the keyboard could not leave.

Escape still closes an open picker, the voice control or the Launch tip first. An Escape during IME composition never closes the box. An empty New message closes and keeps nothing. To throw a message away, use Delete draft in the reopened draft, or empty it and press Escape. #2961

A thread you've read stops being bold

Rows in Stopped, Holding up work and Waiting on you used to stay bold as long as their questions were open, even after you read them. Now opening the thread makes its row plain at once. The row keeps its group, its badges and its open-question count, and its hover action is still Mark read. The agent's next message makes it bold again. #2940

A message from an agent that names no thread starts a new one

An agent's message with no reply_to and no thread name used to join the newest open thread that the agent's session had started in the project. For a long-lived session, that put news into unrelated threads from weeks before. Now such a message always starts a new thread. reply_to still lands in that message's thread, and a thread name still joins the newest open thread of that name. The Inbox tool, the MCP tool and plannotator inbox --help say this in one line. #2954

Comment on an HTML attachment

An HTML file in full screen now offers both Comment on this page and Reply to , with Comment chosen when no reply draft is waiting, as on an image. Before, a desktop showed Reply only. A page comment goes with your next Send as general feedback on the file, and its words are kept if you close the file. A read-only file and a linked page stay Reply only. #2949

Ask an agent on an older machine to update it

For a linked machine too old for Update (before 0.28.54), the dialog now leads with Ask an agent on to update it. It sends one of that machine's agents, idle ones first, a short message asking it to run plannotator update and then plannotator inbox restart. The machine's row then reads Asked, and the dialog follows it to Restarting and Updated, with Open the thread. If no agent is running there and you can start agents on that machine, Start an agent on opens New message with the same words. The commands to run by hand stay under "Or update it yourself". #2946

Feedback: common questions and known answers

The Feedback dialog has two tabs: Message and Common questions. Common questions has five short answers, some with a button that applies the fix, such as Use Simple list or one that opens the right part of Settings. The dialog's copy is shorter, and the privacy line now names what is sent.

While you write, "These might help" can start with a known answer that matches your words, for example "Fixed in 0.28.52: the list holds still now · Use Simple list", or an Experimental switch that does what you asked. Issue and PR matches need more than common words to match, and a closed issue that a release fixed shows as "Fixed in 0.28.x" with its title. #2951, #2957

/grill-me asks through the Inbox

When you pick a grill-me skill in the reply box, New message or a comment, the Inbox adds a short note for the agent after the skill. The note tells it to ask its questions as Inbox question cards, at the skill's pace, with a recommendation and a reason for each. Any skill named like grill-me counts, from any author. A /grill-me typed in a terminal gets nothing from Plannotator.

After you have answered three question cards, a one-time card titled "Try /grill-me here" can show beside the list. It waits for a day that no other one-time card has taken, and it shows once. #2950

The checklist stays in its thread

The checklist no longer shows anywhere but its thread. The mark on list rows is gone, and so are the marks and the checklist section on Board cards. A step in progress now keeps its spinner turning while the agent is idle, so it no longer looks stopped. With the Checklist on, agents are told to start one when you give the go-ahead on work with several steps, and when your reply answers its questions in a thread where it has no checklist yet, the agent gets one line asking it to start one if the work has several steps. #2960, #2958, #2962

Smaller changes

  • Show on "N new" now opens the list groups the new rows land in and scrolls to the first of them. In the List view, it only scrolls. #2945
  • A list group header's chevron now shows as soon as the pointer is on the header, as in the sidebar. 0.28.55 waited half a second. #2953
  • Typing in a question's own answer ("Other…") or in Add note no longer loses letters when the Inbox is busy. #2972
  • On a phone, a quick tap on the next question's answer right after another tap now picks it. It was read as a double tap and dropped. #2947
  • A picture shared by two picture choices now opens as each choice, with its own caption and count. A decision card shows only its own question's pictures. #2978
  • owner/repo#123 now links in threads whose project has no git remote, on the host most of your projects use. #2964
  • In Safari, the first code block of each language is colored like the rest. #2959
  • The Inbox help's list of what wakes an agent says "a reaction", not "a 👍". #2967
  • Plannotator's pages (plan review, code review, the Inbox) and plannotator.ai have a new icon: the goggles. #2975

Code review

  • In plannotator review, a guided review now has Split/Unified, Collapse all and the diff display gear in its top bar, after Close and Approve. Before, opening a guide hid them. Annotations, Ask AI and Review Agents sit together at the right, and the menu is the ☰ alone, named "Options". #2966
  • Selecting lines in a diff and then pressing a key no longer draws a focus line above and below the file, in plannotator review and in the Inbox's guided reviews. #2977
  • Settings → Editor → Diff Style now reads "Split: side by side. Unified: one column." #2973

Not yet on

This release also carries more work on code review in the Inbox. It stays off by default, and its switch stays hidden until a later release. The work covers: a Pull requests board inside Reviews, with Merge #2971; a Walkthrough choice in New review, a review of how code works with no diff #2884; other people's review threads on their lines on a PR's page #2885; the PR page's diff controls in its top bar #2968; and Shape parts of a review that follow Shape's own switch, so Code review on its own brings no Shape #2974.

Install / Update

macOS / Linux:

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

Windows:

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

Claude Code Plugin: The install script above also updates the plugin when claude is on your PATH. Otherwise, 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 npm:@plannotator/pi-extension

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

What's Changed

Full Changelog: v0.28.55...v0.28.56

Don't miss a new plannotator release

NewReleases is sending notifications on new releases.