v0.61.0

The web UI: map and decisions

The browser client (cast server) is one page with a few surfaces around a conversation. This page is the map: where things are, how they move between a desktop and a phone, and the rules the layout follows. It is for people changing the client; for using it, see the server docs.

Surfaces

header      sessions panel toggle . connection dot . [status] [dashboard] [settings] [shortcuts] [files panel toggle]
sidebar     new session . quick session . date/project switch . search . project filter . pinned . sessions . model . log out
chat        the thread: user, reasoning (folded), tool cards, agent text, turn meta
composer    role line (persona, mode, folder, timer) . queued messages . input . attach . voice . send
files panel inputs . files . memory . changes (diff)
full pages  /dashboard . /settings (routes, not modals: back button and reload work)
modals      new session . share . shortcuts . command palette (type / in the composer)

Flows

GoalPath
Start work in a folderNew session, pick persona and folder (or sandbox), type
Ask something throwawayQuick session (bolt button): sandbox folder, assistant persona
Go back to earlier workSidebar row, or search; rows show title, folder and age
Steer a running turnType while it runs: the message is queued or steers, shown above the input
See what changedFiles panel, Changes tab; per-message fork and rewind
Hand a session to someoneShare, a read-only live link
Change how it behavesSettings (model, persona, reasoning, appearance, memory, MCP)

Responsive rules

Chat components and offline shell

The Web transcript frame, message boundary and composer frame use @monos/ui/chat; the header, session creation actions and composer actions use Monos IconButton and Button primitives. Their isolated styles receive generated Monos utilities and Cast's active theme tokens. Cast still owns the session state, markdown, tool cards, streaming and message actions inside those components. The terminal keeps its existing pi-tui rendering and the same session behaviour.

The Web client is installable as a PWA. Its service worker caches the app shell and static UI assets; /api/* requests and event streams stay network-only. Remote installs require HTTPS; loopback development works on HTTP.

Decisions

Motion