From 196befa6587142ef3782d6b493ed7fc477f1bcc4 Mon Sep 17 00:00:00 2001 From: iequidoo Date: Sun, 25 Jan 2026 03:50:47 -0300 Subject: [PATCH] feat: Add silent group changes messages as InNoticed, not InSeen This way they also can be processed by `markseen_msgs()` resulting in MDNs which improves multi-device synchronization and updates contacts' `last_seen`. I.e. leave it up to the UIs. --- src/chat/chat_tests.rs | 2 +- src/receive_imf.rs | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/chat/chat_tests.rs b/src/chat/chat_tests.rs index 2ef4230c7..4a0e483a3 100644 --- a/src/chat/chat_tests.rs +++ b/src/chat/chat_tests.rs @@ -746,7 +746,7 @@ async fn test_leave_group() -> Result<()> { assert_eq!(get_chat_contacts(&alice, alice_chat_id).await?.len(), 1); - assert_eq!(rcvd_leave_msg.state, MessageState::InSeen); + assert_eq!(rcvd_leave_msg.state, MessageState::InNoticed); alice.emit_event(EventType::Test); alice diff --git a/src/receive_imf.rs b/src/receive_imf.rs index f11526257..032ee7ffe 100644 --- a/src/receive_imf.rs +++ b/src/receive_imf.rs @@ -1853,14 +1853,11 @@ async fn add_parts( let state = if !mime_parser.incoming { MessageState::OutDelivered - } else if seen - || !mime_parser.mdn_reports.is_empty() - || chat_id_blocked == Blocked::Yes - || group_changes.silent + } else if seen || !mime_parser.mdn_reports.is_empty() || chat_id_blocked == Blocked::Yes // No check for `hidden` because only reactions are such and they should be `InFresh`. { MessageState::InSeen - } else if mime_parser.from.addr == STATISTICS_BOT_EMAIL { + } else if mime_parser.from.addr == STATISTICS_BOT_EMAIL || group_changes.silent { MessageState::InNoticed } else { MessageState::InFresh