Repository navigation
cmux NEXT: Cloud Diagnostics shows one readable line; the JSON report is behind Copy details and returned to the CLI - #23109
Conversation
… is behind Copy details and returned to the CLI The toast and its Copy text printed the daemon connection state with Swift's default description, so a connected machine dumped DaemonIdentity(..., capabilitySet: Set([...])). A CLI or MCP run also showed that toast in the person's window and returned nothing. Now a person sees the first thing that needs them (Cloud unavailable, signed out, a failed machine, a machine whose cmux-tui needs an update), else "Signed in as X. No Cloud problems found." Copy details copies the report as JSON, built from the same per-machine rows as `cloud.machines`. A CLI or MCP run gets `summary` and `details` back as its result and nothing shows in the window. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d3e-acc6-7a03-a574-453e3de27340&host=cosmic-gray
|
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 web and size checks: green Tour of |
|
Owned by projects-fa on cosmic-gray · session |
|
Bead |
|
Review (independent subagent): BLOCK at 88028ce
|
…ttings both declare it) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d3e-acc6-7a03-a574-453e3de27340&host=cosmic-gray
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Review (independent subagent): SHIP at f62d011
|
This comment has been minimized.
This comment has been minimized.
|
|
|
Shipped in:
|
The base merge brought +1103 more App lines from 26 commits since fee17be; the cap is the count at the merged head, and the baseline names the largest (#23651 +305, #23155 +285, #23527 +132, #23324 +92, #23638 +82, #23492 +57, #23588 +53, #23109 +48). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15bd2-60d2-70e1-8179-d3aa717c8828&host=cosmic-gray
…h (app size base red) (#23540) * cmux-next: raise the CmuxNextApp size cap to 134745, naming the growth (app size base red) check-app-size.sh is red on every feat-cmux-next push: "CmuxNextApp is capped at 128667 lines (now 134745, +6078)". The cap was set at 7817f10; since then 203 first-parent commits changed the target, net +6078. None of it is generated or dead (types checked for references across Packages/macOS); it is feature code, +4040 of it direct pushes (Files and Find +1795) and +2038 from PRs. The baseline comment names the largest. Follow-ups that would pay it back (SW14): FileExplorer/ (22 files, 1647 lines) into its own target with CmuxNextFiles.FolderWatcher instead of its own FSEvents stream, and BrowserDownloadsPopup.swift (468) out of the App target. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15bd2-60d2-70e1-8179-d3aa717c8828&host=cosmic-gray * cmux-next: the App size cap is the count at ae0d9b7 (135848) The base merge brought +1103 more App lines from 26 commits since fee17be; the cap is the count at the merged head, and the baseline names the largest (#23651 +305, #23155 +285, #23527 +132, #23324 +92, #23638 +82, #23492 +57, #23588 +53, #23109 +48). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15bd2-60d2-70e1-8179-d3aa717c8828&host=cosmic-gray --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ndshake again, and the team's name (#24114) * cmux NEXT: Cloud Diagnostics' copied details carry the whole daemon handshake again, and the team's name #23109 made the toast one line with the report as JSON behind Copy details, but the JSON lost what the old text dump had: the ghostty commit, the full capability list (only the missing ones stayed), the daemon pid, registry id and generation. Each Cloud machine's row now carries the daemon's whole `identify` under its wire names (the connected one, else the last that answered, with the reason the link is down). The account half adds team_name from the team list the app already holds; team_id stays the UUID, and the all-well line names the team instead of its UUID. The diagnostics move out of CloudHandlers into CloudDiagnostics, so the CloudHandlers type stays under its god-type limit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d3e-acc6-7a03-a574-453e3de27340&host=cosmic-gray * Cloud Diagnostics: the report's JSON lives in CmuxNextControl, so CmuxNextApp does not grow The details builder (account fields, the daemon handshake fields) is pure data over DaemonIdentity and JSONValue, so it moves to CmuxNextControl/Diagnostics/CloudDiagnosticsReport.swift. CloudHandlers keeps only the glue that reads the live services. CmuxNextApp's source lines end below the base (check-app-size.sh --base), and CloudHandlers stays under its god-type limit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d3e-acc6-7a03-a574-453e3de27340&host=cosmic-gray * Cloud Diagnostics: CloudDiagnosticsReport in CmuxNextControl, the glue in CloudHandlers The rest of the previous commit, whose staging stopped at the deleted path: the details builder (account fields, the daemon handshake fields) as CmuxNextControl/Diagnostics/CloudDiagnosticsReport.swift, CloudHandlers reading the live services into it, and the tests on the new names. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15d3e-acc6-7a03-a574-453e3de27340&host=cosmic-gray --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Cloud Diagnostics' toast, and the text its Copy button put on the clipboard, printed each machine's daemon connection state with Swift's default description. On a connected machine that is a raw
DaemonIdentity(..., capabilitySet: Set([...]))dump; Leo hit it on 2026-10-21. A CLI or MCP run (cmux cloud diagnostics) also showed that toast in the person's window and returned only{"ran":true}.Now:
<machine>: This machine runs cmux-tui 0.1.0 (a9b104f3cb7d). Update it to turn on every feature of this app.). When nothing does, it saysSigned in as <email>. No Cloud problems found.Copy details copies the full report as JSON, and only on a click.summaryanddetails(the same JSON) as the run'sresult, and nothing shows in the window.cloud.machinescontrol method (AppControl.cloudMachineRow), so the two can't drift. The report addslink_pid, the account, the backend, andlast_error.Two new strings (
cloud.button.copyDetails,cloud.result.diagnosticsAllWell) are in Cloud.xcstrings for every locale that catalog carries.scripts/localize-changesimported them; the catalog parity count is unchanged from base.Validation:
scripts/cmux-next/prepush-gate.pypasses. The Swift compile runs on CI; nothing was built on the Mac.No capture: the toast only appears when a cloud call a person started fails, and no tour state reaches a failing cmux Cloud call. The change is the toast's text (a one-line summary from CloudStrings) and a "Copy details" button in place of the clipboard dump.
🤖 Generated with Claude Code
Agent session: cosmic-gray
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes Cloud Diagnostics so the toast shows one readable line and the full JSON report is only copied on request. CLI and MCP callers now get
summaryanddetailsback in the run's result instead of{"ran":true}; nothing shows in their window.The old toast printed each machine's daemon connection state using Swift's default description, so a connected machine dumped a raw
DaemonIdentity(..., capabilitySet: Set([...]))on screen and on the clipboard. Now a person sees the first thing that needs them — Cloud unavailable, signed out, a failed machine, or a machine running a cmux-tui that needs an update — or "Signed in as . No Cloud problems found."Details
cloud.machines, so the two reports can't drift.link_pid, the account,team_id, the backend, andlast_error.cloud.button.copyDetails,cloud.result.diagnosticsAllWell) are translated for every locale in the catalog.Written for commit acea1e3. Summary will update on new commits.