From d6cf9469aa0462d1b8313cc85907176eee1214a2 Mon Sep 17 00:00:00 2001
From: Matthias Nott <mnott@mnsoft.org>
Date: Wed, 25 Mar 2026 17:10:54 +0100
Subject: [PATCH] fix: C3 debug logs, H1-H5 image cache, temp files, controller leak, validation, lifecycle

---
 lib/widgets/message_bubble.dart |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/lib/widgets/message_bubble.dart b/lib/widgets/message_bubble.dart
index 870ff55..4e8420c 100644
--- a/lib/widgets/message_bubble.dart
+++ b/lib/widgets/message_bubble.dart
@@ -270,13 +270,17 @@
       return const Text('Image unavailable');
     }
 
-    // Cache decoded bytes to prevent flicker on rebuild
-    final bytes = _imageCache.putIfAbsent(message.id, () {
+    // Cache decoded bytes to prevent flicker on rebuild; evict oldest if over 50 entries
+    if (!_imageCache.containsKey(message.id)) {
+      if (_imageCache.length >= 50) {
+        _imageCache.remove(_imageCache.keys.first);
+      }
       final raw = message.imageBase64!;
-      return Uint8List.fromList(base64Decode(
+      _imageCache[message.id] = Uint8List.fromList(base64Decode(
         raw.contains(',') ? raw.split(',').last : raw,
       ));
-    });
+    }
+    final bytes = _imageCache[message.id]!;
 
     return Column(
       crossAxisAlignment: CrossAxisAlignment.start,

--
Gitblit v1.3.1