From 664fa9530ec33448c5df1c92d8bbfd5859674286 Mon Sep 17 00:00:00 2001 From: iamnbutler Date: Mon, 19 Oct 2026 14:25:49 -0400 Subject: [PATCH 1/3] fix(host): the app waits for a moved channel's cloud workspace to start before opening its chat Why: apps/host/src/gateway.ts#function handle | a move to a cloud workspace ends by starting it, so the listing must report computing for the whole move or the app opens the chat while the service refuses it and never retries --- apps/host/src/gateway.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/host/src/gateway.ts b/apps/host/src/gateway.ts index 13ade3fc..f68e9a15 100644 --- a/apps/host/src/gateway.ts +++ b/apps/host/src/gateway.ts @@ -585,7 +585,11 @@ async function handle( const first = !moves.has(request.channel); moves.add(request.channel); try { - await move(request.channel, request.target, (waiting) => send({ id, waiting })); + const run = () => move(request.channel, request.target, (waiting) => send({ id, waiting })); + // A move to a cloud workspace ends by starting it, which the app must wait out like Run in + // cloud before it opens the chat. + if (request.target === "compute") await lifecycle(request.channel, "starting", run); + else await run(); } finally { if (first) moves.delete(request.channel); // A failed move lifts its fence, which listings and reopened chats must see. From 343d09c0f1ca35916fe653324cce38e211db61bb Mon Sep 17 00:00:00 2001 From: iamnbutler Date: Mon, 19 Oct 2026 14:26:02 -0400 Subject: [PATCH 2/3] chore: confirm lane notes --- ...4YVZ6KGNQ7MFS1RP81MQCE0-a-hosted-channel-s-location.md | 6 +++--- ...Z2BCKRNHVMYEMC0KH3Q6BN-a-hosted-channel-must-be-rea.md | 6 +++--- ...5APK9YCQH467YNMKAC8BT5B-a-move-to-a-cloud-workspace.md | 8 ++++++++ 3 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 .lane/memory/apps/host/src/gateway.ts/01M5APK9YCQH467YNMKAC8BT5B-a-move-to-a-cloud-workspace.md diff --git a/.lane/memory/apps/host/src/gateway.ts/01M4YVZ6KGNQ7MFS1RP81MQCE0-a-hosted-channel-s-location.md b/.lane/memory/apps/host/src/gateway.ts/01M4YVZ6KGNQ7MFS1RP81MQCE0-a-hosted-channel-s-location.md index 0eb4e3c3..daefd1f8 100644 --- a/.lane/memory/apps/host/src/gateway.ts/01M4YVZ6KGNQ7MFS1RP81MQCE0-a-hosted-channel-s-location.md +++ b/.lane/memory/apps/host/src/gateway.ts/01M4YVZ6KGNQ7MFS1RP81MQCE0-a-hosted-channel-s-location.md @@ -4,9 +4,9 @@ anchor: function handle created: 2026-10-15T04:08:49Z norm: '1' sig: e597b5fbc8e664ce -body_hash: aae4da1d5b13a0a7 -raw_hash: 887a83004e69e816 -vouched: 2026-10-19T17:59:13Z +body_hash: ef8527c95dcbf51a +raw_hash: 3d4e766de43b3348 +vouched: 2026-10-19T18:26:01Z lines: 266-519 --- diff --git a/.lane/memory/apps/host/src/gateway.ts/01M4Z2BCKRNHVMYEMC0KH3Q6BN-a-hosted-channel-must-be-rea.md b/.lane/memory/apps/host/src/gateway.ts/01M4Z2BCKRNHVMYEMC0KH3Q6BN-a-hosted-channel-must-be-rea.md index f4bc996b..676b95f5 100644 --- a/.lane/memory/apps/host/src/gateway.ts/01M4Z2BCKRNHVMYEMC0KH3Q6BN-a-hosted-channel-must-be-rea.md +++ b/.lane/memory/apps/host/src/gateway.ts/01M4Z2BCKRNHVMYEMC0KH3Q6BN-a-hosted-channel-must-be-rea.md @@ -4,9 +4,9 @@ anchor: function handle created: 2026-10-15T06:00:20Z norm: '1' sig: e597b5fbc8e664ce -body_hash: aae4da1d5b13a0a7 -raw_hash: 887a83004e69e816 -vouched: 2026-10-19T17:59:13Z +body_hash: ef8527c95dcbf51a +raw_hash: 3d4e766de43b3348 +vouched: 2026-10-19T18:26:02Z lines: 281-561 --- diff --git a/.lane/memory/apps/host/src/gateway.ts/01M5APK9YCQH467YNMKAC8BT5B-a-move-to-a-cloud-workspace.md b/.lane/memory/apps/host/src/gateway.ts/01M5APK9YCQH467YNMKAC8BT5B-a-move-to-a-cloud-workspace.md new file mode 100644 index 00000000..1bb05465 --- /dev/null +++ b/.lane/memory/apps/host/src/gateway.ts/01M5APK9YCQH467YNMKAC8BT5B-a-move-to-a-cloud-workspace.md @@ -0,0 +1,8 @@ +--- +id: 01M5APK9YCQH467YNMKAC8BT5B +anchor: function handle +created: 2026-10-19T18:25:49Z +norm: '1' +--- + +a move to a cloud workspace ends by starting it, so the listing must report computing for the whole move or the app opens the chat while the service refuses it and never retries From e8036940928da9b8c59fd362732b0ec7014a00fe Mon Sep 17 00:00:00 2001 From: iamnbutler Date: Mon, 19 Oct 2026 14:26:02 -0400 Subject: [PATCH 3/3] lane: sync move-starting memory --- .../01M5APK9YCQH467YNMKAC8BT5B-a-move-to-a-cloud-workspace.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.lane/memory/apps/host/src/gateway.ts/01M5APK9YCQH467YNMKAC8BT5B-a-move-to-a-cloud-workspace.md b/.lane/memory/apps/host/src/gateway.ts/01M5APK9YCQH467YNMKAC8BT5B-a-move-to-a-cloud-workspace.md index 1bb05465..8660c874 100644 --- a/.lane/memory/apps/host/src/gateway.ts/01M5APK9YCQH467YNMKAC8BT5B-a-move-to-a-cloud-workspace.md +++ b/.lane/memory/apps/host/src/gateway.ts/01M5APK9YCQH467YNMKAC8BT5B-a-move-to-a-cloud-workspace.md @@ -3,6 +3,10 @@ id: 01M5APK9YCQH467YNMKAC8BT5B anchor: function handle created: 2026-10-19T18:25:49Z norm: '1' +sig: e597b5fbc8e664ce +body_hash: ef8527c95dcbf51a +raw_hash: 3d4e766de43b3348 +lines: 379-692 --- a move to a cloud workspace ends by starting it, so the listing must report computing for the whole move or the app opens the chat while the service refuses it and never retries