diff --git a/backend/docs/client-live-editing-instructions.md b/backend/docs/client-live-editing-instructions.md index 0416b00..9962472 100644 --- a/backend/docs/client-live-editing-instructions.md +++ b/backend/docs/client-live-editing-instructions.md @@ -1,33 +1,60 @@ # Aufgabe: Live-Editing-Client für den Werkbaum-Editor implementieren -Du arbeitest im Repository der Werkbaum-Web-App (PWA). Implementiere die -Client-Seite des Live-Editing-Protokolls gegen das Editor-Backend. Das -Protokoll ist HTTP-only (kein WebSocket): Änderungen werden als -zeilenbasierte Diffs per PATCH eingereicht, andere Clients erhalten sie über -einen Long-Polling-Feed. +Du arbeitest im **Werkbaum-Monorepo**, Teilprojekt `frontend/`. Implementiere +die Client-Seite des Live-Editing-Protokolls gegen das Editor-Backend +(`backend/`). Das Protokoll ist HTTP-only (kein WebSocket): Änderungen werden +als zeilenbasierte Diffs per PATCH eingereicht, andere Clients erhalten sie +über einen Long-Polling-Feed. -**Wichtiger Kontext:** Die beiden Live-Editing-Endpunkte (`PATCH …/content` -und `GET …/changes`) sind im Backend spezifiziert, aber ggf. noch nicht -deployt. Implementiere gegen den hier definierten Vertrag und baue einen -Mock-Server (oder MSW-Handler) für die Tests. Die CRUD-Endpunkte existieren -bereits. +**Wichtiger Kontext:** Die Live-Editing-Endpunkte sind spezifiziert +(`backend/docs/live-editing-proposal.md`, Entscheidungen in +`docs/DECISIONS.md` D76), aber noch nicht implementiert. Baue gegen den hier +definierten Vertrag; die CRUD-Endpunkte existieren bereits. + +## 0. Randbedingungen des Projekts — bitte zuerst lesen + +Diese Punkte sind nicht verhandelbar und bestimmen jede +Implementierungsentscheidung unten: + +- **Keine Laufzeit-Abhängigkeiten.** `frontend/package.json` hat ein leeres + `dependencies`; alles unter `devDependencies` (Vite, Vitest, jsdom) + verschwindet beim Bauen. D11/D19/D20 und CLAUDE.md: neue + Laufzeit-Abhängigkeiten nur nach Rückfrage. Also **kein jsdiff**, **kein + CodeMirror**, **kein MSW** — Diff und Test-Doubles werden selbst gebaut. +- **Vanilla JavaScript**, keine TypeScript-Dateien. Module liegen als + `frontend/src/*.js` (siehe `parser.js`, `model.js`, `render.js`, + `snapshots.js`, `autocomplete.js`). +- **Der Editor ist eine rohe `