diff --git a/TODO.md b/TODO.md index 8fe54fd..90823ae 100644 --- a/TODO.md +++ b/TODO.md @@ -1299,8 +1299,11 @@ Hervorhebung "eigene Klasse" über `LearningGroup.IsOwnClass`, feste Kartenbreit ## 10. Sync & Server -Grundgerüst existiert in [LehrerApp.Sync](LehrerApp.Sync/) und [LehrerApp.Api](LehrerApp.Api/), -ist aber nur aktiv, wenn eine Server-URL konfiguriert ist. +Vollständig funktionsfähig: Outbound-Publishing (10.1.6), Inbound-Apply (10.1.7), +Anhang-Sync (10.1.8), Client-UI (10.1.1–10.1.5) und Server-Härtung (10.2) sind umgesetzt. +Nur aktiv, wenn in den Einstellungen eine Server-URL konfiguriert und ein Login erfolgt ist. +Offen bleiben bewusst die Schlüsselverwaltungs-Punkte unter 10.3 (Gerätewechsel/-verlust) und +die Docker-Verifikation unter 10.2.4 (kein Docker im Entwicklungsstand verfügbar). ### 10.1 Client - [x] **10.1.1** Sync-Einrichtung in den Einstellungen: Server-URL, Login, Token speichern. @@ -1417,6 +1420,17 @@ ist aber nur aktiv, wenn eine Server-URL konfiguriert ist. Event-Applier dieselben Validierungen wie die Repository-Save-Methoden durchlaufen, ohne dabei erneut ein Sync-Ereignis auszulösen. +**Verifikation:** `dotnet build LehrerApp.sln && dotnet test LehrerApp.sln` grün (591 Tests, +inkl. `EventApplierTests`, `ChangeHookCascadeTests`, `AttachmentSyncerTests`, +`AttachmentStoreTests`). Zusätzlich Live-Rauchtest gegen einen tatsächlich laufenden +`LehrerApp.Api`-Prozess (nicht gemockt): `create-user`-CLI, Login (richtig/falsch), Zugriffsschutz +auf `/api/sync/status`, entferntes `/api/auth/register` (404), Push/Pull-Roundtrip zwischen zwei +Geräte-Ids, Anhang-Upload/Download byteidentisch, Rate-Limit auf `/api/auth/login` löst nach 5 +Versuchen tatsächlich 429 aus. **Nicht verifizierbar in dieser Umgebung:** zwei echte +Desktop-Instanzen gegeneinander synchronisieren (kein Mehrfach-AppData-Mechanismus vorhanden, GUI +nicht headless steuerbar) und ein echter `docker compose up`-Durchlauf (kein Docker verfügbar) — +beides vor dem ersten produktiven Zwei-Geräte-Einsatz empfehlenswert nachzuholen. + --- ## 11. Export, Druck & Berichte