1.0.0-beta.28
published 6 October 2026
- Added a /health row for the managed policy: an invalid lock value, an unknown surface name or an unreadable policy file warns with its fix
- Changed the automatic motion setting over a slow terminal link (ssh, a console host, a slow pipe): idle motion drops to reduced the way it does on a slow machine, with the same patience before dropping and before coming back, and the status line says reduced · slow link while the link is the reason
- Changed the launch animation: it sends about a fifth of the bytes it did, frame for frame the same
- Changed the frame band while the model thinks: it shows how long the think has stood and when the stream last spoke (◐ thinking 4m · ↻3s)
- Changed the ? sheet's deck-chip legend: the trace count is this session's, not repo-wide
- Changed /health's prompt row: it names the session, coordinator and crewmate contracts with their sizes
- Changed the transcript's tool rows: each starts with its tool's mark, which takes the tool's colour when the call settles, turns red on an error and reads ✕ when denied; notices keep their dot
- Fixed the critter showing a second, thinner pupil at the top of each eye in Terminal.app, and the enter screen's head showing a thin line of the lower pixel's colour above its two-colour cells
- Fixed an image or sprite shown in Terminal.app carrying a thin line of the lower pixel's colour above each two-colour cell
- Fixed a crewmate's view showing the lead's "compacting context" row under the crewmate's transcript while the lead compacts
- Fixed a long conversation stopping for good after its automatic compaction failed three times: the summary call is given the wire's own patience instead of a two-minute cut, the recovery's prune step counts what it cleared so its retry goes out, and the pause message says what works: /compact by hand, and the next message makes a fresh automatic attempt
- Fixed a GLM session or agent stopping on a Z.AI error the moment its conversation carried an image (a screenshot, a picture read from disk): the image reaches a text-only GLM model as an [image] note, and Z.AI's wording for an image it refuses is understood, so the next request goes out without the image instead of failing again
- Fixed the chat repainting rows that had not moved: settled tool groups, the per-turn cost rows and the session roll-up line stay put on every landed record and thinking tick
- Fixed the crew rail showing a crewmate only after its first reply; it shows it from the moment it is launched
- Fixed Tab into the left rail on an idle cockpit showing no caret until the first ↓
- Fixed the single-rail cockpit dropping the last-prompt card one row before it had to
- Fixed a new session's TRACE panel listing every tool call on the machine under a "repo" count; it starts empty and lists this session's own
- Fixed /status, /deck and /trace counting the whole repository's tool calls; they count the focused session's own, as the trace rail does
- Fixed rows you had clicked open closing again after a switch between the lead and a crewmate view
- Fixed a stray letter or digit nobody typed landing in the composer after a view switch, a split key, a mouse report or a terminal reply
- Fixed the effort notice after a model pick from the composer's picker naming a word the status line did not show
- Fixed a model picked through the composer's picker not becoming the saved default its header promised; the receipt says it was saved
- Fixed a terminal that loses a startup reply delaying the session's terminal upgrades forever
- Fixed the width probe guessing: it measures the terminal's real text advances once per session, so emoji, flags and East-Asian text land where the terminal puts them
- Fixed /exit from the chat drawing the shell prompt on the first row over the old screen in a console host
- Fixed a session's saved title or tag being replaced by text from a tool call's input that happened to carry a field of the same name
- Fixed a session's title keeping the printable remains of control bytes from its first prompt
- Fixed resuming a session whose removed rows pointed at one another never finishing the open
- Fixed the editor's session list showing no tag for a session that has one
- Fixed a display-only row riding a GPT, GLM, Gemini or local request as if the model had said it
- Fixed the coordinator on Claude forgetting its own earlier replies between turns
- Fixed resuming a session whose saved assistant text arrived as plain text failing the next GPT, GLM, Gemini or local request outright
- Fixed a GLM turn with thinking off being sent in a shape Z.AI refuses; GLM prices follow Z.AI's current page
- Fixed a lifecycle "run once" hook running again on every firing; it retires after its first run, like a tool hook
- Fixed a lifecycle hook answering with another event's output shape being accepted in silence; it is refused with a loud error naming both events
- Fixed the SessionStart hook input carrying no model on a startup or a resume
- Fixed outside edits going unnoticed after a full file read
- Fixed an Edit in a file with mixed line endings rewriting the edited line's ending to the file's majority ending
- Fixed Glob answering "No files found" for a pattern with a slash, such as sub/*.txt under a path, when the session stood in another folder
- Fixed Grep's context lines showing a\b\c where the file holds a/b/c and spelling their path absolute beside a relative match line
- Fixed skill listings being lost to compaction, to a child's resume handoff or to a directory discovered during collection
- Fixed boot recording its route only after the first frame and input were ready, including a plain-world launch
- Fixed a session born on a warm runner coming back from a crash in the runner pool's permission posture instead of its own
- Fixed /config reading this session's permission mode as the saved default; the row names both when they differ
- Fixed /usage showing no "This session" tally: the active billing slot of each provider lists the session's tokens and cost, one row per model, with the scheduled and advisor shares on their own lines
- Fixed /usage showing one week figure in its header and another in its Anthropic block; the header follows the block's refresh
- Fixed /monitor and the deck showing $0.00 and diff +0/-0 for a session that had edited files; they read the session's own spend and line counts
- Fixed auth status and /health's model row naming an Anthropic model for a home whose only sign-in is OpenRouter; auth status routes to OpenRouter and exits 0
- Fixed /health in the cockpit saying FAULT, with a remedy for a cause that did not exist, while mercury health said CAUTION; a live catalogue one process has not fetched yet is a timing gap, and Edit outcomes count the session's own edits
- Fixed a timed-out health check leaving its gate-tree folder in the temp directory on Windows
- Fixed the Edit tool's schema reading replace_all as required and saying nothing of its four shapes; the schema names them in its own words
- Fixed compaction failing on a conversation too big to summarise in one request; compaction runs in parts, and one plain warning says when a conversation's size is what makes its requests fail
- Fixed compaction stopping on a model's refusal of its first request; it says so and retries once with the conversation handed over as text
- Fixed a /compact line wearing "held" for a beat after the runner had taken it
- Fixed a headless /compact's rows carrying an earlier failure as a second command_output row
- Fixed a headless run that could do nothing exiting 0; a run that ends blocked on the operator exits 1 with the blocker on its outcome row, and a run that delivered still exits 0
- Fixed a runner restart delivering a finished agent's notice a second time, or calling a finished agent stopped, when the notice had reached the model second in a combined input or mid-turn as an attachment
- Fixed the status line sitting on a frozen token count for a long think, with nothing to tell it from a dead stream; while a think streams it reads how long ago the last byte arrived and how many thinking blocks have come
- Fixed the concourse board saying running Glob for minutes after the Glob had finished; the NOW cell reads the session's live phase and names a tool only until its result lands
- Fixed an Eval cell labelled Starting kernel… for its whole run; the row says running with the elapsed once the kernel has the cell
- Fixed the thinking label starting to shimmer the moment a think begins later in a turn; every think holds its label still for its first three seconds, as a turn's first think does
- Fixed the advisor interval choices in /config: 2 and 5 minutes join 10 · 20 · 30 · 45 · 60
- Fixed a background helper that had handed over keeping the daemon lock for fifteen seconds after an update or rollback; it leaves at its first idle read