Release notes
Revise a plan in place, without phantom agents or a Reload menu
A Plan-mode follow-up rewrites the plan file you already have open, instead of minting a second .plan.md. The sidebar no longer invents "Chat" rows from run placeholders, today's agents stay compact, and you can start a new agent in a workspace that is not open yet. Right-click Cut / Copy / Paste works in the editor; WebKit's Reload menu is gone everywhere else, because Reload discarded in-flight runs.
Fixed
- Jump to latest appeared when you had not actually scrolled past the transcript — a nudge over the composer padding, or a pane that could not scroll, counted as "away".
- A workspace you were not looking at grew extra Chat agents. Run and pending-interaction rows minted a session to satisfy a foreign key, and that placeholder was listed as a real chat once the workspace became inactive.
- The per-workspace agent cap only applied while a workspace was active, so switching away made it look like it had more agents.
- Switching workspaces rebuilt the inactive session lists from scratch, so rows flickered empty even when the data had not changed.
- Right-click on chrome that had no custom menu opened WebKit's Reload / Inspect Element menu. Reload reloaded the whole app UI.
- The editor context menu was AI-only. Cut, Copy, Paste, and Select all are on it now; a click outside the selection moves the caret first, like VS Code.
- Parallel agents could each hold one file and wait forever for the other's next file. A run that already holds a lease is refused immediately instead of parking.
- Asking the agent to change a plan created a second plan file, so Build, the editor tab, and the plan list pointed at different artifacts.
- The Thinking chevron jumped sideways when reasoning text arrived, because the empty state did not reserve the same lead column as a tool row.
- Clicking + on a workspace that was not active created an agent and then discarded it when that workspace hydrated. The click now waits for the destination to be ready.
New
- Plan-mode follow-ups pass
create_plan(path: …)and rewrite that file in place. The pause copy says the plan was updated, not created. Docs: Plan files. - + on an inactive workspace starts a new agent there after it activates and hydrates — one click.
- The sidebar defaults to today's sessions plus anything that needs attention; older chats sit behind Show more.
- A default-deny context-menu guard: text fields keep WebKit's editing menu, everything else does not.