Skip to content

Cloud: show a paused machine as "Paused (idle)" with a Resume button - #23836

Merged
teamleaderleo merged 1 commit into
feat-cmux-nextfrom
cloud-idle-paused-ui
Oct 22, 2026
Merged

teamleaderleo merged 1 commit into
feat-cmux-nextfrom
cloud-idle-paused-ui

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Builds on #23713 (merged as 4ef18c2) and #23834 (merged as 99c544e). Now one commit on feat-cmux-next.

Takes back #23713: on purpose. This is the planned follow-up from the same split. It replaces the interim paused text from #23713 (a generic "Paused" stage plus the old machinePaused next step) with "Paused (idle)" or "Paused" and next-step text that names the Resume button.

With #23713, a Cloud machine the idle auto-pause parked reads "Paused" with a Retry button. This PR says why and makes the button say what it does:

  • Sidebar header: "Paused (idle)" when the idle auto-pause parked the machine, "Paused" when a person or caller paused it. It's quiet grey, not red, and needs no attention (paused isn't something to fix: an attach resumes it).
  • Hover card: the machine's link dot is grey for a paused machine, not red.
  • New Cloud Workspace row: a paused machine's row shows no spinner while it waits for an attach.
  • Progress view: the stage reads "Paused (idle)" or "Paused". The text under it says the disk and session are kept and that Resume starts the machine again. The one button reads Resume (it runs the same resume-on-attach path as Retry); Copy Error is hidden.
  • The progress view no longer uses the old "The machine is paused. Resume it from its menu in the sidebar, then click Retry." text. Its catalog entry stays (catalog changes here are additions only); it can be pruned separately. The new strings are localized in all 21 catalog locales, inserted after existing keys without moving any.

Tests

CloudIdlePauseTests (extends #23713's suite):

  • an idle-paused stage reads "Paused (idle)"; a person's pause reads "Paused";
  • the sidebar header says "Paused (idle)" / "Paused" and needs no attention;
  • the hover card's tone for a paused machine is grey (.secondary), not danger;
  • the paused machine's creation row has no spinner;
  • the progress view's button reads Resume.

Red proof: fleet step 7b72e086d58ff3002a4c1ad6 at the test-only scratch commit 1a4e38ce939ca804a713a04820a1f2f35d124d67 ran the whole set, these assertions included, red before the fix.

Observed / Not run

Not run locally: no Swift compile or tests on this Mac (agents don't build here). scripts/cmux-next/prepush-gate.py passed. CI runs the Mac compile and tests.

No capture: the change is a status word in the sidebar header and progress view ("Paused (idle)" instead of "Paused") and a button title ("Resume" instead of "Retry"). Showing it for real needs a paused Cloud machine on a signed-in account, which the capture minis don't have; the tests above check each string where it renders. No real Cloud VM was created.

Changelog

Changed: a paused Cloud machine reads "Paused (idle)" or "Paused" and offers one-click Resume.

🤖 Generated with Claude Code
Agent session: cosmic-gray

@teamleaderleo teamleaderleo added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 21, 2026
Base automatically changed from cloud-idle-auto-pause to feat-cmux-next October 22, 2026 04:14
…sume button

A machine the idle auto-pause parked now reads "Paused (idle)" (or
"Paused" when a person paused it) in the sidebar header, its hover card
(grey, not red) and the progress view, which says the disk and session
are kept and offers one-click Resume instead of Retry and Copy Error.
Its New Cloud Workspace row shows no spinner while it waits. The
progress view no longer uses the old "Resume it from its menu, then
click Retry" text.

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
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-zvf6o created for this PR by the cmux coordinator.

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 23472d3: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr23836 -f ref=cloud-idle-paused-ui -f platform=macos -f backend_mode=local

red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on 12ad3f4 to compare; do not merge until green; see lane-rules

@blacksmith-sh

blacksmith-sh Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Found 17 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmp9n7ekpth/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmpq45ub9qm/summary-missing.json (live):/summary-missing.json (live): View Logs
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows/
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows
View Logs
[new_workspaces] the window draws no frames/[new_workspaces] the window draws no frames View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
cmux-next-ios-kit.yml runs macOS jobs on pull requests but a new push does not cancel t
he previous run; key the concurrency group on the pull request and set cancel-in-progre
ss for its pull request events/
cmux-next-ios-kit.yml runs macOS jobs on pull requests but a new push does not cancel t
he previous run; key the concurrency group on the pull request and set cancel-in-progre
ss for its pull request events
View Logs
convention violations found (ERROR lines above)./
convention violations found (ERROR lines above).
View Logs
nightly cmux-tui resolve/nightly cmux-tui resolve View Logs
test_every_submodule_free_checkout_on_an_owned_runner_resets_submodules (main.Reuse
dWorkspaceSubmodules.test_every_submodule_free_checkout_on_an_owned_runner_resets_submo
dules)/
test_every_submodule_free_checkout_on_an_owned_runner_resets_submodules (main.Reuse
dWorkspaceSubmodules.test_every_submodule_free_checkout_on_an_owned_runner_resets_submo
dules)
View Logs

...and 7 more test failures. View all on Blacksmith: run 39722136798, run 39722136821

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (subagent, correctness first): SHIP at 23472d3

An independent reviewer read this head: one commit on feat-cmux-next 4ef18c2, the squash of #23713. What it confirmed:

  • Every switch over the sidebar machine status handles .paused and .pausedIdle.
    • They don't need attention, and the header tone is quiet, not danger.
    • The hover card tone is secondary.
    • The one default: branch falls through to the "Paused" text.
  • Paused never reads as failed. The paused check comes before the failure check, a failed resume still shows Failed with its reason, and header.cost from cmux NEXT: a Cloud machine's sidebar header shows its rate, running time, cost so far and the account's machine cap #23691 is still set.
  • Resume only retitles the existing Retry button, whose click goes through retryNow, which attaches and resumes.
  • The catalogs only add keys: 4 in Cloud and 2 in the Sidebar catalog, all 21 locales, base order kept.
  • The tests assert what they claim.

Notes that don't block:

  • An unreachable fallback header reads .connecting.
  • cloud.progress.machinePaused is now unused and was left in so this change only adds keys.

cmux-ci compile-check --app passed at this head (job 5366b2a43e58b97caf037162).

Reds, none from this PR (it changes only Cloud and sidebar Swift UI, two catalogs and a test):

  • Generated files are stale for fileExplorerRow and sidebar actions that this PR doesn't touch.
  • Convention errors in AttentionHighlightLook.swift and AgentPaneNeedsYouSetting.swift.
  • The workflow guard group fails on cmux-next-ios-kit.yml concurrency, plus job-structure, tier-routing and gallery-fixture checks.
  • release-notary.

The risk hold ("takes back #23713") is the planned follow-up, and the body now says so.

@teamleaderleo
teamleaderleo merged commit f878238 into feat-cmux-next Oct 22, 2026
@teamleaderleo
teamleaderleo deleted the cloud-idle-paused-ui branch October 22, 2026 05:11
@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 23472d33 Deployed Oct 22, 2026 by teamleaderleo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant