carry of #28025: make the Cloud page work on the classic link

Merged
TE
7d ago
+743-10

Carry of https://github.com/manaflow-ai/cmux/pull/28025, preserving its commits and authorship.

Leo: "let's just get the cloud and its respective ui up to snuff".

The Cloud page uses the classic link's machine list and operations, fixing its permanent reconnect message while the CLI and sidebar already work. The adapter preserves Cloud availability policy and native delete confirmation, supplies observed machine updates while watched, and stops observation when the last watcher leaves. Unsupported operations retain explicit refusals.

Merged current feat-cmux-next. Risk is contained to the Cloud page on the classic link. CloudClassicPageTests, CloudPaneTests and PageProviderTests need fresh fleet validation and an independent review at this carry's exact head.

No capture: no new visual layout; this carry restores the existing page's data path. The original PR documents the disconnected before state and its previous fleet test evidence; a fresh signed-in Cloud capture is not available on this lane.

Agent session: agent session


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


Summary by cubic

Makes the Cloud page work on the classic link, where it previously stayed on "Cloud is not available until cmux reconnects." with a Retry that could never succeed. On that link the app server's credential relay is never registered, so the page now reads the sign-in state and /api/vm list the CLI and sidebar already use.

  • Start, pause, rename, and delete run the classic calls; delete stays person-only after native confirmation.
  • Unsupported operations keep explicit refusals, and while Cloud is unavailable the page shows the reason and lists no machines.
  • While a watcher is active, a registry observation feeds machine changes to the watch stream and stops when the last watcher leaves.
  • The plan response reads the machine cap and memory size options from account entitlements.

Risk is contained to the Cloud page on the classic link. The affected tests (CloudClassicPageTests, CloudPaneTests, PageProviderTests) need fresh fleet validation at this head.