diff --git a/CHANGES.md b/CHANGES.md index 8db4391..21ac8ed 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1427,3 +1427,6 @@ 2026-07-06 17:49 [Write] C:\Users\nordm\pyramid - Kopie\docs\M2_STATE_MANAGEMENT.md 2026-07-06 17:49 [Edit] C:\Users\nordm\pyramid - Kopie\ROADMAP.md 2026-07-06 17:49 [Edit] C:\Users\nordm\pyramid - Kopie\PROGRESS.md +2026-07-06 17:51 [Edit] C:\Users\nordm\pyramid - Kopie\docs\M2_STATE_MANAGEMENT.md +2026-07-06 17:51 [Edit] C:\Users\nordm\pyramid - Kopie\docs\M2_STATE_MANAGEMENT.md +2026-07-06 17:51 [Edit] C:\Users\nordm\pyramid - Kopie\ROADMAP.md diff --git a/ROADMAP.md b/ROADMAP.md index 15951e3..5b54e21 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -201,8 +201,9 @@ lassen, ohne dass andere Module angefasst werden müssen. (2026-07-06): Riverpod ist schon dominant (~50 Provider); 4 Misch-Patterns identifiziert, Schrittfolge definiert. Schritte 1–2 (Call-Manager-UI-State, Voice-Provider-Umzug) GESPERRT bis Bernds - Klick-Test (PC_TESTPLAN Abschnitt 8); frei: MediaCache hinter - Provider. Push bleibt bewusst wie er ist (Isolate-Zwang). Toter + Klick-Test (PC_TESTPLAN Abschnitt 8); MediaCache-Umstellung + zurückgestellt (hängt an der Chat-Timeline, Korrektur im Doc). + Push bleibt bewusst wie er ist (Isolate-Zwang). Toter `incomingCallProvider` bereits entfernt (41bcaf2). - [x] Toten Code & Duplikate entfernen, Ordnerstruktur vereinheitlichen (PROGRESS.md 2026-07-03: `message_bubble.dart` tot entfernt, doppelte diff --git a/docs/M2_STATE_MANAGEMENT.md b/docs/M2_STATE_MANAGEMENT.md index 9616190..66f2810 100644 --- a/docs/M2_STATE_MANAGEMENT.md +++ b/docs/M2_STATE_MANAGEMENT.md @@ -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` 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`** 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`:** + 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).