One sequenced stream, a bridge that keeps itself current, and defaults the machine already chose.
Added
- One stream of everything.
GET /streamserves a hub with a replayable ring and an always-on observer, so a client opens one socket per server instead of one per session — with sequence numbers, replay from a cursor, and gap detection. - A live agent says what it is doing — todo position, tool trail and elapsed time, published incrementally while a subagent runs.
- One turn at a time per session. A second client's prompt queues behind the running turn instead of racing it, and stopping a turn discards what queued behind it.
- The bridge updates itself.
GET/POST /updatereports the running version, how far behind the checkout is and which commits would land, then performs the update and the restart it ends with — taking the update script from the commit being updated to, and keeping the log a tail rather than a build transcript. - Sign the machine's Claude in from wherever you are.
/authreports the account; the browser flow runs on a pseudo-terminal here and returns its URL, and the code comes back from the client. - Every picture the agent looked at is handed to the client as a file part, fetched over
/files/rawrather than base64'd through the transcript. - Skills and saved workflows join the slash-command catalog, and opencode Go usage is estimated from the machine's own opencode history.
- Machine defaults. A session that names no model or effort runs what
~/.claude/settings.jsonsays — what the terminal would run — re-read whenever the file changes.BRIDGE_MODEL/BRIDGE_EFFORTstill win when set. - Ultracode. An effort of
ultracode, or a prompt that says the word, runs that turn at xhigh with--settings {"ultracode":true}— the keyword the CLI honours interactively but never in print mode.
Fixed
- A running turn is live however quiet its transcript; a subagent's model is not the conversation's; the transcript says what is actually answering, model and effort read from the last turn.
Performance
GET /sessionsanswers from the observer's last sweep instead of recomputing per request; the agent scan runs at a third of the sweep so the index actor stays responsive; a fresh chat no longer asks the index about a transcript that cannot exist; and the full-projects scan debounces, so a burst of lookups stats the tree once.