9693174de9
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
148 lines
7.7 KiB
Markdown
148 lines
7.7 KiB
Markdown
# PC-Testplan – alle aufgelaufenen UNGETESTET(Pi)-Punkte
|
||
|
||
Stand: 2026-07-03; Autopilot-Ergebnisse vom **2026-07-06** eingetragen.
|
||
Alle Pi-Sessions seit dem 2026-07-03 konnten nur
|
||
`flutter analyze` + automatisierte Textvergleiche fahren (kein GUI auf dem Pi).
|
||
Dieser Plan konsolidiert JEDEN ausstehenden Praxistest aus PROGRESS.md an einer
|
||
Stelle. Beim nächsten Windows-Lauf von oben nach unten abarbeiten, Ergebnis je
|
||
Punkt hier eintragen (✅/❌ + Datum), Befunde als eigene PROGRESS-Einträge.
|
||
|
||
Schnellster Weg: `flutter run -d windows`.
|
||
|
||
> **Grenze des Autopilot-Laufs 2026-07-06:** Der Autopilot kann bauen,
|
||
> testen und die App starten/beenden, aber NICHT in der UI klicken. Alles
|
||
> Klick-Interaktive (Abschnitte 2–8, Logout/Re-Login in Abschnitt 1) braucht
|
||
> Bernd am PC – die App-Starts heute liefen mit Bernds bestehender Session.
|
||
|
||
## 0. Vorab (1 Minute)
|
||
|
||
- [x] `flutter test` – ✅ 2026-07-06: **32 Tests grün** (24 Bestand + 5 neue
|
||
SQLCipher-Tests aus `test/app_database_test.dart` + 3 neue
|
||
VoicePrefs-Vertragstests in `test/settings_prefs_test.dart`),
|
||
mehrfach gelaufen (vor/nach jedem Umbau des Tages).
|
||
|
||
## 1. Härtetest Login/Krypto (M1 – PFLICHT, zuerst!)
|
||
|
||
Deckt die Fixes 63e4919, 9dc83f7, 891f348 ab (Uta-Random-Logout + Guard).
|
||
Seit 2026-07-06 zusätzlich relevant: SQLCipher-Migration ist auf diesem PC
|
||
gelaufen – die lokale DB ist jetzt verschlüsselt (PROGRESS.md 2026-07-06).
|
||
|
||
- [ ] Login mit Test-Account → Nachrichten in verschlüsseltem Raum senden/lesen
|
||
(Teil-Evidenz ✅ 2026-07-06: Bestands-Session blieb über 3 App-Starts
|
||
und die DB-Migration hinweg eingeloggt; App hat live to_device-Events
|
||
von @uta entschlüsselt und Room-Keys forwardet → Lesen/E2EE belegt.
|
||
Aktives SENDEN + frischer Login noch offen → Klick-Test Bernd)
|
||
- [x] `auth_log.txt` (App-Support-Verzeichnis) prüfen: ✅ 2026-07-06 –
|
||
LoginState-Wechsel werden mitgeschrieben (je Start `loggedIn`), dazu
|
||
der DB-Migrations-Eintrag; keine unerwarteten Warnungen, kein
|
||
Soft-Logout-Eintrag.
|
||
- [ ] Logout (Warnung bei fehlendem Key-Backup erscheint? b5762ea) – Klick-Test
|
||
- [ ] Erneuter Login → **alte verschlüsselte Nachrichten noch lesbar?** – Klick-Test
|
||
- [ ] Mehrere Stunden laufen lassen: kein Random-Logout, kein
|
||
Login-Screen-Flackern (isLoggedInProvider-Änderung), `auth_log.txt`
|
||
zeigt ggf. „Soft-Logout durch Token-Refresh abgewendet"
|
||
(IN ARBEIT – Zwischenstand 2026-07-06 16:57: Der 12:43-Lauf endete
|
||
schon ~13:03 (letzter DB-Write; keine Absturzspur in Event-Log/WER,
|
||
kein Logout-Eintrag – vermutlich Fenster geschlossen). Im 20-min-
|
||
Fenster KEIN Random-Logout. Session überlebte danach den 4. Start
|
||
mit verschlüsselter DB (auth_log 16:57:46 `loggedIn`, keine erneute
|
||
Migration). Danach zwei geplante Neustarts für die Refactoring-
|
||
Praxistests (17:08 VoicePrefs/call_ui, 17:14 voice_channel-Split),
|
||
jeweils sauberer `loggedIn`, die Fenster dazwischen ohne Auffälligkeit
|
||
(16:57–17:08 ≈ 50 min sauber). **Check 17:37 (dritte PC-Session):**
|
||
Fenster 17:14–17:42 sauber – kein Logout-/Fehler-Eintrag, DB-Writes
|
||
liefen durchgehend; Lauf um 17:42 vom Autopilot beendet (Rebuild für
|
||
den settings_encryption-Split). Beobachtung läuft seit 17:43 mit dem
|
||
aktuellen Code (auth_log 17:43:14 `loggedIn`, keine Migration).
|
||
**Check 18:19 (vierte PC-Session), Fenster 17:43–18:19:** kein Logout,
|
||
und obendrauf der bisher wertvollste Positiv-Befund – ein ECHTER
|
||
Netzausfall 18:09:57–18:16:39 (~7 min, „Client has not connection to
|
||
the server" alle 3 s im auth_log) wurde sauber überstanden: kein
|
||
Logout, keine Eskalation, Sync erholte sich von selbst (WAL-Write
|
||
18:18:13 nach der letzten Fehlerzeile). Genau der Fehlerpfad, den die
|
||
Fixes 63e4919/9dc83f7/891f348 absichern sollen. Beobachtung läuft
|
||
weiter; erst nach einem echten Mehr-Stunden-Fenster abhaken.
|
||
Kumulativ heute: 12:26–18:19 über 7 Starts ohne einen einzigen
|
||
Random-Logout)
|
||
- [ ] Ergebnis als „Härtetest"-Eintrag in PROGRESS.md dokumentieren
|
||
(= ROADMAP-M1-Punkt „Härtetest dokumentieren" abhaken)
|
||
- [ ] Android: nach Neu-Login beobachten, ob Push-Inhalte wieder echt
|
||
entschlüsselt ankommen (statt „Neue Nachricht"-Platzhalter). Falls nicht:
|
||
zweite Ursache, siehe `docs/NOTIFICATIONS.md` + Memory „Pyramid Push"
|
||
- [ ] Danach Uta: einmal aus- und wieder einloggen (erst dann hat ihre
|
||
Session einen Refresh-Token!)
|
||
|
||
## 2. Settings-Split (5d77238, 12 Teildateien)
|
||
|
||
Alle Reiter öffnen und benutzen: Profil, Benachrichtigungen, Erscheinungsbild,
|
||
Voice, Tastaturkürzel, Privatsphäre, Sessions, Verschlüsselung, Account, Über.
|
||
|
||
- [ ] Verschlüsselung (HEILIG): Recovery-Key anzeigen, Megolm-Export UND
|
||
-Import (Passphrase), SAS/QR-Verifizierung starten
|
||
- [ ] Sessions: Gerät umbenennen, Einzel-Logout, Massen-Logout-Dialog
|
||
(Passwort-Reauth) nur bis zur Abfrage
|
||
- [ ] Account: Passwort-ändern-Dialog öffnen, Account-löschen-Dialog öffnen
|
||
(NICHT bestätigen)
|
||
- [ ] Logout-Warnungs-Text bei fehlendem Backup sichtbar (settings_about/shared)
|
||
|
||
## 3. Chat-Timeline-Split (5bf45a9) + tote-Code-Bereinigung (6400fb6)
|
||
|
||
Einen Chat mit allen Nachrichtentypen durchgehen:
|
||
|
||
- [ ] Text mit Link-Vorschau, Bild, Video, Audio, Datei-Anhang
|
||
- [ ] Download-/Entschlüsselungs-Fehlerpfade in `message_media.dart` gezielt
|
||
ansehen (am wenigsten geprüfter Teil)
|
||
- [ ] Reaktionen setzen/entfernen, Hover-Aktionsleiste, Antworten/Zitat
|
||
- [ ] Datums-Trenner, „Neue Nachrichten"-Divider
|
||
- [ ] Gescheiterte Nachricht: bleibt mit Retry/Löschen stehen, Retry geht
|
||
- [ ] Zeitanzeige bei aufeinanderfolgenden Nachrichten + Hover-Uhrzeit bei
|
||
Fortsetzungsnachrichten (`_formatMessageTime`-Zusammenführung)
|
||
|
||
## 4. Raumlisten-Split (a863fa3) + Reorder-Fix (401bd6a)
|
||
|
||
- [ ] Space wechseln, Raum beitreten/verlassen
|
||
- [ ] **Drag&Drop-Umsortieren: landet der Raum EXAKT an der Zielposition?**
|
||
(onReorder→onReorderItem, Index-Korrektur jetzt im Framework – Off-by-One
|
||
wäre hier sichtbar; nach oben UND nach unten ziehen testen)
|
||
- [ ] Voice-Channel-Teilnehmerliste in der Raumliste
|
||
- [ ] Einladung annehmen/ablehnen, Ungelesen-Badge, DM-Avatare
|
||
|
||
## 5. Space-Admin-Split (0c7d359)
|
||
|
||
An einem TEST-Space, nicht an Utas echtem:
|
||
|
||
- [ ] Übersicht: Sichtbarkeit umschalten, Banner ändern (Danger-Zone nur ansehen)
|
||
- [ ] Mitglieder: einladen, Rolle ändern (Selbst-Aussperr-Schutz
|
||
`updatePowerLevelsSafely` greift?), kicken
|
||
- [ ] Berechtigungen ändern, Kanäle: erstellen + bestehenden Raum hinzufügen
|
||
|
||
## 6. Chat-View-Split (31e4001)
|
||
|
||
- [ ] Chat-Header (normal + DM mit ausklappendem Header/Presence)
|
||
- [ ] Tippanzeige, Offline-/Reconnect-Banner (Netz kurz trennen)
|
||
- [ ] Datei per Drag&Drop in den Chat ziehen (Overlay + Senden)
|
||
|
||
## 7. Dokument-Viewer-Split (daf4cf3) + Matrix4-Fix (401bd6a)
|
||
|
||
- [ ] PDF inline im Chat, Vollbild-Viewer: **Zoom per Buttons/Strg+Mausrad**
|
||
(translateByDouble/scaleByDouble-Umbau – zoomt es zentriert wie vorher?),
|
||
Seiten-Navigation, Thumbnail-Leiste, Speichern-Button
|
||
- [ ] Text/Markdown/SVG-Vorschau, Office-Text-Extraktion
|
||
- [ ] ZIP/TAR-Archiv-Browser, PSD-Thumbnail
|
||
- [ ] Bild im Chat öffnen (Fallback-Pfade)
|
||
|
||
## 8. Kleinkram aus den Lint-Commits
|
||
|
||
- [ ] Mini-Call-Widget: Buttons zeigen jetzt Hover-Farbe (9dc1175, gewollt) –
|
||
sieht das ok aus?
|
||
- [ ] Anhang-Dialog + Raum-erstellen-Dialog: Switches (activeThumbColor) sehen
|
||
aus wie vorher
|
||
- [ ] Voice-Channel beitreten/verlassen (Kernflow laut CLAUDE.md, von den
|
||
Splits nicht berührt, aber Pflicht nach jedem Refactoring)
|
||
|
||
## Danach
|
||
|
||
- [ ] Alle ✅ hier eintragen, PROGRESS.md-Eintrag „PC-Praxistest" schreiben,
|
||
erst DANN neue riskante Punkte anfangen (Call-Fassade, SQLCipher –
|
||
siehe `docs/SQLCIPHER_MIGRATION.md`)
|