docs: Wiederaufnahme 2026-10-07 - Tests/Benchmarks dokumentiert, SDK-Wettlauf + Abhaengigkeiten in ROADMAP
Neue Punkte: SDK-Sync-Wettlauf (Logout-Pfad pruefen), Abhaengigkeits-Updates (sqlcipher_flutter_libs EOL - nie auf 0.7.0 heben, matrix 6.2 -> 13, flutter_markdown eingestellt; WebRTC-Audio-Fix weiterhin nicht upstream). Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
df1b392ed8
commit
dbc0340eeb
+49
@@ -13,6 +13,55 @@ Schritt (und beim Abbruch mitten im Schritt den Zwischenstand). Format:
|
||||
|
||||
---
|
||||
|
||||
## 2026-10-07 – Wiederaufnahme nach Pause: Bestandsaufnahme, Test-Runner, Benchmarks, Live-Test stabilisiert
|
||||
|
||||
**Erledigt:**
|
||||
- **Bestandsaufnahme:** Repo synchron mit Gitea (0 vor/0 hinter), Arbeitsbaum
|
||||
war sauber, Toolchain unverändert (Flutter 3.44.4 / Dart 3.12.2).
|
||||
`flutter analyze` sauber (nur bekannter onUpdate-Hinweis), 36 Unit-Tests
|
||||
grün. Autopilot (PC + Pi) weiterhin pausiert.
|
||||
- **Lokale Suche als Modul:** `_localMessageSearch` aus `search_modal.dart`
|
||||
nach `lib/features/search/local_message_search.dart` verschoben – gleiche
|
||||
Deckel (1500/Raum, 60 Treffer, 500er-Blöcke), gleiche Schleife, nur der
|
||||
Medien-Filter kommt jetzt als Parameter. 5 Vertragstests
|
||||
(`test/local_message_search_test.dart`) auf der echten SDK-DB-Schicht.
|
||||
- **Benchmarks** (`benchmark/`, `docs/TESTS_UND_BENCHMARKS.md`): Klartext vs.
|
||||
SQLCipher (Sync-Schreiben, App-Start, Chat öffnen, Suche) + Migrationsdauer;
|
||||
JSON-Berichte, Baseline in `benchmark/baseline/`, Regressionswarnung >25 %.
|
||||
Ergebnis: SQLCipher-Aufschlag im Rauschen (±5–10 %), Migration ≈ 42 ms/MB,
|
||||
Suche (Worst Case) 64 ms für 10 000 Nachrichten.
|
||||
- **`scripts/test.ps1`:** Analyse + Unit-Tests (+ `-Live`, `-Bench`, `-All`,
|
||||
`-UpdateBaseline`) mit Zusammenfassung; baut die SQLCipher-DLL bei Bedarf.
|
||||
- **Live-Test sporadisch rot → Ursache gefunden, Test stabilisiert:** siehe
|
||||
Befund unten. `live_encryption_e2e_test.dart` meldet sich jetzt über
|
||||
`_logoutWithoutStraySync` ab (Sync anhalten, laufenden Long-Poll
|
||||
auslaufen lassen, dann Logout). Danach 3 Läufe in Folge grün (Ergebnis
|
||||
siehe unten).
|
||||
|
||||
**Befund (neu in ROADMAP, M1-Bereich):** matrix 6.2 `_innerSync` wirft den
|
||||
Fehler einer Sync-Antwort, bevor geprüft wird, ob die Anfrage noch aktuell
|
||||
ist. Die 401 eines alten Long-Polls nach einem Logout löst ein erneutes
|
||||
`clear()` aus – nach einem schnellen Re-Login auf demselben Client würde das
|
||||
die neue Session löschen. Im Test trat es als „databaseFactory not
|
||||
initialized" nach `dispose()` auf. Upstream `main` unverändert (geprüft).
|
||||
App-Logout-Pfad noch NICHT angefasst (heilig, braucht Gerätetest).
|
||||
|
||||
**Offen/Nächster Schritt:** Bernds Rückmeldungen aus der Beta-Testphase
|
||||
(v0.1.36) einsammeln, dann Prioritäten setzen: Klick-Tests aus
|
||||
`docs/PC_TESTPLAN.md`, App-Logout-Pfad gegen den SDK-Wettlauf prüfen,
|
||||
Abhängigkeits-Updates (ROADMAP M2, Achtung `sqlcipher_flutter_libs` EOL).
|
||||
|
||||
**Stolperfallen:** (1) sqflite liefert für denselben Pfad dieselbe
|
||||
Verbindung zurück – ein zweites Öffnen+Schließen kappt die erste
|
||||
(Benchmark-„database_closed"). (2) Benchmark-Reihenfolge: der Dart-JIT wird
|
||||
während des Laufs schneller, der zuerst gemessene Modus verlor ±20 % →
|
||||
großer Aufwärm-Durchlauf + A-B-B-A. (3) `dart format` NUR auf neue Dateien
|
||||
anwenden – Bestandsdateien sind nicht formatiert, sonst riesiger Diff.
|
||||
(4) Vor einer Aussage nachmessen: Schreibkosten hängen NICHT nennenswert von
|
||||
der Raumgröße ab (250 vs. 4000 Nachrichten/Raum ≈ +15 %).
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-06 – Nacht-Session (C+B): 60-FPS-Streaming + Call mit ZWEI echten Test-Accounts real durchgeklickt
|
||||
|
||||
**Erledigt:** Fokus (C) Streaming und (B) Calls – beides mit zwei echten
|
||||
|
||||
Reference in New Issue
Block a user