No description
- Einladungen: Spalte nr (steigt bei jeder Änderung), Endzustände endgültig, Zustände offen/angenommen/abgelehnt/zurueckgezogen/abgelaufen, Sweep beim Start und alle 15 s, Rate-Limit, DELETE zum Zurückziehen - Runden: nr/standNr/da in kurz(), Invariante „Gäste = Mensch-Plätze“ (NOCASE), verlasseAlleRunden, beitreten nur als Wiedereinstieg, Host-weg → unterbrochen, Zug-Puffer wird beim WebSocket-Stand gespült, GET /runde/:id nur für Mitglieder - Annehmen einer Runden-Einladung tritt im selben Aufruf bei (409 mit grund sonst) - Freundschaften beidseitig in SQLite (GET/DELETE /api/freunde, uebernehmen) - Anwesenheit: da / wartet / spielt / weg mit seit; /api/online liefert status - WebSocket: Anmeldung per erstem Frame oder Query, snapshot statt Replay, fehler-Antworten, presence-Push, Token im Log redigiert - Tests: vitest, 26 Protokoll-Tests gegen den echten Server; PROTOKOLL.md Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TRdaLs8CxuRwMTU7V6jiLa |
||
|---|---|---|
| apache | ||
| caddy | ||
| deployer | ||
| spielserver | ||
| .env.example | ||
| .gitignore | ||
| docker-compose.yml | ||
| LAPTOP-SETUP.md | ||