Repository navigation
feat(host): move a hosted channel straight to a cloud workspace - #522
Merged
Merged
Conversation
A hosted channel whose workspace is this host now offers Move to cloud workspace. The move freezes and exports it at its hosting service, imports it into the compute service, and activates it there, never going through local storage. A failure before activation thaws the source. Listings also stop failing while a channel moves to a cloud workspace, since its fence's target is not a URL. Why: apps/host/src/move.ts#function toCompute | a hosted source is frozen and exported at its service, never read from the parked local store, and any failure before activation thaws it Why: apps/host/src/gateway.ts#function local | a move's fence names "local", "compute", or a service URL; only a URL may be parsed as one
iamnbutler
force-pushed
the
hosted-compute
branch
from
October 19, 2026 21:14
18b634c to
485750a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #499
A hosted channel whose workspace is this host now offers Move to → cloud workspace (and
ace move <channel> --compute) whenever Cloud compute is available for its project.Approach: a direct transfer, not a local round trip. Both ends already speak the transfer protocol, so the hosted case only changes where the snapshot comes from.
toComputefreezes and exports the channel at its hosting service, exactly as a move back to this host does (exportHosted, now shared withtoLocal), then imports it into the compute service and activates it there, as for a local channel. Nothing is written to local storage. Chaining local → cloud would need two fences, two transfers, and an extra failure state between them, so it isn't simpler.hostedswitches to the compute service withcompute, so this host's workspace link to the old service closes.Also fixed: while any channel moved to a cloud workspace, the listing called
new URL("compute")on the fence's target and threw, so listings broke for the whole move. The listing now reports the destination as "cloud workspace".Smoke test (separate
ACE_HOMEwithace serve --loopbackfrom this branch, the team's deployed channel and compute services, Claude Opus): created a hosted channel in iamnbutler/toddler-game-center, had its agent start andlane pusha lane, sawmove-targetsoffer this host and cloud workspace, then moved it. The listing showedmoving: "cloud workspace", and the move finished in about 13 s. In the cloud workspace, the agent recalled the earlier chat and found the lane's commit at its old path. I then deleted the channel and its workspace. Not exercised: the thaw after a failed import or activation.Built in Ace
No — Claude Code subagent outside Ace, run by the lead during a batch of fixes.