From c3d5e2b0ad682eb54f30e5d43cf31f7d4d8837b9 Mon Sep 17 00:00:00 2001 From: Brummel Date: Tue, 14 Apr 2026 10:59:32 +0200 Subject: [PATCH] Update Projektplan mit Admin-Log --- docs/projektplan.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/projektplan.md b/docs/projektplan.md index 007f915..f0cb19a 100644 --- a/docs/projektplan.md +++ b/docs/projektplan.md @@ -756,11 +756,11 @@ axum-extra = { version = "0.12", features = ["cookie"] } # passend zu axum 0.8 - [ ] `AuthenticatedArzt`-Extractor: Session-Token → Arzt auflösen, bei ungültiger/abgelaufener Session → Redirect `/web/login` - [ ] `ValidCaseId`-Extractor: `case_id` als UUIDv4 validieren (`uuid::Uuid::parse_str`), bei Fehler → 400 - [ ] Login-Seite (`GET /web/login`, `POST /web/login`) -- [x] askama Templates (Listenansicht `cases.html`) +- [ ] askama Templates (Arzt-UI) - [ ] SSE-Endpunkt (`GET /web/events`), Session-Check bei Aufbau + periodisch bei Heartbeat - [ ] Vanilla-JS EventSource-Client -- [ ] Übersicht mit drei States (Empfangen/Transkribiert/Ausgewertet) — aktuell nur flache Liste mit Transkript + Oneliner -- [x] Fall-Detail: Transkripte pro Aufnahme einsehen (inline in Listenansicht, Audio-Stream `/web/audio/...`) +- [ ] Übersicht mit drei States (Empfangen/Transkribiert/Ausgewertet) +- [ ] Fall-Detail: Transkripte pro Aufnahme einsehen - [ ] Fall abschließen / Alle abschließen - [ ] Dokumentansicht - [ ] Nachtrag-Hinweis bei Aufnahmen nach Abschluss (⚠ "N neue Aufnahmen seit Abschluss") @@ -770,6 +770,10 @@ axum-extra = { version = "0.12", features = ["cookie"] } # passend zu axum 0.8 - [ ] Service-Ausfall-Warnung (faster-whisper/Ollama > 30 Min.) - [ ] CSRF-Token pro Session (Hidden Field in allen POST-Formularen, serverseitige Validierung) +**Admin-Log (separat vom Arzt-UI)** +- [x] `GET /web/` — flache Liste aller Fälle quer über User, inkl. Transkripten und Oneliner (aktueller Stand `cases.html`). Dient als "interaktives Log" für Entwicklung und Admin-Zwecke, ersetzt nicht das Arzt-UI. +- [ ] Zugriffsschutz: später auf `role = "admin"` einschränken, sobald die Auth-Schicht steht. + ### Phase 5 — Watch App **Hinweis:** Ein früher Proof-of-Concept (minimale Aufnahme + Upload auf echter Pixel Watch) sollte parallel zu Phase 2–3 stattfinden, um Wear-OS-spezifische Einschränkungen (Doze-Mode, Foreground-Service-Limits, Battery-Optimization) frühzeitig aufzudecken. @@ -875,3 +879,4 @@ axum-extra = { version = "0.12", features = ["cookie"] } # passend zu axum 0.8 | GPU-Phasen-Worker | Strikter Whisper↔Ollama-Wechsel mit Ollama `keep_alive=0` | Turbo (~1.6 GB) + Ollama gemma4 (~9 GB) bleiben parallel geladen, `OLLAMA_KEEP_ALIVE=300` | Dank Turbo-VRAM-Footprint passen beide gleichzeitig in die GPU. Spart das Modell-Reload (~2 s pro Oneliner). Strikter Phasenwechsel bleibt als Fallback, falls später größere Modelle (`large-v3`, Llama 3.1 8B) zurückkehren. | | faster-whisper Port | 10300 (ahmetoner) | 9001 (eigener Service) | Neuer Service auf freiem Port; alter Container optional parallel belassen. | | Test-Client für Watch-Flow | Erst ab Phase 5 mit echter Hardware | `scripts/dictate.sh` ab Phase 2/3 als Stand-in (ffmpeg + curl + interaktiver c/n/r/q-Loop) | Erlaubt End-to-End-Tests der Server-Pipeline ohne Watch-Hardware, solange die Pixel Watch nicht verfügbar ist. | +| Admin-Log vs. Arzt-UI | Nur Arzt-UI geplant | Zusätzlich frühes Admin-Log unter `/web/` (flache Liste aller Fälle, Transkripte, Oneliner) | Gebaut, bevor das Arzt-UI (Session, States, Fall-Detail) existiert, um die Pipeline während Entwicklung inspizieren zu können. Soll bleiben, aber später hinter `role = "admin"` geschützt; das Arzt-UI wird separat entwickelt. |