From 1d818388683a7dfee0156268668a88f07a2f3d9d Mon Sep 17 00:00:00 2001 From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com> Date: Thu, 2 Apr 2026 11:33:59 +0200 Subject: [PATCH] feat(server): filter DM read states from ready payload for federated users --- packages/server/src/ws/handler.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/server/src/ws/handler.ts b/packages/server/src/ws/handler.ts index fe1b2226..b34f15f7 100644 --- a/packages/server/src/ws/handler.ts +++ b/packages/server/src/ws/handler.ts @@ -1335,10 +1335,12 @@ function buildReadyPayload(userId: string): { .where(eq(schema.readStates.userId, userId)) .all(); - const readStates: ReadState[] = readStateRows.map(rs => ({ - channelId: rs.channelId, - lastReadMessageId: rs.lastReadMessageId, - })); + const readStates: ReadState[] = readStateRows + .filter(rs => !isFederated || visibleChannelIdSet.has(rs.channelId)) + .map(rs => ({ + channelId: rs.channelId, + lastReadMessageId: rs.lastReadMessageId, + })); // Build user activities snapshot for all visible users // Auto-inject customStatus as a 'custom' activity for users with no ephemeral activities