From 4c7990ed5b0806b80879c875ac507b45df443ae6 Mon Sep 17 00:00:00 2001
From: Matthias Nott <mnott@mnsoft.org>
Date: Tue, 24 Mar 2026 08:50:49 +0100
Subject: [PATCH] fix: per-session typing indicator - all typing clears check sessionId

---
 lib/screens/chat_screen.dart |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/lib/screens/chat_screen.dart b/lib/screens/chat_screen.dart
index c649f2b..0423ec9 100644
--- a/lib/screens/chat_screen.dart
+++ b/lib/screens/chat_screen.dart
@@ -223,7 +223,10 @@
           ref.read(isTypingProvider.notifier).state = typing;
         }
       case 'typing_end':
-        ref.read(isTypingProvider.notifier).state = false;
+        final endSession = msg['sessionId'] as String?;
+        if (endSession == null || endSession == ref.read(activeSessionIdProvider)) {
+          ref.read(isTypingProvider.notifier).state = false;
+        }
       case 'screenshot':
         ref.read(latestScreenshotProvider.notifier).state =
             msg['data'] as String? ?? msg['imageBase64'] as String?;
@@ -533,7 +536,10 @@
 
       // Only add to chat if the Screen button explicitly requested it
       if (!_screenshotForChat) {
-        ref.read(isTypingProvider.notifier).state = false;
+        final activeId = ref.read(activeSessionIdProvider);
+        if (sessionId == null || sessionId == activeId) {
+          ref.read(isTypingProvider.notifier).state = false;
+        }
         return;
       }
       _screenshotForChat = false;

--
Gitblit v1.3.1