Cloud: confirmed owner-only provider credential transfer
Cloud setup can transfer provider credentials only after explicit confirmation of the provider, owner VM, account, and scope. Claude uses claude setup-token, privately captures its minted token, reuses the existing Keychain secret store, and installs the runtime-recognized own-login files with mode 0600. Codex starts a fresh local device login for each transfer; its refresh credentials are delivered to that VM and are never persisted in the Mac secret cache or reused as a seed on another VM.
The installer checks the shipped image policy and fails closed for team/shared machines. It removes the shipped model-plane environment before checking for custom endpoint conflicts. Login stays on the local machine, including when setup starts from a Cloud workspace; Claude displays only allowlisted authorization URLs and fixed instructions while keeping the token-bearing transcript private. Cancellation terminates the owned login and removes staging data. Core transfer does not restart sessions.
Figure out what you want to transfer into the api key from current machine to new machine.. claude setup-token
Always need new claude credentials, that kind of suck
manual transfer claude credentials to VM
Official operational rule: “Use one auth.json per runner or per serialized workflow stream. Do not share the same file across concurrent jobs or multiple machines.” Codex CI/CD authentication. Durable Codex refresh brokering is separate work; this implementation requires fresh provider login for each transfer.
Changelog
- Added confirmed owner-only Claude credential transfer and per-VM Codex login for Cloud setup.
Validation
- Combined fleet step
592c9f3c11f2fbf0857001f7passed at integration head90569aba8ddd9e51ba8e26fbe01c347a2094ee73, containing current core1864bfb4414135fe1706818b9be62f7ccd0c7469: full package compilation plusCloudCredentialTransferTests,CloudCredentialRecoveryTests,AgentPaneCloudCredentialTransferTests, andAccountsLocalPaneTests; exit 0. - Tests cover actual image launcher behavior, shipped model-plane environment, custom endpoint rejection, scoped consent/cancellation, private token output, live authorization URL delivery, and per-VM Codex cache policy.
- Final manifest-only correction declares the test target's direct module dependency and removes the unrelated Chief Views dependency.
check-package-dependency-lists.pyand whole-PRprepush-gate.pypass; App growth is reported as a warning.
No capture: this PR adds credential transfer plumbing and a reusable local-terminal routing helper, with no new visual surface. Confirmation and recovery UI are implemented in separate PRs.
Review (codex gpt-6-astra xhigh, review-26139c): SHIP at 1864bfb4414135fe1706818b9be62f7ccd0c7469
Agent session: agent session