From 45c33f8cd35d4fe7679973f573fd6ecab9c2dd32 Mon Sep 17 00:00:00 2001
From: Matthias Nott <mnott@mnsoft.org>
Date: Sun, 22 Mar 2026 19:57:18 +0100
Subject: [PATCH] fix: await cross-session store before toast for voice and text

---
 lib/screens/chat_screen.dart |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/screens/chat_screen.dart b/lib/screens/chat_screen.dart
index 7741463..0c302f5 100644
--- a/lib/screens/chat_screen.dart
+++ b/lib/screens/chat_screen.dart
@@ -267,7 +267,7 @@
     }
   }
 
-  void _handleIncomingMessage(Map<String, dynamic> msg) {
+  Future<void> _handleIncomingMessage(Map<String, dynamic> msg) async {
     final sessionId = msg['sessionId'] as String?;
     final content = msg['content'] as String? ??
         msg['text'] as String? ??
@@ -282,7 +282,7 @@
     final activeId = ref.read(activeSessionIdProvider);
     if (sessionId != null && sessionId != activeId) {
       // Store message for the other session so it's there when user switches
-      _storeForSession(sessionId, message);
+      await _storeForSession(sessionId, message);
       _incrementUnread(sessionId);
       final sessions = ref.read(sessionsProvider);
       final session = sessions.firstWhere(
@@ -347,7 +347,7 @@
 
     final activeId = ref.read(activeSessionIdProvider);
     if (sessionId != null && sessionId != activeId) {
-      _storeForSession(sessionId, storedMessage);
+      await _storeForSession(sessionId, storedMessage);
       _incrementUnread(sessionId);
       final sessions = ref.read(sessionsProvider);
       final session = sessions.firstWhere(

--
Gitblit v1.3.1