From 7be16a08d953cb76f6c3b08a68f62b9637693f74 Mon Sep 17 00:00:00 2001 From: automated-signal <37887102+automated-signal@users.noreply.github.com> Date: Thu, 5 Mar 2026 14:03:37 -0600 Subject: [PATCH] Fix sync message serialization Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com> --- ts/textsecure/SendMessage.preload.ts | 40 +++++++++++++++++++++------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/ts/textsecure/SendMessage.preload.ts b/ts/textsecure/SendMessage.preload.ts index 40b4d5c553..597bd4d4e4 100644 --- a/ts/textsecure/SendMessage.preload.ts +++ b/ts/textsecure/SendMessage.preload.ts @@ -1948,11 +1948,22 @@ export class MessageSender { const syncMessage = MessageSender.createSyncMessage(); syncMessage.read = []; - for (let i = 0; i < reads.length; i += 1) { - const proto = new Proto.SyncMessage.Read({ - ...reads[i], - timestamp: Long.fromNumber(reads[i].timestamp), - }); + for (const r of reads) { + const proto = new Proto.SyncMessage.Read( + isProtoBinaryEncodingEnabled() + ? { + senderAci: null, + senderAciBinary: r.senderAci + ? toAciObject(r.senderAci).getRawUuidBytes() + : null, + timestamp: Long.fromNumber(r.timestamp), + } + : { + senderAci: r.senderAci, + senderAciBinary: null, + timestamp: Long.fromNumber(r.timestamp), + } + ); syncMessage.read.push(proto); } @@ -1982,10 +1993,21 @@ export class MessageSender { const syncMessage = MessageSender.createSyncMessage(); syncMessage.viewed = views.map( view => - new Proto.SyncMessage.Viewed({ - ...view, - timestamp: Long.fromNumber(view.timestamp), - }) + new Proto.SyncMessage.Viewed( + isProtoBinaryEncodingEnabled() + ? { + senderAci: null, + senderAciBinary: view.senderAci + ? toAciObject(view.senderAci).getRawUuidBytes() + : null, + timestamp: Long.fromNumber(view.timestamp), + } + : { + senderAci: view.senderAci, + senderAciBinary: null, + timestamp: Long.fromNumber(view.timestamp), + } + ) ); const contentMessage = new Proto.Content(); contentMessage.syncMessage = syncMessage;