diff --git a/PROGRESS.md b/PROGRESS.md index 15e57af..1bf7bf0 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -175,6 +175,39 @@ schließt den Review ab. eingefrorener Alt-Stand (2026-06-04) mit Verwechslungsgefahr zum echten Protokoll im Root → Archiv-Banner eingefügt. +- [x] **(e) Unit-Tests (99cde9a) gegengelesen – korrekt, keine Änderung nötig.** + Beide Fake-Clients schlagen bei jedem nicht implementierten SDK-Aufruf laut + fehl (NoSuchMethodError) – ein versehentlicher `logout()`/`clear()`-Aufruf im + Guard würde sofort auffallen. `soft_logout_guard_test`: deckt Erfolg, + transienten Fehler (Retry), dauerhaften Fehler (genau 3 Versuche, kein Throw) + und `Error` (nicht nur `Exception`) ab – passt zum `catch (e)` im Guard, das + bewusst alles fängt. Dass die Tests grün sind, beweist nebenbei, dass + `AuthLog.write` ohne path_provider-Plattform (Testumgebung) sauber schluckt + statt zu werfen – genau die Eigenschaft, an der der Guard hängt. + `power_levels_safety_test`: alle 6 Fälle gegen den echten Code + (`space_admin_core.dart:10-56`) nachvollzogen, inkl. der wichtigen Kante + „explizites `events[m.room.power_levels]` schlägt `state_default`". + Einzige Anmerkung: die zwei Retry-Tests schlafen real 2s+4s (Suite ~14s) – + bewusst so gelassen, statt für Testbarkeit einen Delay-Parameter in den + heiligen Produktivpfad zu bohren. +- [x] **(f) Doku-Commits 16561bb/566938f (SQLCipher-Plan, PC-Testplan) gegen + Code verifiziert – Behauptungen stimmen:** Factory-Stellen exakt wie + dokumentiert (`matrix_client.dart:24` nativ Android/iOS, `:27` FFI Desktop; + `background_push.dart:188` nativ), `sqlcipher_flutter_libs ^0.6.8` + + `flutter_secure_storage ^10` in pubspec vorhanden/ungenutzt wie beschrieben, + Verifikations-Tabellenname `box_inbound_group_session` steht wirklich in + matrix-6.2.0 `matrix_sdk_database.dart:139`, beide Prozesse öffnen dieselbe + `pyramid.sqlite` mit WAL + busy_timeout 5000. PC-Testplan deckt alle in + PROGRESS verstreuten UNGETESTET-Punkte ab (stichprobenartig gegengeprüft). +- [x] **(g) Autopilot-Konto-Wechsel (bfe5876, dazu 73420fe) geprüft – kein + App-Code, funktional in Ordnung:** Wechsel-Logik (pyramid↔haupt, `JUST_SWITCHED` + verhindert Endlos-Ping-Pong, 20-min-Wartepause wenn beide Konten am Limit), + `CLAUDE_CONFIG_DIR` wird vor jeder Session neu gesetzt, Matrix-Token kommt aus + `~/gatus/.env` (nicht im Repo). Einzige Anmerkung (belassen): die + Limit-Erkennung greppt die GESAMTE Session-Ausgabe auf „usage limit" u. ä. – + zitiert eine Session diese englischen Phrasen wörtlich, gibt es einen + unnötigen (aber harmlosen) Konto-Wechsel. + **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.