Console
The Console is a React/Vite app in console/ that talks only to /api. It is
not served by sbx serve; run it next to the control plane.
cd consolenpm ciSBX_API_PROXY_TARGET=http://127.0.0.1:8800 npm run dev # http://localhost:5174npm run typecheck && npm test && npm run buildSet SBX_PUBLIC_URL and SBX_ALLOWED_ORIGINS on the control plane to the
origin you open in the browser; cookie mutations from other origins are
rejected with csrf_failed.
- Home: the setup checklist (account, Modal, GitHub, OpenCode Zen; Codex optional) and the composer for a new Session. It defaults to the OpenCode Harness, the preferred free model and Modal once a Modal Connection exists.
- Sessions: the list and the Session view with Conversation, Activity, Changes (ChangeSets, Deliveries, merge eligibility), Files, Terminal, Services and Child Sessions tabs.
- Projects: reusable repository and environment configuration.
- Connections: add, validate, replace and disconnect, with write-only secret fields.
- Settings: identity, API keys (plaintext shown once) and preferences.
Rules the UI follows
Section titled “Rules the UI follows”- It renders server fields and never re-derives turn outcomes, connection health, merge eligibility or review validity. Merge sends the server’s pins.
- One store holds the snapshot and its watermark, replays events by sequence,
dedupes by
seqand resyncs on gaps. - Secrets never enter web storage; caches are purged on logout.
- Compute is never started implicitly. When the executor is unavailable, Files, Terminal and Services show a diagnosis instead.
- Retry buttons name what they retry: Turn, Delivery or validation.
Limits
Section titled “Limits”The Terminal polls for output. Service preview is not available because no preview origin is configured.