1 · Channels — six colors (full composer)
Text · blue (.sb-composer--text)
Agent
Compose a message or use a Template
Email · purple (.sb-composer--email) — subject row
Note · orange (.sb-composer--note) — internal
Agent
Leave an Internal Note….
Log · indigo (.sb-composer--log) — event row
Agent
04/22/2026
Describe the event…
DAISI · yellow (.sb-composer--daisi)
Assist5m 36s
Tell DAISI to do something for this customer…
2 · Mobile collapse — Insert toolbar hidden until focus
collapsed — tabs + mode pill + field + send (no Insert row)
Agent
Compose a message or use a Template
focus field
focused — Insert toolbar revealed (:focus-within)
Agent
Saturday at 11 works great — see you then.
On mobile the Insert toolbar is hidden until the compose field is focused (:focus-within).
3 · DAISI mode — pill lifecycle (.sb-daisi-pill)
Off (gray)
Off
enable assist
Assist (orange) · countdown
Assist5m 36s
switch to agent
Agent (green) · idle
Agent
run starts
Agent · red run-dot (click to cancel)
Agent
Three modes — Agent, Assistant and Off — mapping to the backend values full, internal and disabled. Assistant can be paused for a set duration and the badge shows a live countdown. An in-progress run shows an indicator whose tooltip explains DAISI is working in the background; clicking it cancels the run. Switching from Agent to Assistant or Off cancels the autoresponder and any active agent run — the anti-double-talk rule, and the reason this control exists. When an Assistant pause expires the autoresponder wakes again. The whole surface respects the DAISI and background-agent feature flags.
4 · Call lifecycle — idle → live, plus Log as the manual backup (Call = channel #6, green)
idle (ruling 61) — one labeled green call button; no fields, no send
Agent
place call
live (.is-live) — text-free: the full-width waveform IS the body · running timer · mute + speaker tools, red End only. The second tool is idiom-conditional: mobile shows the speaker toggle, desktop replaces it with the audio-device picker (comp-phone-call-states.html). Navigate away mid-call and the live body detaches into the floating Call Pill, docking back into the composer on return — the full pill contract (states, mobile, audio devices, busy) is specced on comp-phone-call-states.html.
Agent
Shane Dusang 02:41
off-system call
LOG — the manual backup (type=Call)
Agent
04/22/2026 05:03 PM
Confirmed the 36/10k terms — sending the quote after we hang up. Call 2m 41s.
Leaving the page — the call detaches into the floating Call Pill
Desktop · live
Shane Dusang02:41
Desktop · reconnecting
Shane DusangReconnecting…
Mobile · floating
Shane Dusang02:41
Instanced from comp-phone-call-states.html, which owns the full pill contract — states, mobile, audio devices and busy.
opt-out — Call tab disabled (.cp-tab--call.is-disabled), calls off for this customer
Agent
Compose a message or use a Template
Ruling: the floating Call .qa button was rejected — Call is a first-class channel (green, the locked call color). Idle is one labeled green .cp-callbtn — no fields, no send (ruling 61); live is text-free — the full-width animated waveform (translated from the app's voice-recording indicator) IS the body, toolbar = mute + speaker/device-picker with a red End call only (no blue send — nothing to send on a live call). Ending a call needs no wrap-up: the phone system posts the call and its recording to the activity timeline automatically. The Log channel is the manual backup for calls that happened off the system, and its type=Call state is the drawing above. A live call that leaves the conversation re-homes into the floating Call Pill (comp-phone-call-states.html) and docks back into the composer on return.

Engineer reference. Every instance above is a live locked atom forced into its state via the existing modifier/state classes — no new atoms, tokens byte-identical. Channels: the active .cp-tab--{ch}.on + root .sb-composer--{ch} carry the channel color (Text blue · Email purple · Note orange · Log indigo · DAISI yellow · Call green); tab strip stays gray-07, body tints to the channel -02. Mobile collapse uses .sb-composer--compact with the Insert toolbar gated on :focus-within (forced here via .st-collapsed/.st-focused so both ends of the flow are visible at once). DAISI mode: --off/--assist/--agent set the pill color; the left dot goes red & pulsing (.dp-dot.is-running) while a run is processing. Log-type color is the inline status hue (green "Call"), not a separate atom — so there is no distinct "log types" variant group. Call (channel #6, green): idle = the .cp-logrow number row + a labeled green place-call button; live = .sb-composer--call.is-live is text-free — the .cp-wave strip + running timer, mute + speaker/device-picker tools, and a red .cp-call-end as the only action (the blue send is hidden). Ending needs no wrap-up — the system logs the call and its recording automatically; Log is the manual backup for off-system calls. The Call tab gates to .cp-tab--call.is-disabled when calls are off (same as Text).