From d9094fabe18e7d09015f92732e9bdc2dd9979f69 Mon Sep 17 00:00:00 2001 From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com> Date: Tue, 24 Mar 2026 22:00:28 +0100 Subject: [PATCH] feat(ws): re-push activities on new instance connections When a WS connection receives its ready event, push cached myActivities to that instance so federated users see activities immediately without waiting for the next debounce cycle. --- packages/web/src/hooks/useWebSocket.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/web/src/hooks/useWebSocket.ts b/packages/web/src/hooks/useWebSocket.ts index a709b0f8..202cce20 100644 --- a/packages/web/src/hooks/useWebSocket.ts +++ b/packages/web/src/hooks/useWebSocket.ts @@ -225,6 +225,16 @@ function handleEvent(origin: string, event: ServerEvent): void { }).catch(() => {}); } + // Re-push current activities to newly connected instances so their + // in-memory activity store is populated immediately (covers the case + // where a user starts a game, then a remote instance connects later). + { + const { myActivities, showActivity } = useActivityStore.getState(); + if (showActivity && myActivities && myActivities.length > 0) { + wsSend({ type: 'activity_update', activities: myActivities }, origin); + } + } + // Populate voice user statuses (mute/deafen/camera/screenshare) from server if (event.voiceUserStates) { for (const [uid, status] of Object.entries(event.voiceUserStates)) {