From eb7dff433c421307b32b56d670ee60865641842e Mon Sep 17 00:00:00 2001 From: zubiden <19638254+zubiden@users.noreply.github.com> Date: Fri, 19 Sep 2025 14:35:10 +0200 Subject: [PATCH] Message: Fix ungrouping on reaction (#6243) --- src/api/gramjs/apiBuilders/messages.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/api/gramjs/apiBuilders/messages.ts b/src/api/gramjs/apiBuilders/messages.ts index b4f21b072..1caeb1ea6 100644 --- a/src/api/gramjs/apiBuilders/messages.ts +++ b/src/api/gramjs/apiBuilders/messages.ts @@ -50,7 +50,7 @@ import { interpolateArray } from '../../../util/waveform'; import { buildApiCurrencyAmount, } from '../apiBuilders/payments'; -import { buildPeer } from '../gramjsBuilders'; +import { buildPeer, getEntityTypeById } from '../gramjsBuilders'; import { addDocumentToLocalDb, addPhotoToLocalDb, @@ -187,7 +187,11 @@ export function buildApiMessageWithChatId( chatId: string, mtpMessage: UniversalMessage, ): ApiMessage { - const fromId = mtpMessage.fromId ? getApiChatIdFromMtpPeer(mtpMessage.fromId) : undefined; + const isPrivateChat = getEntityTypeById(chatId) === 'user'; + // Server can return `fromId` for our own messages in private chats, but not for incoming ones + // This can break grouping logic, as we do not fill `fromId` for `UpdateShortMessage` case + const fromId = mtpMessage.fromId && !isPrivateChat + ? getApiChatIdFromMtpPeer(mtpMessage.fromId) : undefined; const isChatWithSelf = !fromId && chatId === currentUserId; const forwardInfo = mtpMessage.fwdFrom && buildApiMessageForwardInfo(mtpMessage.fwdFrom, isChatWithSelf);