From ef718bb869fcc4e1738014c5871a83e82816392f Mon Sep 17 00:00:00 2001 From: iequidoo Date: Thu, 26 Mar 2026 16:23:10 -0300 Subject: [PATCH] fix: When receiving MDN, mark all preceding messages as noticed, even having same timestamp (#7928) This fixes flaky JSON-RPC `test_multidevice_sync_seen`. --- src/receive_imf.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/receive_imf.rs b/src/receive_imf.rs index db5d4961e..37689f30a 100644 --- a/src/receive_imf.rs +++ b/src/receive_imf.rs @@ -1010,11 +1010,11 @@ UPDATE config SET value=? WHERE keyname='configured_addr' AND value!=?1 && msg.chat_visibility == ChatVisibility::Archived; updated_chats .entry(msg.chat_id) - .and_modify(|ts| *ts = cmp::max(*ts, msg.timestamp_sort)) - .or_insert(msg.timestamp_sort); + .and_modify(|pos| *pos = cmp::max(*pos, (msg.timestamp_sort, msg.id))) + .or_insert((msg.timestamp_sort, msg.id)); } } - for (chat_id, timestamp_sort) in updated_chats { + for (chat_id, (timestamp_sort, msg_id)) in updated_chats { context .sql .execute( @@ -1023,12 +1023,13 @@ UPDATE msgs SET state=? WHERE state=? AND hidden=0 AND chat_id=? AND - timestamp