docs: Fable-5-Review abgeschlossen und protokolliert (M0-Punkt abgehakt)
Review-Protokoll in PROGRESS.md nachgeholt (die Vorsession hattef9979e4und891f348gepusht, wurde aber vor dem Protokollieren abgebrochen) und den Review zu Ende geführt: (a) Splits unabhängig per Zeilen-Multiset verifiziert, (b) Soft-Logout-Guard gegen SDK-Quelle gegenverifiziert, (c) Lint-Fixes äquivalent (onReorderItem gegen Flutter-SDK geprüft), (d) ROADMAP-Haken stimmen mit dem Code überein. Nebenbefund: docs/ PROGRESS.md als Archiv markiert (Verwechslungsgefahr mit dem echten Protokoll im Root). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+90
@@ -13,6 +13,96 @@ Schritt (und beim Abbruch mitten im Schritt den Zwischenstand). Format:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Fable-5-Review (Qualitäts-Review aller Autopilot-Commits 25ed765..HEAD)
|
||||||
|
|
||||||
|
Bernds Auftrag (ROADMAP M0): alle bisherigen Sonnet-5-Commits kritisch und in
|
||||||
|
der Tiefe nachprüfen. Jeder Punkt hier wird abgehakt, sobald er geprüft ist –
|
||||||
|
**bereits abgehakte Punkte in künftigen Sessions NICHT erneut prüfen.**
|
||||||
|
|
||||||
|
Hinweis zur Historie: Eine frühere Fable-5-Session hatte den Review begonnen
|
||||||
|
und zwei Fix-Commits gepusht (f9979e4, 891f348), wurde aber VOR dem
|
||||||
|
Protokollieren abgebrochen – dieser Abschnitt holt das Protokoll nach und
|
||||||
|
schließt den Review ab.
|
||||||
|
|
||||||
|
- [x] **(a) Die 6 Gott-Datei-Aufteilungen fachlich geprüft – Ergebnis: korrekt,
|
||||||
|
1 Befund bereits gefixt (f9979e4).** Unabhängige Nachprüfung (nicht nur den
|
||||||
|
alten Blockvergleich wiederholt): eigener Zeilen-Multiset-Vergleich
|
||||||
|
(Code-Zeilen ohne Kommentare/Imports/part-Direktiven) Original vor dem Split
|
||||||
|
vs. heutiger Stand für alle 6 Bibliotheken → **keine Code-Zeile verloren,
|
||||||
|
keine hinzugekommen** (settings_modal 5055, message_group 2409, rooms_panel
|
||||||
|
2308, space_admin_dialog 2079, chat_view 1813, document_viewer 1543 Zeilen,
|
||||||
|
jeweils exakt identisch). Alle `part`-Direktiven == Dateien auf Platte,
|
||||||
|
alle Part-Dateien mit korrektem `part of`. Befund der Vorsession bestätigt:
|
||||||
|
Beim Split gingen 24 **Erklärkommentar-Blöcke** verloren (u. a. die
|
||||||
|
Selbst-Aussperr-Warnung über `updatePowerLevelsSafely`, HTML-Subset-Doku,
|
||||||
|
PDF-Cache-Doku) – mit f9979e4 an den richtigen Klassen wiederhergestellt
|
||||||
|
(Stichprobe geprüft: sitzt korrekt). `flutter analyze`: unverändert 1
|
||||||
|
bekannter Hinweis (`chat_provider.dart:42`).
|
||||||
|
- [x] **(b) Uta-Logout-/Push-Fix (63e4919, 9dc83f7) gegen das matrix-SDK 6.2.0
|
||||||
|
verifiziert – Analyse war richtig, aber unvollständig; Lücke mit 891f348
|
||||||
|
geschlossen (Vorsession), heute vollständig gegenverifiziert:**
|
||||||
|
- SDK-Quelle bestätigt (client.dart:2374 ff.): Ohne eigenen `onSoftLogout`-
|
||||||
|
Handler eskaliert JEDER fehlgeschlagene Token-Refresh (auch bloße
|
||||||
|
Netzwerkfehler) zu `logout()` + `clear()` → Session inkl. Krypto-Schlüssel
|
||||||
|
weg. Mit `refreshToken: true` (9dc83f7) wären Refreshes Routine geworden –
|
||||||
|
das Restrisiko wäre also GESTIEGEN. Der Guard (`soft_logout_guard.dart`,
|
||||||
|
891f348) ist die notwendige zweite Hälfte des Fixes.
|
||||||
|
- Guard-Code geprüft: wirft nie (alle Pfade gefangen; `AuthLog.write` fängt
|
||||||
|
intern selbst alles – wichtig, sonst würde ein Logging-Fehler im
|
||||||
|
catch-Pfad doch wieder `logout()` auslösen). SDK ruft bei nicht-werfendem
|
||||||
|
Handler nachweislich nie `logout()` auf.
|
||||||
|
- „Retry heilt das Token-Rotations-Race mit dem Push-Isolate"-Behauptung
|
||||||
|
gegen SDK-Quelle geprüft: stimmt – `refreshAccessToken()` liest den
|
||||||
|
Refresh-Token bei jedem Aufruf frisch per `database.getClient()` aus der
|
||||||
|
geteilten DB.
|
||||||
|
- Beide `Client(`-Konstruktionen der App (matrix_client.dart,
|
||||||
|
background_push.dart) haben den Guard – keine ungeschützte übrig.
|
||||||
|
- `isLoggedInProvider`-Änderung (softLoggedOut ≠ ausgeloggt) korrekt:
|
||||||
|
verhindert Login-Screen-Flackern bei Routine-Refresh; echtes `loggedOut`
|
||||||
|
führt weiterhin zum Login-Screen.
|
||||||
|
- **Dokumentiertes Restrisiko (kein Fix möglich/nötig):** Ein hartes
|
||||||
|
`M_UNKNOWN_TOKEN` OHNE `soft_logout`-Flag führt im SDK weiterhin direkt zu
|
||||||
|
`clear()`. Das ist ein echter serverseitiger Session-Widerruf (z. B.
|
||||||
|
Admin-Logout) – lokal nicht abwendbar; Schlüssel kommen dann übers
|
||||||
|
Key-Backup zurück. Kein stiller Fehlerpfad, sondern legitimer Server-Befehl.
|
||||||
|
- [x] **(c) analyze-/Lint-Fixes (9dc1175, 133a8ac, 99f10c5, 2395db5, 057ac1e,
|
||||||
|
401bd6a) auf Verhaltensänderungen geprüft – alle äquivalent, 1 Kleinigkeit
|
||||||
|
gefunden (bewusst belassen):**
|
||||||
|
- `onReorder` → `onReorderItem` (401bd6a): gegen Flutter-SDK-Quelle
|
||||||
|
verifiziert – der neue Callback korrigiert den Index intern, das entfernte
|
||||||
|
manuelle `newIdx--` ist korrekt; einzige Aufrufstelle migriert. Kein
|
||||||
|
Off-by-One beim Raum-Umsortieren.
|
||||||
|
- `Matrix4.translate/scale` → `translateByDouble/scaleByDouble` (PDF-Zoom):
|
||||||
|
mathematisch äquivalent (uniforme Skalierung, w=1).
|
||||||
|
- `withOpacity`→`withValues`, `activeColor`→`activeThumbColor`,
|
||||||
|
`cacheExtent`→`scrollCacheExtent`, `PublicRoomsChunk`→`PublishedRoomsChunk`,
|
||||||
|
print→debugPrint, `__`→`_`-Parameter, Curly-Braces: reine Renames/Syntax.
|
||||||
|
- Toter Code (9dc1175): entfernte Funktionen (`_showNotif`, `_fetchTitle`,
|
||||||
|
`_get`, `_applyNoiseSuppression`, `destructive`-Param, `_saved`-Feld) per
|
||||||
|
grep bestätigt nirgends referenziert.
|
||||||
|
- **Kleinigkeit:** In `mini_call_widget.dart` wurde das ungenutzte
|
||||||
|
`_hovered`-Feld nicht gelöscht, sondern verdrahtet (Hover-Farbe auf
|
||||||
|
Call-Buttons) – streng genommen eine Mini-Verhaltensänderung in einem
|
||||||
|
Lint-Commit. Offensichtlich die ursprünglich gemeinte Funktion des Feldes,
|
||||||
|
rein kosmetisch, kein Risiko → belassen, hier nur dokumentiert.
|
||||||
|
- [x] **(d) Abgehakte ROADMAP-Punkte gegen Code gegengeprüft – alle stimmen:**
|
||||||
|
`isKeyBackupMissing`-Warnung sitzt nach dem Settings-Split weiterhin in
|
||||||
|
beiden Logout-Pfaden (settings_about.dart, settings_shared.dart);
|
||||||
|
`refreshToken: true` in login_notifier.dart:84; Bootstrap-Flows
|
||||||
|
(`askUnlockSsss`, `_triggerBootstrap`) vorhanden; `features/calls/`-Leiche
|
||||||
|
existiert nicht; `docs/M2_MODULE_SCHNITT.md` vorhanden; `flutter analyze`
|
||||||
|
sauber (1 bekannter Hinweis). Nebenbefund gefixt: `docs/PROGRESS.md` war ein
|
||||||
|
eingefrorener Alt-Stand (2026-06-04) mit Verwechslungsgefahr zum echten
|
||||||
|
Protokoll im Root → Archiv-Banner eingefügt.
|
||||||
|
|
||||||
|
**Fazit:** Die Sonnet-5-Arbeit war handwerklich sauber; die zwei echten Lücken
|
||||||
|
(verlorene Kommentare, fehlender Soft-Logout-Guard) hatte die abgebrochene
|
||||||
|
Fable-5-Vorsession bereits gefixt – beide Fixes heute unabhängig verifiziert.
|
||||||
|
Alles weiterhin UNGETESTET (Pi) im Sinne von „nicht in echter UI gesehen";
|
||||||
|
der ausstehende PC-Praxistest (siehe Einträge unten) bleibt Pflicht.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 2026-07-03 – M2: Gott-Datei `document_viewer.dart` aufgeteilt (5 Dateien)
|
## 2026-07-03 – M2: Gott-Datei `document_viewer.dart` aufgeteilt (5 Dateien)
|
||||||
|
|
||||||
**Erledigt:** Vor dem Weiterarbeiten wie immer Arbeitszyklus durchlaufen
|
**Erledigt:** Vor dem Weiterarbeiten wie immer Arbeitszyklus durchlaufen
|
||||||
|
|||||||
+10
-10
@@ -15,16 +15,16 @@ Punkte abhaken (`[x]`), wenn erledigt UND in `PROGRESS.md` protokolliert.
|
|||||||
- [x] `lib/features/call/` vs. `lib/features/calls/` (leer?) klären – Leiche entfernen
|
- [x] `lib/features/call/` vs. `lib/features/calls/` (leer?) klären – Leiche entfernen
|
||||||
(geprüft: `calls/` existiert nicht mehr, nur `call/` mit den echten Dateien)
|
(geprüft: `calls/` existiert nicht mehr, nur `call/` mit den echten Dateien)
|
||||||
- [x] README.md durch echte Projektbeschreibung ersetzt (74d38fd)
|
- [x] README.md durch echte Projektbeschreibung ersetzt (74d38fd)
|
||||||
- [ ] **Fable-5-Qualitäts-Review aller bisherigen Autopilot-Commits (Bernds Wunsch, VOR allem anderen):**
|
- [x] **Fable-5-Qualitäts-Review aller bisherigen Autopilot-Commits (Bernds Wunsch, VOR allem anderen):**
|
||||||
Sämtliche Commits vom 2026-07-03 (25ed765..HEAD, gemacht von Sonnet 5) kritisch
|
ERLEDIGT – siehe Abschnitt „Fable-5-Review" oben in PROGRESS.md.
|
||||||
und in der Tiefe nachprüfen – nicht nur formal: (a) die 6 Gott-Datei-Aufteilungen
|
(a) alle 6 Gott-Datei-Aufteilungen unabhängig verifiziert (Zeilen-Multiset,
|
||||||
stichprobenartig fachlich lesen (stimmen `part of`-Bezüge, Sichtbarkeiten,
|
part-Bezüge): korrekt, verlorene Erklärkommentare waren mit f9979e4 schon
|
||||||
keine verlorenen Blöcke – über den automatisierten Blockvergleich hinaus),
|
wiederhergestellt; (b) Uta-Logout-/Push-Fix gegen matrix-SDK 6.2.0
|
||||||
(b) den Uta-Logout-/Push-Fix (63e4919, 9dc83f7) fachlich gegen das matrix-SDK
|
verifiziert: Analyse richtig, Lücke (SDK eskaliert Refresh-Fehler zu
|
||||||
verifizieren (ist die Ursachen-Analyse schlüssig? Nebenwirkungen?),
|
logout()+clear()) war mit 891f348 (onSoftLogout-Guard) geschlossen, Guard
|
||||||
(c) die analyze-/Lint-Fixes auf versehentliche Verhaltensänderungen prüfen,
|
heute gegenverifiziert; (c) Lint-Fixes verhaltensäquivalent (onReorderItem
|
||||||
(d) abgehakte ROADMAP-Punkte gegen PROGRESS.md und den Code gegenprüfen.
|
gegen Flutter-SDK geprüft, kein Off-by-One); (d) abgehakte Punkte stimmen
|
||||||
Befunde direkt fixen, alles in PROGRESS.md protokollieren.
|
mit dem Code überein. Alles weiterhin UNGETESTET (Pi) → PC-Praxistest bleibt.
|
||||||
|
|
||||||
- [x] **Uta-Random-Logout untersuchen:** UNGETESTET (Pi) – Ursache im matrix-SDK
|
- [x] **Uta-Random-Logout untersuchen:** UNGETESTET (Pi) – Ursache im matrix-SDK
|
||||||
gefunden + Fix committet (63e4919, 9dc83f7), siehe PROGRESS.md 2026-07-03.
|
gefunden + Fix committet (63e4919, 9dc83f7), siehe PROGRESS.md 2026-07-03.
|
||||||
|
|||||||
+4
-2
@@ -1,6 +1,8 @@
|
|||||||
# Pyramid – Fortschritt & offene Punkte
|
# Pyramid – Fortschritt & offene Punkte (ARCHIV, Stand 2026-06-04)
|
||||||
|
|
||||||
Stand: 2026-06-04
|
> **ACHTUNG:** Dies ist ein eingefrorener Alt-Stand von vor der neuen
|
||||||
|
> Arbeitsstruktur. Das aktuelle Arbeitsprotokoll liegt im Projekt-Root:
|
||||||
|
> `PROGRESS.md`. Diese Datei nur als historische Referenz lesen, nie pflegen.
|
||||||
|
|
||||||
## Erledigt
|
## Erledigt
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user