Refining the header-rail direction you liked. State is now
de-emphasized — small muted text, no loud color band —
and the roadrunner stays in the content bubble
with your text rather than sitting in the toolbar. The rail carries only
the action controls. Hover a bubble to confirm the bottom metrics strip
never collides. I'll wire the winner into
chat-ui.
Controls sit right-aligned on the top rail. State is a small muted label on the left — spinner + "running", a dot + "queued · #2" — quiet enough to read as minor info. The roadrunner is pinned to the top-right corner inside the content, sitting with the command text where it belongs.
Roadrunner lives in the bubble corner with the text; rail holds only controls + quiet state.
The rail is purely the control row (right-aligned), so the top edge stays clean. State becomes a tiny muted prefix on the text line itself, and the roadrunner trails directly after the command text — maximally "with the user text". Best if you want the rail to read unambiguously as actions only.
Rail = actions only. State is a faint inline prefix; roadrunner trails the text.
Like Option 1, but the rail carries an extremely subtle state tint (a faint blue/amber wash, ~8–10%) — just enough to sense the state peripherally without the loud band from before. State label stays muted; roadrunner stays in the content corner. The tint disappears entirely once the request goes idle.
A whisper of state color on the rail; everything else stays quiet. Roadrunner in corner.