From 439668f7452c78c51b25787ebe00d1a4aa8076cc Mon Sep 17 00:00:00 2001 From: jack Date: Thu, 24 Jul 2025 14:58:21 +0200 Subject: [PATCH] Fix duplicate ChatViewModel disconnect messages - Prevent didDisconnectFromPeer delegate call when peer gracefully left - This prevents duplicate 'rick disconnected' messages in chat UI --- bitchat/Services/BluetoothMeshService.swift | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bitchat/Services/BluetoothMeshService.swift b/bitchat/Services/BluetoothMeshService.swift index 9b9bb0b3..34616c70 100644 --- a/bitchat/Services/BluetoothMeshService.swift +++ b/bitchat/Services/BluetoothMeshService.swift @@ -3376,9 +3376,11 @@ extension BluetoothMeshService: CBCentralManagerDelegate { // Reset handshake state to prevent stuck handshakes handshakeCoordinator.resetHandshakeState(for: peerID) - // Notify delegate immediately about disconnect - DispatchQueue.main.async { - self.delegate?.didDisconnectFromPeer(peerID) + // Notify delegate immediately about disconnect (unless peer gracefully left) + if !gracefullyLeftPeers.contains(peerID) { + DispatchQueue.main.async { + self.delegate?.didDisconnectFromPeer(peerID) + } } }