docs: State-Management-Doc korrigiert - MediaCache-Umstellung ist NICHT risikoarm (Chat-Timeline haengt dran), zurueckgestellt

Der erste Befund beruhte auf einem durch head-limit abgeschnittenen grep;
message_media.dart (am wenigsten geprueft laut PC_TESTPLAN 3) nutzt den
Cache ebenfalls, inkl. statischem Wrapper ohne ref-Zugang.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Bernd Steckmeister
2026-07-06 17:52:09 +02:00
parent 6b0ae21f2b
commit 3300a44c4a
3 changed files with 20 additions and 8 deletions
+14 -6
View File
@@ -36,9 +36,14 @@ Gefundene Misch-Patterns, nach Gewicht:
Mini-Call-Widget gesetzt/gelesen und gehören fachlich ins
`voice_channel`-Modul (Join-Zustand + Presence sind Modulsache).
3. **`MediaCache.instance`** (`core/media_cache.dart:19`): reines
Singleton, direkt von `widgets/mxc_image.dart` benutzt. Kein
UI-Zustand, nur Cache geringer Schaden, leicht hinter einen
`Provider<MediaCache>` zu legen.
Singleton, kein UI-Zustand, nur Cache. Nutzer sind `widgets/mxc_image.dart`
(7 Stellen, Widgets leicht umstellbar) UND
`features/chat/message/message_media.dart` (7 Stellen, darunter der
statische Wrapper `_DocBytesCache` für Dokument-Vorschauen, dessen
Aufrufer keinen `ref`-Zugang haben). Eine Umstellung müsste `ref`/die
Cache-Instanz durch die statischen Helfer der Chat-Timeline fädeln
und genau dieser Code (Download-/Entschlüsselungs-Fehlerpfade) ist
laut PC_TESTPLAN Abschnitt 3 der am wenigsten geprüfte Teil der App.
4. **Push/Notifications:** modul-globale Mutable-Zustände in
`core/notification_service.dart` (`_windowsNotifs`-Map, Plugin-Globals)
und direkte `SharedPreferences`-Zugriffe in `background_push.dart`/
@@ -75,9 +80,12 @@ Bereits erledigt im Zuge dieser Analyse: der seit dem Call-Piloten tote
`voiceParticipantsProvider` ins `voice_channel`-Modul umziehen**
(zusammen mit `kVoicePresenceType`). Mechanisch klein, aber
Call-Pfad-nah sinnvoll im selben Zug wie Schritt 1.
3. **[frei] `MediaCache` hinter `Provider<MediaCache>`** und die
`.instance`-Zugriffe in `mxc_image.dart` auf `ref` umstellen
risikoarm, jederzeit möglich, guter Lückenfüller.
3. **[ZURÜCKGESTELLT] `MediaCache` hinter `Provider<MediaCache>`:**
Erst als „risikoarm, jederzeit" eingestuft das stimmte NICHT
(Korrektur 2026-07-06, siehe Ist-Stand Punkt 3: auch die Chat-Timeline
hängt dran, inkl. statischer Helfer ohne `ref`). Gehört in den Zug des
`chat_timeline`-Moduls (Schnitt-Doc Punkt 9) bzw. frühestens nach dem
Klick-Test von PC_TESTPLAN Abschnitt 3 nicht als Lückenfüller.
4. **[kein Umbau] Push/Notifications:** bleibt wie es ist
(Isolate-Zwang); nur bei ohnehin anstehenden Push-Arbeiten die
Prefs-Zugriffe auf die `Prefs`-Fassade ziehen (Schnitt-Doc Punkt 6).