diff --git a/PROGRESS.md b/PROGRESS.md index c547188..af47df5 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -13,6 +13,42 @@ Schritt (und beim Abbruch mitten im Schritt den Zwischenstand). Format: --- +## 2026-07-04 – Fable-5-Review (u): (t)-Fix geprüft – korrekt, KEIN Befund, server.py-Review-Kette abgeschlossen + +**Erledigt:** Review-Pass über die letzte noch ungeprüfte Arbeit – den +(t)-Restbefund-Fix (Commit d3e75c3) gegengelesen und als Punkt (u) im +Fable-5-Review-Abschnitt abgehakt. Wie im Arbeitsstand-Memory vorgesehen war +das ein kurzer Diff-Gegenlese-Pass, KEINE weitere Volltiefen-Runde: + +- Diff gegen `server.py.bak-20260704-review-t` ist exakt der protokollierte + Mini-Fix (1 Fundstelle: `registration-status` antwortet generisch, Detail + per stderr ins Journal); `sys` ist importiert, `py_compile` sauber. +- Dienst läuft mit dem aktuellen Code (Start 19:19:40 NACH Datei-mtime + 19:19:22), kein unprotokollierter Rest im CHANGES-Hook-Log (letzte Einträge + 19:19–19:22 gehören zur (t)-Session, danach Commit 4c6efa2). +- Die 4 verbliebenen `str(e)`-Antworten liegen alle im `with ADMIN_LOCK:`-Block + HINTER dem Heimnetz-Gate (run-stats, create-invite, toggle-registration, + ban/unban) – absichtlich, LAN-only, für Bernd nützlich. Kein Handlungsbedarf. +- Kurz-Check des laufenden Dienstes: stats.html 200, registration-status 200 + (`{"enabled": false}`), unbekannte Route 404. + +**Damit ist die server.py-Härtungskette (o)–(u) KONVERGIERT** – ohne neuen +Anlass (neuer Code, neue Route) gibt es dort nichts mehr zu prüfen. ALLE als +erledigt markierten ROADMAP-/PROGRESS-Punkte sind reviewt. + +**Offen/Nächster Schritt:** Unverändert – alle offenen ROADMAP-Punkte brauchen +PC/Gerät (SQLCipher, LiveKit-Client-Umstellung, Härtetest, M2-Call/State) oder +Bernd (Secret-Rotation, Dashboard-Fernzugriff A/B, Call-Pilot-Go). Auf dem Pi +ist nichts sicher Bearbeitbares mehr offen (Memory: nicht erneut suchen, +UNGETESTET-Stapel bewusst gedeckelt). + +**Stolperfallen:** Keine – der Befund aus (t) war korrekt gefixt. Eine +Review-Kette braucht ein dokumentiertes Ende-Kriterium („konvergiert wenn der +letzte Diff nur noch den Vorbefund fixt und das Muster-grep leer ist"), sonst +reviewt jede Session den Review der Vorsession bis in alle Ewigkeit. + +--- + ## 2026-07-04 – Fable-5-Review (t): (s)-Fixes geprüft – korrekt, 1 kleiner Restbefund gefunden und gefixt **Erledigt:** Review-Pass über die jüngste erledigte Arbeit – die zwei @@ -933,6 +969,12 @@ schließt den Review ab. verifiziert: 8 Routen-Checks unverändert, 500-Beweis per kurzzeitigem `chmod 000` auf `conduit.toml` (generisch nach außen, `PermissionError` im Journal, danach wieder 200). Details im PROGRESS-Eintrag „(t)" oben. +- [x] **(u) (t)-Fix (d3e75c3) geprüft – korrekt, KEIN Befund; server.py-Kette + abgeschlossen (2026-07-04).** Diff gegen `server.py.bak-20260704-review-t` + = exakt der protokollierte Mini-Fix, Dienst läuft mit aktuellem Code, kein + unprotokollierter Rest. Verbliebene `str(e)`-Stellen alle LAN-gegated + (absichtlich). Ohne neuen Anlass keine weitere Review-Runde an `server.py`. + Details im PROGRESS-Eintrag „(u)" oben. **Fazit:** Die Sonnet-5-Arbeit war handwerklich sauber; die zwei echten Lücken (verlorene Kommentare, fehlender Soft-Logout-Guard) hatte die abgebrochene diff --git a/ROADMAP.md b/ROADMAP.md index b79ccbb..a6814e1 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -91,6 +91,10 @@ Punkte abhaken (`[x]`), wenn erledigt UND in `PROGRESS.md` protokolliert. `registration-status` antwortet bei internen Fehlern jetzt generisch statt mit `str(e)` (hätte den `conduit.toml`-Pfad geleakt); headless verifiziert inkl. 500-Beweis. + Zusatz (Fable-5-Review (u), 2026-07-04): (t)-Fix gegengelesen – korrekt, + kein Befund; die server.py-Härtungskette ist damit KONVERGIERT (alle + verbliebenen `str(e)`-Antworten LAN-gegated, absichtlich). Offen bleibt an + diesem Punkt NUR noch Bernds Fernzugriffs-Entscheidung A/B. - [x] **LiveKit-Token-Route server-seitig gebaut + verifiziert** (Fable-5-Review (n), PROGRESS.md 2026-07-04). `POST /api/livekit-token` läuft live in `server.py` (whoami-Auth, stdlib-HS256-Minting aus `livekit.yaml`), headless geprüft