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#123now 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 reviewand 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 | bashWindows:
irm https://plannotator.ai/install.ps1 | iexClaude 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@plannotatorThen restart Claude Code. Inside Claude Code, run /plugin marketplace update plannotator, then open /plugin → Installed → plannotator → Update now.
Pi:
pi update npm:@plannotator/pi-extensionOpenCode: Re-run the install script above. It also clears the OpenCode 2 plugin cache.
What's Changed
- Inbox Reviews: Walkthrough, a review with no diff by @backnotprop in #2884
- PR page: other people's threads on the lines they are about by @backnotprop in #2885
- Inbox: a thread you've read stops being bold, and keeps its place by @backnotprop in #2940
- Test: the launch tip test waits as long as its sibling by @backnotprop in #2943
- Test: paste tests wait for Send to come back before the next Send by @backnotprop in #2944
- Inbox: Show on 'N new' opens the groups they land in by @backnotprop in #2945
- Inbox: ask an agent on an older machine to update it by @backnotprop in #2946
- Inbox: a quick tap on the next question's answer picks it (phone picks e2e flake) by @backnotprop in #2947
- Inbox: a thread with many big pictures no longer crashes the tab by @backnotprop in #2948
- Inbox: Comment and Reply on HTML attachments, Comment first by @backnotprop in #2949
- Enhance /grill-me with Plannotator questions by @backnotprop in #2950
- Inbox: feedback dialog gets a Common questions tab and shorter copy by @backnotprop in #2951
- Inbox: a group header's arrow shows at once on hover by @backnotprop in #2953
- Inbox: a message that names no thread starts a new one by @backnotprop in #2954
- Inbox: move heavy work off the main thread by @backnotprop in #2955
- Inbox feedback: known answers first, cleaner matches by @backnotprop in #2957
- Checklist: the spinner turns while a step is in progress by @backnotprop in #2958
- Code colours: Safari's first block of each language matches by @backnotprop in #2959
- Checklist: only in its thread by @backnotprop in #2960
- New message: Escape closes and keeps your draft by @backnotprop in #2961
- Inbox: tell agents when to start a checklist by @backnotprop in #2962
- Inbox: cheaper style rules on long threads by @backnotprop in #2963
- Inbox: owner/repo#123 links even when the thread's repo is unknown by @backnotprop in #2964
- Inbox questions: trade-offs and prototypes by @backnotprop in #2965
- Code review: Split/Unified in a guided review's top bar by @backnotprop in #2966
- Inbox help: "a reaction", not "a 👍" by @backnotprop in #2967
- Inbox PR page: diff controls in the top bar by @backnotprop in #2968
- marketing: Workspaces page for teams, Inbox points to Workspaces by @backnotprop in #2969
- Deploy: only switch to a newer commit that contains this one by @backnotprop in #2970
- Inbox: Pull requests page (the Sheet) by @backnotprop in #2971
- Inbox: typing in a question's own answer no longer loses letters by @backnotprop in #2972
- Code review: clearer words for the Split | Unified setting by @backnotprop in #2973
- Code review: Shape stays off unless Shape is on by @backnotprop in #2974
- Swap the Totman face favicon for the goggles icon by @backnotprop in #2975
- Inbox: a thread with many unread messages opens at its newest 20 by @backnotprop in #2976
- Inbox: selecting lines no longer draws lines above and below the file by @backnotprop in #2977
- Inbox: a picture shared by two choices opens as each; a question shows only its own pictures by @backnotprop in #2978
- Inbox: a change refreshes only what it touched by @backnotprop in #2979
- CI: download tools from GitHub releases with the job's token, and cache them by @backnotprop in #2981
- e2e: the details test's forge thread never reaches a later test's rail by @backnotprop in #2982
Full Changelog: v0.28.55...v0.28.56