fix(agent-chat): attach waiting message controls to their bubble
Leo: "this hover is ugly :("
Waiting steers now keep Send now and × beside their message bubble in a content-sized row. Their hover area stays on the individual controls. The same queue actions and delivery behavior remain in use.
Reference: Claude composer steering controls; copy the compact alignment and keep the existing colors and glass. The private report screenshot is not published.
Verification
CMUX_BROWSER_TESTS=1 bun test test/queued-user-footer.test.ts: baseline run 40805267122 reproduced detached controls at 880px and 360px (horizontal gap -83.90625px); both existing send/refusal behavior tests passed. Final head 577df14b418fed3020633c9e37bf6fabb25b85f8 passes all four tests in run 40805937689. That run also restores the original bubble and CSS, reproduces the two geometry failures, and captures both layouts at 880px and 360px in light and dark themes.
bun run check and the NEXT pre-push gate passed. Independent Astra HIGH/FAST review and primary review both SHIP at 577df14b418fed3020633c9e37bf6fabb25b85f8. Risk: waiting message layout and virtual row height; accepted messages return to the ordinary action footer.
Observed / Not run
Observed baseline browser failure, four passing head browser tests, and passing web lint. Synthetic screenshots were visually inspected and passed the media privacy checker with Tesseract OCR. Native app build not run: this change is confined to the webview layout.
Before / After
| Theme / width | Before | After |
|---|---|---|
| dark / 880px | ![]() | ![]() |
| light / 880px | ![]() | ![]() |
| dark / 360px | ![]() | ![]() |
| light / 360px | ![]() | ![]() |
Changelog
Fixed: Keep waiting message controls attached to their bubble.
Agent session: agent session







