Cloud send from a new tab opens the chat at once, as a local send does

TE
2d ago
+45-7

Leo: "i should never be seeing this it should just insta send me to a new chat just like local"

Before, pressing Send with Cloud picked on the New Tab page kept the page up: the sent message, a "Preparing machine" spinner and the "Initializing session" row sat above the New Tab composer and its Ask/Search menu until the chat opened on its machine.

Now the page goes the moment the start goes out, as it does for a local send. The pane shows the chat view: the message as sent, with machine prep and the session start under it as its live status (the existing CloudStartView, moved, unchanged). The host still opens the chat on the machine and delivers the message once the session is ready, then closes this tab, the same as before. Nothing is removed or switched off. The New Tab page's own cloudStatus stays wired for any other caller.

The page's draft is kept. If the start fails, or the cap card's Run on This Mac answers, the prompt goes back into the chat composer (on Run on This Mac it is then sent here, as before). The recent-chats list under a new chat does not show under a Cloud start's chat.

Change: webviews/src/agent-session/acpmux/App.tsx only (sendToCloud from the page sets cloudLeftPage for this New Tab visit; leaveNewTabDraft holds the draft; the start's answer restores it on failure or Run here).

Checks (fleet, cmux-ci test):

  • Headless captures of the pane in mock mode, Cloud picked, "helo" typed, Return. Before: the New Tab page stays, with the start above its composer and menu. After: the chat view, with the message, "Preparing machine" and "Initializing session", and an empty, locked chat composer. A failed start puts "helo" back in the chat composer.
  • bun test on CloudStartView, cloudStartProgress, cloudRun, NewTabScreen and the automation compose-send tests: 95 pass, 0 fail.
  • bun run typecheck: exit 0. vp fmt --check App.tsx: clean.

Overlap: #34371 (Cloud inline sign-in) and #34104 (paid-plan recovery) also edit sendToCloud in App.tsx; whichever lands second needs a small rebase there.

🤖 Generated with Claude Code

Agent session: agent session