Cloud start replaces rejected Claude logins

Merged
TE
4d ago
+178-27

A Cloud turn can fail after startup when the machine's Claude credential is rejected by the provider. The transcript now recognizes that specific Cloud rejection, transfers the cached local Claude login through the existing credential path, and retries the failed turn once. A per-row guard prevents a second transfer or retry, and the automatic path stays unavailable when no cached login exists; the existing explicit recovery card remains available.

This builds on the merged CloudMachineLogin validation and transfer support. The retry and transfer are covered by focused tests, including the exactly-once behavior and rejection classification.

Leo asked that “I want us to be able to do this too”: Cloud chats should continue with the person's available setup when a machine's stale login is rejected.

Validation:

  • bun test webviews/src/agent-session/acpmux/cloudCredentialRecovery.test.ts webviews/src/agent-session/acpmux/failureCopy.test.ts
  • python3 scripts/cmux-next/prepush-gate.py

Agent session: agent session