docs: Fable-5-Review um Nachzügler-Punkte (e-g) ergänzt

Tests 99cde9a, Doku-Commits 16561bb/566938f und Autopilot-Konto-Wechsel
bfe5876 kritisch geprüft: keine Fehler, alle Behauptungen gegen Code/SDK
verifiziert. Damit sind ALLE als erledigt markierten Punkte reviewt.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Bernd Steckmeister
2026-07-03 22:49:00 +02:00
parent 566938f004
commit eebf8ae7dd
+33
View File
@@ -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.