The companion widget stops being a Storybook mockup and becomes a thing you
can actually use. Built live on stream, with Krzysztof finding the bugs in
real time.
The companion is real now (#28)
In 2.16 it existed only in Storybook. Now it runs on live daemon data and
can be pulled out of the browser entirely.
- Float it above everything. A
floatbutton in the dashboard top bar
opens the widget in a Document Picture-in-Picture window that stays above
every other application. No extension, no extra software. The element is
moved into that window rather than re-rendered, so there is one
component with one state, and it goes back where it came from when the
window closes. - Switch conversations from the widget. Every agent gets a portrait in
a vertical rail, in the same order as the dashboard tabs. Positions never
change - the selected one grows and lights up in place, so switching
cannot shuffle anything. Unread conversations carry an amber ring. - A live voice spectrum. The hexagon follows your actual microphone
level, from the same feed the dashboard oscilloscope uses, and breathes
slowly when you are quiet - silence should look like listening, not like
a frozen widget. It lights the moment you hold push-to-talk, agreeing
with the ON AIR badge instead of lagging behind it. - Waiting messages and a busy line. Transcripts awaiting pickup and
replies queued behind the speaker render below the line, dimmed, exactly
as they do in the dashboard - both views now share the same state machine
rather than each deciding for itself what a status means. When the agent
is working between messages, the widget says what it is doing. - Type sized per message. A short line renders large, a long one small,
and neither changes after it appears. Text that resizes while you are
reading it is worse than text that was always small. /companionstandalone, and?transparent=1for a native shell that
can composite it. The widget is already built to be see-through when
something can render it that way.
Also
/statusnow reportsagent_voices, so a client can draw an agent's
portrait without fetching/characteronce per agent on every poll.
Storybook
Companion/PoC is gone. In its place: Companion/Widget with twelve
states grouped by what each one is for - including an empty conversation
and a short line after a long history, both of which broke on air today -
and Companion/Parts covering the pieces alone: bubble sizes, the spectrum
idle and speaking, and every voice portrait in one grid, so a voice without
artwork is visible there rather than on a stream.
CLAUDE.md now says Storybook is kept up to date, not merely used to design
with: stories change in the same commit as the component, dead stories get
deleted, and a bug worth fixing is a state worth a story.
Known
Two voices in the subagent pool, aurora and liora, still have no
portrait and render as a blank disc (#44).