Skip to content

fix(app): show a move's progress instead of Try again while it runs - #375

Merged
iamnbutler merged 3 commits into
mainfrom
move-progress
Oct 15, 2026
Merged

iamnbutler merged 3 commits into
mainfrom
move-progress

Conversation

@iamnbutler

Copy link
Copy Markdown
Contributor

Fixes #373.

While a move started from the app is under way, the host's listing carries moving (where the channel is going), and the chat shows Moving to … with Send disabled and no Try again. When the move ends the chat re-watches on its own, including after a failed move that leaves the channel where it was; the failure's error and Try again stay in the move toast.

  • apps/host: the gateway tracks moves it is running and lists moving only for those, so a fence left by an interrupted move never shows progress forever. Listing.moving added to the host protocol.
  • apps/app: Conversation renders the move status in place of the error/retry, and the transcript placement includes a move under way so its end triggers a re-watch.

Smoke-tested with a source host on its own port and data dir, a local wrangler dev hosting service behind a proxy that delays transfers 4s, and headless Chromium driving the sidebar's Move to: the chat showed "Moving to 127.0.0.1:8792…" with no retry for the whole move, then the failure toast with Try again, and the chat reloaded by itself. A successful move couldn't be run locally (miniflare's storage adds a table the import refuses); its re-watch uses the same placement change as before. ace move from the CLI runs in its own process, so it doesn't report progress to apps (noted in lane memory).

Built in Ace

No — built with Claude Code outside Ace by an overnight issue watcher, because this Mac's Ace Canary is a participant in the running two-person study (#218); dogfooding gap tracked in #5.

The host lists `moving` for a channel whose move is under way through its gateway, and the chat
shows "Moving to …" with Send disabled and no retry until the move ends. A failed move's error
and Try again stay in its toast, and the chat re-watches on its own once the fence lifts.

Why: apps/host/src/gateway.ts#const moves | a listing reports a move only while one runs here; a fence an interrupted move left behind must not show progress forever
Why: apps/app/src/conversation.tsx#const transcript | the transcript placement includes a move under way, so a move that ends, even failed in place, re-watches the chat
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move: 'The channel is moving' offers Try again during a normal move

1 participant