Cloud sidebar: remove the unsupported Increase Disk machine action

Merged
AU
2mo ago
+150-28

Summary

  • What changed? The Cloud sidebar's machine context menu no longer shows the "Increase Disk" submenu (64 / 128 / 256 GiB targets). The UI-only resizeDisk closure in MachineRowActions and its cmux vm resize launcher go with it, so no native affordance fires a disk resize.
  • Why? Disk resize is not a supported product capability end to end yet (#12156). A menu item that exists only in the sidebar, with no backend contract behind it, is a discoverable dead end.

Left in place on purpose:

  • VMClient.resizeDisk and the vm.resize socket verb (the backend/CLI path #12026 exercises). This PR touches no backend API.
  • Read-only CPU / memory / disk stats on machine rows.
  • New Machine's initial memory/disk profile.
  • Every other machine verb: Open Shell, New Workspace, Open Desktop, Open Full cmux-tui Client, Refresh, Rename, Copy IP Address, Status, Checkpoint, Fork, Delete, and Upgrade to Reconnect for expired free machines.

Trade-off, stated rather than absorbed: the verb is deleted instead of hidden behind a capability bit. A VMCapabilities.resizeDisk gate would have kept dead menu code alive behind a flag no backend sets, and this repo's rule is that a feature flag means a PostHog runtime flag. When disk resize ships end to end, the menu item can return alongside a backend-advertised capability, the way Checkpoint and Fork are gated today.

Localization audit: the three keys the removed code used (machines.menu.increaseDisk, machines.menu.increaseDiskTo, machines.operation.resizeDisk) were never added to Resources/Localizable.xcstrings and do not appear in web/messages/*.json or the docs, so nothing in any catalog changes. No new user-facing strings were introduced; the test's expected titles resolve through the same catalog keys the menu uses.

Testing

Two commits, per the regression policy: the first adds the failing test only, the second removes the affordance.

  • cmuxTests/CloudTreeMachineMenuTests.swift builds the real CloudTreeOutlineView.Coordinator + CloudTreeContainerView, applies a ready Base machine (paid plan, full capabilities, private address, a 32 GiB disk reading) and asks contextMenu(forRow:) for the menu AppKit would show. It pins the exact verb list, asserts no item carries a submenu, then fires Open Shell, Checkpoint, and Delete through NSApp.sendAction and checks each reached its closure.
  • Red run (test-only commit, test-e2e.yml on a hosted macOS runner, -only-testing:cmuxTests/CloudTreeMachineMenuTests): in progress, https://github.com/manaflow-ai/cmux/actions/runs/34225696231 (expected: fails on the "Increase Disk" item)
  • Green run (fix commit, same workflow and filter): in progress, https://github.com/manaflow-ai/cmux/actions/runs/34225880959 (expected: passes)
  • python3 scripts/normalize-pbxproj.py --check, ./scripts/check-pbxproj.sh, ./scripts/lint-pbxproj-test-wiring.sh pass (the new test file is wired into the cmuxTests target).
  • Tagged dev build: queued on the fleet behind the shared build lock; result to follow

Demo Video

  • Video URL or attachment: to follow once the tagged build runs (a machine row must exist on the dev account to right-click)

Review Trigger (Copy/Paste as PR comment)

@codex review
@coderabbitai review
@greptile-apps review
@cubic-dev-ai review

Checklist

  • I tested the change locally
  • I added or updated tests for behavior changes
  • I updated docs/changelog if needed
  • I requested bot reviews after my latest commit (copy/paste block above or equivalent)
  • All code review bot comments are resolved
  • All human review comments are resolved

Closes #12156

🤖 Generated with Claude Code

https://claude.ai/code/session_013BfSprZWdTSfqAyvZfvXok


Summary by cubic

Removes the unsupported "Increase Disk" submenu from the Cloud sidebar's machine context menu. The menu previously offered 64/128/256 GiB resize targets that fired cmux vm resize, but disk resize isn't a supported product capability yet, so the item was a dead end (#12156).

Left in place

  • VMClient.resizeDisk and the vm.resize socket verb, which the CLI/backend path uses.
  • Read-only disk stats and New Machine's initial disk profile.

Testing

  • Adds CloudTreeMachineMenuTests, which pins the exact verb list a ready machine offers and confirms Open Shell, Checkpoint, and Delete still reach their closures.
  • No localization entries change because the removed keys were never in any catalog.

Summary by CodeRabbit

  • Removed Features

    • Removed the Increase Disk option from cloud machine context menus.
    • Removed disk-resizing actions from the Cloud Machines panel.
  • Tests

    • Added coverage confirming supported machine actions remain available and functional.
    • Added verification that disk-resizing options no longer appear.