Client-State-Synchronisation für Browser-SRS-Fortschritt
Generated artifact. Do not edit manually.
Generated by:
scripts/build_compendia.pyRegenerate with:python3 scripts/build_compendia.py --compendium runtime-workflows --web-and-texSource of truth:docs/concept/runtime-workflows/source/
Sprache / Language: Deutsch (DE) · English (EN) | PDF: Deutsches PDF · English PDF
Kompendium: §1 Personalisierung · §2 Lernablauf · §3 SRS-Sync · §4 Import/Export · §5 Portabler Host · §6 Kommunikationsvertrag · §7 Coach-Topologie · §8 OAuth & Session · §9 Verhaltensintegration · §10 Plugin-Lifecycle
3. Client-State-Synchronisation für Browser-SRS-Fortschritt
Dieses Kapitel definiert den UI-seitigen Backendvertrag zur Synchronisation des lokalen Karteikarten-Wiederholungsstands (Spaced Repetition System, SRS). Verified Recall aktualisiert verifizierte Kartenergebnisse ausschließlich über seinen eigenen, Capability-gebundenen atomaren MCP-Batch-Use-Case (6.3), niemals über diesen Browser-Endpunkt.
3.1. Endpunkt und Authentifizierungsgrenze
GET /api/ui/learners/{skillpilotId}/client-state/{nodeId}
PUT /api/ui/learners/{skillpilotId}/client-state/{nodeId}
- First-Party-Browserpfad: Nutzt die obigen UI-Endpunkte mit der pseudonymen
skillpilotId, um den SRS-Planungsstand je Gedächtnisknoten (nodeId) periodisch, manuell sowie für Export/Import-Wiederherstellung frei von personenbezogenen Daten zu sichern. - MCP-Coach-Pfad: Authentisiert die App per OAuth und adressiert Lernende ausschließlich über die aktive 24-Stunden-
learningSessionId(8); dieskillpilotIdist niemals MCP-Toolargument oder -ergebnis. Frühere kartenweise Visible-Session-Routen gehören ausschließlich zum isolierten Visible-Session-Rollback.
3.2. Request- und Response-Struktur
PUT überträgt Content-Type: application/json mit der Karten-Map eines Gedächtnisknotens (nodeId):
{
"updatedAt": "2026-02-02T19:30:00.000Z",
"srsState": {
"math_analysis_c01": {
"id": "math_analysis_c01",
"interval": 3,
"easeFactor": 2.4,
"repetitions": 2,
"nextReview": 1706892870000,
"lastReviewed": 1706806470000,
"verifiedRecall": {
"status": "passed",
"attempts": 1,
"failures": 0,
"lastTestedAt": "2026-02-02T19:28:00.000Z",
"passedAt": "2026-02-02T19:28:00.000Z"
}
}
}
}
srsStatespeichert die SRS-Felder (interval,ef/easeFactor,repetition/repetitions,nextReview, optionallastReviewed) sowie abwärtskompatibleverifiedRecall-Metadaten (Browser-Sync kann keinen neuen Verified-Recall-Erfolg fälschen; siehe 2.4).GETliefert200 OKmit{ "updatedAt": "...", "srsState": { ... } }(bzw.404 Not Found, worauf der Client lokal weiterarbeitet).PUTbestätigt200 OKmit{ "status": "ok", "savedAt": "...", "storedKeys": 42 }.
3.3. Speicherung, Datenschutz und Client-Verhalten
- Persistenz: Speicherung als JSON-Datensatz pro
(learner, nodeId)(z. B.learner_client_state) nachupdatedAtohne personenbezogene Angaben (keine Namen oder E-Mail-Adressen). - Client-Auslöser: Automatische Synchronisation nach jeweils 20 bearbeiteten Karten sowie über manuelles Speichern; schlägt der Abgleich fehl, zeigt die UI den Fehler an und führt das lokale Üben unterbrechungsfrei fort.