Skip to content

Move chats in the background with a live progress card - #235

Merged
danielehrhardt merged 1 commit into
mainfrom
feat/chat-move-progress
Oct 23, 2026
Merged

danielehrhardt merged 1 commit into
mainfrom
feat/chat-move-progress

Conversation

@danielehrhardt

Copy link
Copy Markdown
Contributor

On a slow connection moving a chat to another Mac froze the dialog with a spinner for a long time.

What changes

  • The move dialog closes as soon as you click Move. A card in the bottom-right corner shows the move instead, and you can keep using Godmode.
  • The card shows each step: checking the chat on the other computer, copying the conversation (MB of total, percent, speed, time left), sending, saving, continuing. A hide button closes the card; the move keeps going and a "Moved to ..." toast still shows at the end.
  • Server: new chat.move event (packages/core/src/remote/chatMoves.ts), sent at most 4 times a second. Windows opened during a move get it in the welcome events.
  • The runner reports the handover size first (GET /api/link/conversations/:id/handover/size), and the controller reads the bytes received so far from the link channel. Older runners without the size route show the MB copied and an indeterminate bar.
  • The handover download and the push to another computer now time out after 15 minutes (was 2 and 3), so a big session on a slow link no longer fails while it is still making progress.
  • The Move button shows "Moving" while that chat is already moving.

Tests

  • pnpm -r typecheck passes
  • New packages/core/test/chat-moves.test.ts (steps, bytes, throttling, failed moves)
  • cloud-scope, devices-e2e, remote-handover, remote-link tests pass (53/53)

The move dialog closes right away and a card in the corner shows each step,
the bytes of the session copy with percent, speed and time left, so a slow
connection no longer freezes the dialog. The runner reports the handover size
up front, and the handover and push timeouts allow 15 minutes.
@danielehrhardt
danielehrhardt merged commit 7d8170a into main Oct 23, 2026
8 checks passed
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.

1 participant