- src/notes-api-server.ts: NotesApi-Klasse - listNotes(): Liste Notiz-IDs in 4 Top-Level-Verzeichnissen - getNote(id): liest Notiz mit Frontmatter-Parsing - saveNote(id, content): schreibt Notiz, erstellt Parent-Dirs - syncVault(toolBinaryPath): Promise, ruft mindomat sync als Subprozess - webapp/vite.config.ts: nutzt NotesApi statt Inline-Logik - 3 Middleware-Handler: GET /api/notes, GET/PUT /api/notes/<id>, POST /api/sync - tests/notes-api.test.ts: 10 Tests - listNotes: leer, Inbox, Verarbeitet-Filter, Forward-Slashes - getNote: nicht-existent, mit Frontmatter - saveNote: neu, ueberschreiben, Parent-Dirs - E2E roundtrip: list -> save -> get -> update -> get Verifiziert: - 71/71 Tests gruen - Code-Duplikation zwischen Webapp und Tool-Repo entfernt - NotesApi ist jetzt isoliert testbar (kein Vite-Server noetig)