From eb16d128f242fc4dfc8fa402fb4a7dc3519129f7 Mon Sep 17 00:00:00 2001 From: jack Date: Wed, 20 Aug 2025 11:37:47 +0200 Subject: [PATCH] BLE: avoid self-message drop warnings by pre-marking own public broadcasts in dedup and ignoring self-origin public packets --- bitchat/Services/BLEService.swift | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bitchat/Services/BLEService.swift b/bitchat/Services/BLEService.swift index dd0f4946..225ebbe7 100644 --- a/bitchat/Services/BLEService.swift +++ b/bitchat/Services/BLEService.swift @@ -529,6 +529,10 @@ final class BLEService: NSObject { senderID: self.myPeerID, payload: Data(content.utf8) ) + // Pre-mark our own broadcast as processed to avoid handling relayed self copy + let senderHex = packet.senderID.hexEncodedString() + let dedupID = "\(senderHex)-\(packet.timestamp)-\(packet.type)" + self.messageDeduplicator.markProcessed(dedupID) // Call synchronously since we're already on background queue self.broadcastPacket(packet) } @@ -1181,6 +1185,8 @@ final class BLEService: NSObject { // Mention parsing moved to ChatViewModel private func handleMessage(_ packet: BitchatPacket, from peerID: String) { + // Ignore self-origin public messages that may be seen again via relay + if peerID == myPeerID { return } // Enforce: only accept public messages from verified peers we know guard let info = peers[peerID], info.isVerifiedNickname else {