Repository navigation
Cloud: the NEXT nightly passes the Mac's login by default; the shipping app points at the machine's sign-in - #30204
Conversation
… points at the machine's sign-in The NEXT nightly is dogfood (only the team uses NEXT Cloud), so the cmux.cloud.passHarnessLogin switch now defaults on in any DevTools.isEnabled build (a Debug compile or a NIGHTLY bundle), off in the shipping app; the setting still wins. With the switch off, the new-workspace setup says to sign in on the VM from its chat instead of "Provider credential setup is unavailable with this Cloud connection." (review follow-up on #30183). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Not verified: macOS jobs did not run: compile and app tests were skipped on CI passes on Written by Default changesThis pull request changes 1 default at
Signed off on this commit by Merge receipt: merged as Regenerate the snapshot with Shipped in:
|
|
Owned by an agent session · session |
There was a problem hiding this comment.
1 issue found across 6 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="Packages/macOS/CmuxNext/Tests/CmuxNextAppTests/CloudStartChatLoginTests.swift">
<violation number="1" location="Packages/macOS/CmuxNext/Tests/CmuxNextAppTests/CloudStartChatLoginTests.swift:22">
P2: This fixture does not test the shipped NEXT DEV build: `com.cmuxterm.app.debug.next` is a Release artifact, but `isDebugBuild: true` makes `DevTools.isAvailable` return true for any bundle. Pass `false` here so the test verifies the bundle-specific dogfood rule and catches regressions that disable login transfer for NEXT DEV.</violation>
</file>
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
|
|
||
| /// The NEXT nightly is dogfood (only the team uses NEXT Cloud), so it passes the login by | ||
| /// default like a DEV build; the shipping app does not. | ||
| @Test(arguments: [("com.cmuxterm.app.nightly.cmux-next", false, true), ("com.cmuxterm.app.debug.next", true, true), |
There was a problem hiding this comment.
P2: This fixture does not test the shipped NEXT DEV build: com.cmuxterm.app.debug.next is a Release artifact, but isDebugBuild: true makes DevTools.isAvailable return true for any bundle. Pass false here so the test verifies the bundle-specific dogfood rule and catches regressions that disable login transfer for NEXT DEV.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At Packages/macOS/CmuxNext/Tests/CmuxNextAppTests/CloudStartChatLoginTests.swift, line 22:
<comment>This fixture does not test the shipped NEXT DEV build: `com.cmuxterm.app.debug.next` is a Release artifact, but `isDebugBuild: true` makes `DevTools.isAvailable` return true for any bundle. Pass `false` here so the test verifies the bundle-specific dogfood rule and catches regressions that disable login transfer for NEXT DEV.</comment>
<file context>
@@ -6,14 +7,23 @@ import Testing
+
+ /// The NEXT nightly is dogfood (only the team uses NEXT Cloud), so it passes the login by
+ /// default like a DEV build; the shipping app does not.
+ @Test(arguments: [("com.cmuxterm.app.nightly.cmux-next", false, true), ("com.cmuxterm.app.debug.next", true, true),
+ ("com.cmuxterm.app", false, false), ("com.cmuxterm.app.rc", false, false)])
+ func dogfoodBundlesPassALoginByDefault(bundleID: String, isDebugBuild: Bool, passes: Bool) {
</file context>
| @Test(arguments: [("com.cmuxterm.app.nightly.cmux-next", false, true), ("com.cmuxterm.app.debug.next", true, true), | |
| @Test(arguments: [("com.cmuxterm.app.nightly.cmux-next", false, true), ("com.cmuxterm.app.debug.next", false, true), |
|
Review (subagent opus-5.5 medium): SHIP at 322b196 DevTools.isEnabled turns the switch on for the NEXT nightly (and NEXT Stable, Follow-ups:
|
|
Leo: this PR made the #30223 fixes it without a revert. It moves the pure switch ( The fleet compile and the Cloud login, recovery and wizard suites passed at 37f7da8. The PR has For later Cloud work: put new logic in CmuxNextCloud, CmuxNextCloudCredentials or CmuxNextCloudUI, not in CmuxNextApp. The size cap refuses any source-line growth in the App. |
…med the gate) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
…30223) #30204 grew CmuxNextApp by one source line (CloudHandlers+Account.swift 403 -> 404), so check-app-size.sh --base fails on feat-cmux-next tip afef751 ("CmuxNextApp size cap"; arch-ratchet reports app_lines +2). The pure part of the Mac-to-machine login switch, its defaults key and its decision (the setting wins, else on in a dogfood build), now lives on CloudCredentialTransfer in CmuxNextCloudCredentials, the package that owns the transfer. The app keeps one forwarder, CloudStartChat.passesHarnessLoginHere, which passes DevTools.isEnabled and UserDefaults.standard; every caller and the behavior stay the same. CmuxNextApp source lines: 117437 at the tip, 117434 here (117436 at the last green 88dcb89). A new test pins that the switch reads cmux.cloud.passHarnessLogin from the defaults it is given. Co-authored-by: Leo <cheerleaderleo@outlook.com>
…med the gate) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
…med the gate) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
…med the gate) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
…med the gate) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
…med the gate) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
Follow-up to #30183. Leo: "IN THE ACTUAL PRODUCTION APP IT MAY BE AGAINST TOS" (copying the Mac's Claude/Codex login to a Cloud machine). That line is about the shipping production app. The NEXT nightly is dogfood (only the team uses NEXT Cloud), so it keeps the transfer on by default, as Debug builds do.
What changed
CloudStartChat.passesHarnessLogin(isDogfoodBuild:setting:)=setting ?? isDogfoodBuild. The process reads the build type from the existingDevTools.isEnabled(a Debug compile, or acom.cmuxterm.app.nightly[.<tag>]bundle, which includes the NEXT nightlycom.cmuxterm.app.nightly.cmux-next). Thecmux.cloud.passHarnessLogindefault still wins when set.CredentialAvailability.signInOnMachinecase, with translations for all 21 locales. This was a review follow-up on Cloud: copying the Mac's Claude/Codex login to a machine is DEV and dogfood only, card recovery included #30183.Risk
NEXT nightly users get the Mac-login transfer again from the card, the start-chat pass and the new-workspace setup, as before #30183. Release and RC builds stay off. To make a nightly behave like production:
defaults write com.cmuxterm.app.nightly.cmux-next cmux.cloud.passHarnessLogin -bool NO.Agent session: agent session
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
The NEXT nightly build passes the Mac's Claude/Codex login to Cloud machines by default again; the shipping app keeps the transfer off.
cmux.cloud.passHarnessLoginswitch on; release and RC builds default it off, and the explicit setting still wins.Written for commit 322b196. Summary will update on new commits.