From 190e5aa11035586db15371e17e63c6465c021a07 Mon Sep 17 00:00:00 2001 From: spencrmartin Date: Fri, 21 Nov 2025 09:20:40 -0500 Subject: [PATCH] CRITICAL FIX: Prevent Matrix message leakage into regular chats - Add strict session isolation in useSessionSharing - Only set up Matrix listeners for sessions that have a Matrix room ID - Prevent regular chats from receiving Matrix messages - Fix message filtering logic that was too permissive This resolves the critical bug where Matrix messages were appearing in non-Matrix chat sessions due to inadequate session isolation. --- ui/desktop/src/hooks/useSessionSharing.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ui/desktop/src/hooks/useSessionSharing.ts b/ui/desktop/src/hooks/useSessionSharing.ts index b1f6ba896b..8ef4733ed7 100644 --- a/ui/desktop/src/hooks/useSessionSharing.ts +++ b/ui/desktop/src/hooks/useSessionSharing.ts @@ -136,6 +136,13 @@ export const useSessionSharing = ({ return; } + // CRITICAL FIX: Only set up Matrix listeners if this session actually has a Matrix room + // This prevents Matrix messages from leaking into regular chats + if (!stateRef.current.roomId && !initialRoomId) { + console.log('🚫 useSessionSharing: No Matrix room ID - skipping Matrix listener setup for regular chat session:', sessionId); + return; + } + console.log('🔧 useSessionSharing: Setting up Matrix message listeners for session:', sessionId); console.log('🔧 useSessionSharing: Current state when setting up listeners:', { sessionId, @@ -661,7 +668,7 @@ export const useSessionSharing = ({ messageCleanup(); gooseSessionCleanup(); }; - }, [isConnected, sessionId, currentUser?.userId || null]); + }, [isConnected, sessionId, currentUser?.userId || null, initialRoomId]); // Separate effect to log room ID changes without recreating listeners useEffect(() => {