Changed
- The app's status bar drops "v2 · 167×36". The front terminal's protocol and size sat beside the version and meant nothing to a reader; they are now in the version's tooltip (terminal protocol v2 · 167×36), and the bar names the terminal's state only while it is not live (reconnecting).
- Each agent is shown by its mark, not by letters. The app's sidebar,
Waiting on you, the tab strip, the tray panel and the dashboard's
Projects panel, pulse and Now cards named an agent with a text monogram —
Cl, Cx, $, oc, cdx. Now they show a small mark in the same
space: the Claude spark, the Gemini sparkle, the OpenCode and DeepSeek
marks, a
Cin a rounded square for Codex and a>_prompt for a shell. Brand colours are toned down to read on graphite, white and paper alike, and each mark says the agent's name on hover and to a screen reader. The paths come from Simple Icons (CC0); nothing is fetched. Row heights are unchanged. - Closing a shell's tab closes the shell. Until now the × of a shell's tab, in the strip or the sidebar, and ⌘W left the shell running, and idle shells piled up as muted Shell rows. Now it works as in iTerm, Terminal or VS Code: an idle shell ends with its tab, without asking; a shell running a program asks first — Shell 1 is running claude. Close and stop it? — with Stop and close, Keep running, close tab and Cancel. The same goes for a shell's pane in a split. Closing an agent's tab still never stops the agent, and the tooltips now say which is which (Close shell / Close tab — the agent keeps running). A shell left running with no tab is still a muted row with ■ to stop it. Close project (a project's ×) now ends that project's shells too, tab or no tab: idle ones at once, and when some run a program one question lists them — alpha: Shell 1 is running claude, Shell 2 is running npm. Stop them and close? — with Stop and close, Keep them running, close tabs and Cancel. Its agents are never stopped.
- A shell says what it runs. A shell running a program reads Shell 1 ·
claude in the tab strip and the sidebar.
GET /v1/shellscarries a newprogramfield: the shell's foreground program on macOS and Linux, read from the terminal's foreground process group; on Windows its child process, best effort. It is read at most every 2 seconds per shell, only for shells Caprock started, and never signals anything. - No "Waiting on you" block with nothing current in it. When only turns put down more than 12 hours ago are left, the sidebar no longer shows the block with its lone Older line; those turns stay on the Dashboard.
Fixed
- Typing stays quick while other agents work. The app redrew its whole window, every terminal included, on each event an agent sent (about 19 times a second with four busy agents); now terminals are left alone and the sidebar updates at most a few times a second. A tab out of sight no longer draws what its program prints until you bring it forward, and the pulsing "working" dots no longer repaint the window every frame.