June 26, 2026
Weave thread UI: card redesign, live binding, Weave restyle
The chat UI gets a thorough Weave redesign across nine commits, centered on threaded conversations
The chat UI gets a thorough Weave redesign across nine commits, centered on threaded conversations. The accordion inline pattern is replaced by contained thread cards with a starter header, a left thread spine, and a prominent collapse control. Opening a thread auto-collapses any other open one, and initial load opens only the most-recent active thread. The list now renders oldest-first so newest activity sits at the bottom.
Reply composing is unified with the main chat: both docks share the same composer, differing only by turn_id. STT, attachments, thinking mode and context size all come for free, and ThreadReplyBox is deleted. The footer dock stays mounted while a thread is open, with a module-level active-dock key routing voice transcripts, interrupt-restore and pending attachments to whichever dock the user is composing in. Collapsing a thread mid-recording no longer kills the shared recorder.
Layout is reworked around a full-width conversation spine. Expanded cards become flex columns capped at 50vh (later raised to 70vh) with a scrollable body, pinned header and a pinned reply dock. Autoscroll pins the card body itself to its bottom on turn-done and near-bottom on live appends. Rows and cards bleed to the spine edges, dropping side borders and radius; collapsed rows are flush lists separated by a hairline divider, with the active state a faint tint. The inline reply box becomes a recessed full-width band with page-base background and square corners.
A live-binding fix surfaces the allocated turn_id the moment the input row is written, broadcasting a turn_started frame ahead of the ACT loop so the session store can bind the thread immediately. Card headers and reply docks now render without a refresh on slow turns, and a new thread’s in-flight ACT group inherits the reply’s turn_id so its tool trail renders inside the thread card instead of spilling out at the feed tail.
Speaker presentation is normalized: uniform left-aligned avatar rows, the assistant body drops its top padding so the first line aligns with the logo, and Chalie’s avatar drops the violet glow and circular clip to render the bare gradient mark uncropped (the user mark keeps its clipped badge). Long user messages past five lines collapse behind a show more / show less toggle with a theme-matched bottom fade. Assistant footers carry only Read-aloud and Reply-in-thread; thread pills gain a status dot and an “N new” badge, while single-user-message turns render inline with no pill.
Search, navigation and mobile polish round out the change. The Processes drawer becomes the unified Activity drawer, merging scheduled items and active delegates into one list. Global ⌘K / Ctrl+K opens thread search, and results open the slide-over panel rather than inline-expanding. The thread header itself is the expand/collapse affordance (click or Enter), a spinner replaces the caret while a thread is mid-loop and the title pulses gently, and the in-thread composer keeps its side padding on mobile where the footer rule was leaking through. The WeatherCard drops its hard 220px height for a min-height floor so long synthesis captions grow the card instead of being clipped.
-
Thread cards redesigned as contained units with starter header, thread spine, collapse control, and accordion single-open behavior
-
Reply composer unified with main dock via shared turn_id; footer stays mounted with module-level active-dock key routing voice, interrupt and attachments
-
Full-width spine with 50vh → 70vh capped cards, scrollable body, pinned header and reply dock, autoscroll pinned to card bottom
-
Live
turn_startedbroadcast binds new threads immediately so headers and reply docks render without a refresh; ACT trail inherits reply turn_id -
Speaker avatars normalized: Chalie renders bare gradient mark uncropped, assistant rows align to logo, long user messages collapse with theme-matched fade
-
Processes drawer merged into Activity drawer; ⌘K / Ctrl+K opens thread search opening the slide-over panel