docs: Fable-5-Review um Punkte (h)-(j) ergänzt, Testplan auf 24 Tests
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1217,3 +1217,6 @@
|
|||||||
2026-07-03 23:18 [Edit] /home/steggi/pyramid/test/settings_prefs_test.dart
|
2026-07-03 23:18 [Edit] /home/steggi/pyramid/test/settings_prefs_test.dart
|
||||||
2026-07-03 23:19 [Edit] /home/steggi/pyramid/lib/core/settings_prefs.dart
|
2026-07-03 23:19 [Edit] /home/steggi/pyramid/lib/core/settings_prefs.dart
|
||||||
2026-07-03 23:20 [Edit] /home/steggi/pyramid/lib/core/settings_prefs.dart
|
2026-07-03 23:20 [Edit] /home/steggi/pyramid/lib/core/settings_prefs.dart
|
||||||
|
2026-07-03 23:21 [Edit] /home/steggi/pyramid/PROGRESS.md
|
||||||
|
2026-07-03 23:21 [Edit] /home/steggi/pyramid/docs/PC_TESTPLAN.md
|
||||||
|
2026-07-03 23:22 [Edit] /home/steggi/pyramid/PROGRESS.md
|
||||||
|
|||||||
+64
@@ -13,6 +13,40 @@ Schritt (und beim Abbruch mitten im Schritt den Zwischenstand). Format:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 2026-07-03 – Fable-5-Review (h)–(j): Test-/Doku-Commits geprüft, 1 echter Befund gefixt
|
||||||
|
|
||||||
|
**Erledigt:**
|
||||||
|
- **Review-Pass über die drei seit (g) dazugekommenen Commits** – als Punkte
|
||||||
|
(h)–(j) im Fable-5-Review-Abschnitt abgehakt (Details dort): AuthLog-Tests
|
||||||
|
e0ac5cb korrekt (h), PC-Testplan-Update 03b84e0 korrekt (j), und bei den
|
||||||
|
settings_prefs-Tests 7dfdbf1 (i) beim Gegenlesen des Produktivcodes ein
|
||||||
|
**echter Befund**: Lade-Race in `BoolPref`/`StringSetPref` –
|
||||||
|
`StringSetPref.add()` vor abgeschlossenem `_load` konnte **bereits
|
||||||
|
persistierte Einträge löschen** (Read-Modify-Write auf ungeladenem State;
|
||||||
|
per Regressionstest am alten Code bewiesen, dann gefixt: 7b90f20).
|
||||||
|
Vorgehen: Test zuerst geschrieben, Fehlschlag am alten Code gesehen, dann
|
||||||
|
Fix, dann alles grün – kein blinder Fix.
|
||||||
|
- Unabhängige Verifikation: `flutter test` jetzt **24/24 grün auf dem Pi**
|
||||||
|
(2 neue Lade-Race-Tests), `flutter analyze` unverändert 1 bekannter Hinweis
|
||||||
|
(`chat_provider.dart:42`). PC-Testplan Schritt 0 auf 24 Tests nachgezogen.
|
||||||
|
|
||||||
|
**Offen/Nächster Schritt:** Unverändert blockiert – alle offenen ROADMAP-Punkte
|
||||||
|
(M0 SQLCipher, M1 Härtetest, M2 Call-Schicht/State-Management) brauchen PC/GUI
|
||||||
|
oder Bernds Antworten (Call-Pilot, SQLCipher-Priorität), siehe
|
||||||
|
`docs/PC_TESTPLAN.md` und „Fragen an Bernd" weiter unten. Der Lade-Race-Fix
|
||||||
|
ist headless voll getestet, gehört aber der Vollständigkeit halber mit in den
|
||||||
|
nächsten PC-Klickdurchlauf (Einstellungs-Toggles, Space-Beitritt).
|
||||||
|
|
||||||
|
**Stolperfallen:** Der BoolPref-Teil des Race ist im Test-Mock NICHT
|
||||||
|
reproduzierbar (Microtask-Reihenfolge dort zufällig gutartig: `set()`
|
||||||
|
persistiert vor dem `_load`-Read) – nur der StringSetPref-Teil schlug real
|
||||||
|
fehl. Lehre: Bei Race-Befunden nicht vom „Test wird schon rot"-Reflex leiten
|
||||||
|
lassen, sondern die konkrete Microtask-Reihenfolge durchdenken; ein Guard kann
|
||||||
|
richtig sein, auch wenn der Test ihn in dieser Umgebung nicht erzwingen kann
|
||||||
|
(dokumentiert im Review-Punkt (i)).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 2026-07-03 – Review-Nachzügler abgeschlossen + AuthLog-Regressionstests
|
## 2026-07-03 – Review-Nachzügler abgeschlossen + AuthLog-Regressionstests
|
||||||
|
|
||||||
**Erledigt:**
|
**Erledigt:**
|
||||||
@@ -259,6 +293,36 @@ schließt den Review ab.
|
|||||||
zitiert eine Session diese englischen Phrasen wörtlich, gibt es einen
|
zitiert eine Session diese englischen Phrasen wörtlich, gibt es einen
|
||||||
unnötigen (aber harmlosen) Konto-Wechsel.
|
unnötigen (aber harmlosen) Konto-Wechsel.
|
||||||
|
|
||||||
|
- [x] **(h) AuthLog-Tests (e0ac5cb) geprüft – korrekt, keine Änderung nötig.**
|
||||||
|
Alle 4 Tests gegen `core/auth_log.dart` nachvollzogen: Der Kaputt-Plattform-
|
||||||
|
Test läuft korrekt VOR den Tests mit funktionierender Plattform (das statische
|
||||||
|
`_file`-Handle wird beim Throw nie befüllt, daher kein vergifteter Cache);
|
||||||
|
Kappungs-Test rechnet richtig (521. Zeile triggert Kappung auf 500, „Hallo
|
||||||
|
Log" aus dem Vortest fliegt raus). pubspec-Ergänzung sauber (offizielles
|
||||||
|
`path_provider_platform_interface`, war transitiv im Lockfile). Unabhängig
|
||||||
|
verifiziert: `flutter test` 22/22 grün, `flutter analyze` 1 bekannter
|
||||||
|
Hinweis. Anmerkung (belassen): Die Kappung schreibt die Datei nicht-atomar
|
||||||
|
neu und ist nicht gegen parallele Schreiber aus dem Push-Isolate gesperrt –
|
||||||
|
für ein reines Diagnose-Log akzeptabel, kein Fix nötig.
|
||||||
|
- [x] **(i) settings_prefs-Tests (7dfdbf1) geprüft – Tests korrekt, aber beim
|
||||||
|
Gegenlesen des Produktivcodes 1 echter Befund gefunden und gefixt (7b90f20):
|
||||||
|
Lade-Race in `BoolPref`/`StringSetPref`.** `StringSetPref.add/remove` machten
|
||||||
|
Read-Modify-Write auf möglicherweise noch ungeladenem State – ein `add()`
|
||||||
|
direkt nach Erstellung persistierte nur den neuen Eintrag und LÖSCHTE alle
|
||||||
|
bereits gespeicherten (per neuem Regressionstest am alten Code bewiesen:
|
||||||
|
`['!a:hs']` im Store, `add('!b:hs')` → Store enthielt nur noch `['!b:hs']`).
|
||||||
|
Fix: `add`/`remove` warten jetzt auf `_loaded`. `BoolPref` zusätzlich mit
|
||||||
|
`_userSet`-Guard, damit ein spät landender persistierter Wert nie eine schon
|
||||||
|
getätigte Nutzeraktion zurücküberschreibt (die Microtask-Reihenfolge ist
|
||||||
|
plattform-/versionsabhängig – im Test-Mock zufällig gutartig). Einordnung:
|
||||||
|
in der heutigen App kaum treffbar (die Provider werden beim App-Start geladen,
|
||||||
|
lange bevor jemand klickt – deshalb nie aufgefallen), aber die Fassade wird
|
||||||
|
laut `docs/M2_MODULE_SCHNITT.md` zur Pflicht-Schnittstelle für neue, ggf.
|
||||||
|
früh laufende Aufrufer. 2 neue Regressionstests, alle 24 grün auf dem Pi.
|
||||||
|
- [x] **(j) PC-Testplan-Update (03b84e0) geprüft – stimmt.** Teststand „22
|
||||||
|
Tests" war korrekt (durch (i) jetzt 24 – im Testplan nachgezogen, siehe
|
||||||
|
Eintrag oben).
|
||||||
|
|
||||||
**Fazit:** Die Sonnet-5-Arbeit war handwerklich sauber; die zwei echten Lücken
|
**Fazit:** Die Sonnet-5-Arbeit war handwerklich sauber; die zwei echten Lücken
|
||||||
(verlorene Kommentare, fehlender Soft-Logout-Guard) hatte die abgebrochene
|
(verlorene Kommentare, fehlender Soft-Logout-Guard) hatte die abgebrochene
|
||||||
Fable-5-Vorsession bereits gefixt – beide Fixes heute unabhängig verifiziert.
|
Fable-5-Vorsession bereits gefixt – beide Fixes heute unabhängig verifiziert.
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ Schnellster Weg: `flutter run -d windows`.
|
|||||||
|
|
||||||
- [ ] `flutter test` – die Regressionstests unter `test/` (Soft-Logout-Guard,
|
- [ ] `flutter test` – die Regressionstests unter `test/` (Soft-Logout-Guard,
|
||||||
Power-Levels-Schutz, AuthLog, Storage-Fassade `settings_prefs` –
|
Power-Levels-Schutz, AuthLog, Storage-Fassade `settings_prefs` –
|
||||||
Stand 2026-07-03: 22 Tests) müssen grün sein, bevor irgendetwas
|
Stand 2026-07-03: 24 Tests) müssen grün sein, bevor irgendetwas
|
||||||
anderes geprüft wird.
|
anderes geprüft wird.
|
||||||
|
|
||||||
## 1. Härtetest Login/Krypto (M1 – PFLICHT, zuerst!)
|
## 1. Härtetest Login/Krypto (M1 – PFLICHT, zuerst!)
|
||||||
|
|||||||
Reference in New Issue
Block a user