Status affordances — round 2 (top-anchored + roadrunner placed)

Evolving the footer idea you liked: the real metrics tooltip slides out of the bubble's bottom edge on hover, so these put status + controls along the top instead. Every option shows the roadrunner placement, and each bubble reveals a faux metrics strip on hover so you can confirm there's no collision. Implemented in chat-ui once you pick.

Option A — Header rail Option 3, moved up

The exact bar you liked, relocated to a slim header strip integrated into the top of the bubble (rounded top corners, hairline divider). Roadrunner sits at the far left of the rail; state label + spinner next to it; controls trail on the right just inside the avatar. The bubble's bottom edge stays 100% free for the hover metrics strip.

R
running
@collision optimize validate --workdir D:\collisions2
elapsed 4.2s · 3 actions · 1,204 tokens
R
queued · #2
@collision optimize validate --workdir D:\collisions2
queued · waiting on 1 request

Hover either bubble — metrics slide out the bottom, header stays put. No overlap.

Option B — Floating hover toolbar

Zero permanent vertical chrome. A small floating toolbar straddles the top edge on hover (Slack/Notion style) holding every action in one consistent icon row — roadrunner, run/stop, trash. The state stays legible at all times via a tiny inline badge prefixed in the content. When idle + explained, only the roadrunner persists.

R
running @collision optimize validate --workdir D:\collisions2
elapsed 4.2s · 3 actions · 1,204 tokens
R
queued · #2 @collision optimize validate --workdir D:\collisions2
queued · waiting on 1 request

Hover to raise the toolbar. It floats above the top edge, clear of the bottom metrics strip.

Option C — Left accent bar + corner cluster

No header band at all. State is carried by a colored accent stripe on the bubble's left edge — blue pulses while running, amber for queued — plus a tiny inline badge. All actions live in a compact top-right corner cluster: the roadrunner is always visible there, and run/stop + trash fade in on hover. Lightest footprint of the four; the bubble keeps its normal shape.

R
running @collision optimize validate --workdir D:\collisions2
elapsed 4.2s · 3 actions · 1,204 tokens
R
queued · #2 @collision optimize validate --workdir D:\collisions2
queued · waiting on 1 request

Roadrunner always visible top-right; run/stop + trash fade in on hover. Left stripe = state.

Option D — Tinted state band

Same top rail as Option A, but the band is tinted by state (amber = queued, blue = running) so the status reads at a glance without leaning on the small label — like a colored subject line. The tint fades to the normal bubble once the request is idle (leaving just a quiet roadrunner). Most glanceable; slightly more visual weight.

R
running
@collision optimize validate --workdir D:\collisions2
elapsed 4.2s · 3 actions · 1,204 tokens
R
queued · #2
@collision optimize validate --workdir D:\collisions2
queued · waiting on 1 request

Color carries the state; the band collapses to a plain roadrunner corner when idle.

roadrunner — explained / cached run now cancel running remove from queue trash