Release notes
The status row stops pinning on a finished command
The live status row no longer keeps naming a command that has already finished, and one block no longer retitles the row "Blocked" for the rest of the run. The agent works in one browser tab per chat instead of opening a new one for every task, and a workspace that fails to load offers a retry instead of an empty pane.
Fixed
- The live status row no longer pins on a command that has already finished. A command that yields to a background job keeps its tool call open until the job's own completion arrives, and that completion is now reported to the row directly instead of being inferred from a stream that may never carry it. A run whose finish was dropped is treated as stale rather than busy forever, so the watchdog can still recover it.
- One block no longer retitles the row "Blocked" for the rest of the run. A block is a moment: the next step, tool call, or model response clears it.
- Two tools in one step can no longer be mistaken for each other. The local model path now gives each tool call a stable id, and the fallback key includes the tool name, so one call's finish cannot delete another's.
- The agent works in one browser tab per chat. A new task in the same chat reuses the tab that chat was already working in instead of opening another one, and sending a task while you are looking at a tab hands that tab to the agent. A tab you have taken control of is never adopted, and an agent-originated open no longer moves focus off the composer.
- A workspace that fails to load shows the error with a "Try again" button instead of an empty chat with no way back. A transient failure while preloading a chat is no longer cached as "this chat has nothing", which used to leave that pane blank for the rest of the session.
- A background run that ended in a pause shows its dot before you open the chat. A buffered finish now settles the run's status, and a stream that ends without one is settled too, so the sidebar stops pulsing for a run that is over.
- The sidebar's Running filter and the status dot now agree, so a row showing an attention dot cannot be hidden by the filter. The session cap also protects a running or needs-input session from being evicted, so a just-started run cannot lose its row.
- The take-control and annotate chrome is hidden while a clip is being recorded, so it stays out of the video. The cursor, highlight, and border stay, because they are what shows what the agent did.