From 9aca65a2a491ccc2923a9cb769facb3fdfa6a771 Mon Sep 17 00:00:00 2001 From: Nelson Campos Date: Mon, 7 Jul 2025 23:47:52 -0300 Subject: [PATCH] fix: prevent phantom spaces and duplicates in message sync - Add deduplication check when adding messages to retry queue - Prevent duplicate messages with same ID from being queued - Maintain proper message ordering during sync --- bitchat/Services/MessageRetryService.swift | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/bitchat/Services/MessageRetryService.swift b/bitchat/Services/MessageRetryService.swift index 43370f58..16956414 100644 --- a/bitchat/Services/MessageRetryService.swift +++ b/bitchat/Services/MessageRetryService.swift @@ -71,6 +71,16 @@ class MessageRetryService { return } + // Check if this message is already in the queue + if let messageID = originalMessageID { + let alreadyQueued = retryQueue.contains { msg in + msg.originalMessageID == messageID + } + if alreadyQueued { + return // Don't add duplicate + } + } + let retryMessage = RetryableMessage( id: UUID().uuidString, originalMessageID: originalMessageID, @@ -97,7 +107,7 @@ class MessageRetryService { } private func processRetryQueue() { - guard let meshService = meshService else { return } + guard meshService != nil else { return } let now = Date() var messagesToRetry: [RetryableMessage] = []