Repository navigation
cmux NEXT Cloud: a new machine gets a readable default name, not its raw id - #28257
teamleaderleo wants to merge 3 commits into
Conversation
…raw id The cmux-next backend stores no name and no slug for an unnamed machine, so the first Cloud machine was titled vm_... in the sidebar and menus. A create with no typed name on the app server path now sends "Cloud Machine" (then "Cloud Machine 2", ...), unique among the account's machines and creations in flight, pinned on the creation so a Retry sends the same params. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Owned by an agent session · session |
|
Found 4 test failures on Blacksmith runners: Failures
|
…flight asked for Review of fae9a11: an unnamed create that started while a create typed "Cloud Machine" was still in flight also got "Cloud Machine". Every app server create now holds its name (typed or default) until it ends. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Default changesThis pull request changes 3 defaults at
Signed off on this commit by Regenerate the snapshot with |
|
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)
red: cmux-next checks (god files, concurrency, crash safety, l10n); NEW: |
…ed or default Review of 5bde26a: a Retry must send the exact params the held approval has, so the creation keeps whichever name its first app server attempt sent, not only a picked default. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review (codex gpt-6-astra high, next-review): SHIP at 39840f5 No blocking findings. Reviewed the full diff and supplied surrounding code. Tests were not run; additional repository reads were blocked by the environment’s approval policy. |
…lt name, not its raw id (#28517) * cmux NEXT Cloud: a new machine gets a readable default name, not its raw id The cmux-next backend stores no name and no slug for an unnamed machine, so the first Cloud machine was titled vm_... in the sidebar and menus. A create with no typed name on the app server path now sends "Cloud Machine" (then "Cloud Machine 2", ...), unique among the account's machines and creations in flight, pinned on the creation so a Retry sends the same params. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * cmux NEXT Cloud: a default machine name skips names other creates in flight asked for Review of fae9a11: an unnamed create that started while a create typed "Cloud Machine" was still in flight also got "Cloud Machine". Every app server create now holds its name (typed or default) until it ends. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * cmux NEXT Cloud: a creation pins the name its first attempt sent, typed or default Review of 5bde26a: a Retry must send the exact params the held approval has, so the creation keeps whichever name its first app server attempt sent, not only a picked default. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
|
This PR's whole change is already on feat-cmux-next: it landed as the carry #28517 (ab0b77a), with the same six files, and every line this PR adds is on the base now. A squash of this PR would add nothing. The body now has fresh before/after captures at this head and its base commit (1x: the cloud-capture route can't take a 2x display), and the 9 Cloud create suites passed again at 39840f5. No landing is needed. It stays open only because the landing helper doesn't close PRs; the owner can close it as superseded by #28517. |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Leo, 2026-10-30: "How about more cmux-platform audits, improvements, features, fixes, optimizations, polish, plus the ui that gets people (or agents) using it". Earlier, 2026-10-29: "let's just get the cloud and its respective ui up to snuff".
Friction
On the app server link (the cmux-next backend), a Cloud machine created with no typed name came back with
name: nulland no slug, soCloudMachine.title(displayName ?? slug ?? id) titled a person's very first machine by its raw id (vm_…) in the sidebar, menus and the create confirmation. The classic/api/vmlink names it itself (its slug), so only the app server path was hit.Change
CloudService.createMachine: on the app server link, a create with no name (or a blank one) sends a readable default, Cloud Machine, then Cloud Machine 2, 3, …, the first free one among this account's machine titles and the creations still in flight (compared trimmed and case-insensitively).CloudMachineCreation, so a Retry sends exactly the same params with the same idempotency key (an approval is answered only for the exact params the backend holds). It is not put intoCloudMachineRequest.name, because a named request is a request option the app server create refuses.CloudMachine.defaultName(taken:base:numbered:)(CmuxNextCloud) is the pure pick; the two strings live in the Cloud table (cloud.machine.defaultName,cloud.machine.defaultNameNumbered) in all 21 languages.Screenshots
Native, cloud-capture fixture route (HQ pr-capture-cloud.yml, staging test account on the app server link,
cloudFixture.link: app): the sidebar is hidden so an unnamednewCloudMachinefrom the CLI asks in its sheet; the capture never presses Create (the confirmation is person-only), so nothing is made. State: the state below (steps: auth.status, list-machines, toggleSidebar,action run newCloudMachine,debug.dialog).Recaptured at this head (39840f5) and at its base commit on feat-cmux-next (7a2d52d) with the same steps on the cloud-capture route, cropped to the confirmation. The cloud-capture route runs only on Blacksmith macOS, which cannot take a 2x whole-mini display, so these are 1x.
Viewed after image: yes
Visual verdict: The confirmation gains one plain "Name: Cloud Machine" line with no layout, control or spacing change, so it sits fine next to ChatGPT or Claude.
debug.dialogbefore: lines "Asked by an agent or a script. … / Size: 2 vCPU, 4 GB memory, 16 GB disk". After: "… / Name: Cloud Machine / Size: 2 vCPU, 4 GB memory, 16 GB disk" (the name the machine is created and listed with).Video:
(after.mp4)
UI review checklist
design/ui-review-checklist.md walked: copy only, no layout, motion, spacing or colour change. The confirmation and sidebar show a name instead of an id; one space between words; no narration; no new control.
Tests
CloudMachineDefaultNameTests(new: first pick, counting from 2, first free number, trimmed/case-insensitive, an unnamed record's title) plus the create-flow suites (CloudCreateRetryKeyTests,CloudCreateWithoutAskingTests,CloudLegacyCreateConfirmTests,CloudCreationProOfferTests,CloudRequestAskerGoneTests,CloudEnvironmentBootFlowTests,CloudMachineRequestCardTests,CloudNewMachineTests) on the fleet: all 9 suites passed at fae9a11 (cmux-ci step key leo-default-name-fae9a117, summary artifact c1eda766398b0f92320bd189), and all 9 again at the head 39840f5 (cmux-ci step key f28257-39840f52)Risk
Low. App server link only; the legacy create is unchanged. A machine an agent or CLI creates with no name on the app server link now carries a name ("Cloud Machine N") the person can rename.
Independent review: SHIP at 39840f5 (Codex gpt-6-astra, high).
Agent session: agent session
🤖 Generated with Claude Code