Repository navigation
cloud: one-command dev loop on a kept Cloud machine (build, patch-push, restart, journey in about a minute) - #36251
Conversation
…ush, restart, journey) scripts/cmux-next/cloud-devloop.ts: syncs this worktree's changes to a warm fleet Linux checkout, builds cmux-tui there (dev profile, stripped, baseline zig CPU for libghostty-vt), pushes a zstd --patch-from delta to one persistent Cloud machine in 512 KiB fs/write pieces, flips /opt/cmux/current to a dev profile, restarts cmux-host and acpmux, and runs the Cloud journey on that machine, printing the first red step with the machine's journal. --restore puts the image's binary back. cloud-journey.ts: --machine ID runs on an existing machine and keeps it (resetting an earlier run's model stub), and --keyed-start checks the app's keyed acpmux start still holds after acpmux.service's restart delay (the take-over race of cmux-platform#845). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
…P_BUILD_HOST Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-3bab30503f0b9a7059e5
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. |
|
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)
Shipped in:
The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/41992440601 at c293fc3 failed: cmux-next crash ends the app. |
|
Owned by an agent session · session |
|
Found 3 test failures on Blacksmith runners: Failures
|
teamleaderleo
left a comment
There was a problem hiding this comment.
Review (codex gpt-6.1-sol xhigh, next-review, since=20261105T073655Z): SHIP at db0ef2f
SHIP at db0ef2f
Visual verdict: no images; Leo tries the build
-
- [P1] [follow-up] [category:correctness] [finding:F1] [outcome:pending]
cloud-devloop.ts:503uses the nonexistentcloud.machine.snapshotoperation, so every--snapshotinvocation fails with an unknown-operation error. Callcloud.snapshot.createinstead.
- [P1] [follow-up] [category:correctness] [finding:F1] [outcome:pending]
-
- [P2] [follow-up] [category:correctness] [finding:F2] [outcome:pending]
cloud-journey.ts:497-503resets only Claude’s stub endpoint. The Codex stub writes/home/cmux/.codex/config.toml, which remains pointed at the old loopback provider on later--machine --agent codexruns without--model stub.
- [P2] [follow-up] [category:correctness] [finding:F2] [outcome:pending]
-
- [P2] [follow-up] [category:correctness] [finding:F3] [outcome:pending]
cloud-devloop.ts:270-276searches only the firstcloud.machine.listpage. Since the API is paginated (default limit 50), an existing named dev machine beyond that page is missed and another machine is created.
- [P2] [follow-up] [category:correctness] [finding:F3] [outcome:pending]
-
- [P2] [follow-up] [category:reliability] [finding:F4] [outcome:pending]
cloud-devloop.ts:280-286proceeds after the 300-second status loop even if the machine is still not running, causing later install/exec failures instead of reporting a provisioning timeout.
- [P2] [follow-up] [category:reliability] [finding:F4] [outcome:pending]
Follow-ups:
- [finding:F1] Fix the snapshot operation.
- [finding:F2] Reset the Codex stub configuration.
- [finding:F3] Page through machine listings.
- [finding:F4] Fail explicitly when the machine-start timeout expires.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
A machine-side change (cmux-tui, cmux-host or acpmux) can now be checked end to end on a real Cloud machine in about a minute, with no image bake or nightly:
bun scripts/cmux-next/cloud-devloop.ts --credentials FILE.Leo, 2026-11-05: "Just running commands and then we're seeing, Oh, okay, we gotta fix this. Then we gotta fix that ... we hill climb within, like, you know, several minutes, we have multiple iterations within that instead of, like, one iteration every couple minutes."
What changes
scripts/cmux-next/cloud-devloop.ts: one kept Cloud machine (cloud-devloop, created on first use) is the dev box. One command:--build-hostorCLOUD_DEVLOOP_BUILD_HOST);cmux-tui, the guest's one multi-call binary (dev profile, stripped, the guest's Ubuntu release, baseline zig CPU for libghostty-vt);zstd --patch-fromdelta of what the machine already runs (0.3 MB after a one-line acpmux edit) in 512 KiBfs/writepieces, SHA-256-checked;/opt/cmux/currentto a dev profile and restarts cmux-host and acpmux.service;--restoreundoes it;cloud-journey.ts:--machine IDruns on an existing machine, keeps it, and resets an earlier run's model stub.--keyed-startchecks that the app's keyed acpmux start still holds after acpmux.service's restart delay, which is the take-over race of cmux-platform#845.Measured (production, agent test account)
--keyed-startwas red on production before #845 deployed and green after, 36 s each run.Tests
cloud-devloop.test.tsandcloud-journey.test.ts: 21 pass and 0 fail on the fleet.Changelog
none
Agent session: agent session
🤖 Generated with Claude Code
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Machine-side changes (cmux-tui, cmux-host, acpmux) can now be checked end to end on a kept Cloud machine in about a minute, with no image bake or nightly.
bun scripts/cmux-next/cloud-devloop.ts --credentials FILErsyncs the worktree's changed files to a warm fleet Linux build host, builds the multi-callcmux-tuibinary there, pushes azstd --patch-fromdelta in 512 KiB pieces, flips/opt/cmux/currentto a dev profile, restarts the host and acpmux units, and runs the Cloud journey on that same machine, printing the first failing step with the machine's journal lines.--restoreputs the image's binary back;--snapshotcreates the dev machine as the next base image.cloud-journey.tsgains--machine ID(run on an existing machine and keep it, resetting an earlier run's model stub) and--keyed-start, which verifies the keyed acpmux start still holds after acpmux.service's restart delay — the take-over race of cmux-platform#845.Written for commit db0ef2f. Summary will update on new commits.