From fa552047675d8dbe65b6fcf04bcc824ca8c4fc55 Mon Sep 17 00:00:00 2001 From: Jeuner <62662523+Jeuners@users.noreply.github.com> Date: Tue, 25 Aug 2026 01:15:20 +0200 Subject: [PATCH] release: v1.0.0 Erste stabile Version - Kernpipeline, Telefonie, Leitstand mit Sicher-Modus/ Notfall-Alarm/Bewertungssystem, Notfall-Sicherheitsnetz, Audit-Log + Loeschfristen, Modell-Vergleich mit Failover. Details in CHANGELOG.md. Vorher geprueft: Git-Historie sauber (keine Secrets), alle Python-Dateien syntaktisch valide, Watcher/Leitstand/FreeSWITCH/Ollama live und funktionsfaehig, telefon/fehler leer. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_015vtvcyNkapuDh583643hNs --- CHANGELOG.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 2 ++ 2 files changed, 54 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..99a9690 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,52 @@ +# Changelog + +## v1.0.0 — 2026-08-25 + +Erste stabile Version. Läuft produktiv (mit Testdaten) auf macOS/Apple +Silicon, Telefonie steht, Pipeline läuft Ende-zu-Ende. + +### Kernpipeline +- Audio → Transkript (whisper.cpp/faster-whisper) → Kategorisierung + (Ollama/OpenRouter) → strukturierte Ablage, lokal und optional Nextcloud +- FreeSWITCH nimmt Anrufe über den SIP-Trunk der Praxis an +- Leitstand (`pipe/server.py`): Live-Kanban-Board, Status-Ampeln, Verlauf + +### Zuverlässigkeit & Sicherheit +- Notfall-Sicherheitsnetz: deterministischer Code-Check gegen die im Prompt + genannten Notfall-Symptome (Atemnot, Brustschmerz, Bewusstlosigkeit, + starke Blutung) — eskaliert unabhängig vom LLM, nur nach oben +- Bekannte Whisper-Halluzinationen (z. B. "Untertitelung des ZDF") werden + gefiltert statt als echtes Anliegen kategorisiert +- Failover auf lokales Ollama-Modell, wenn OpenRouter ausfällt oder + zeitüberschreitet +- Unveränderliches, append-only Audit-Log (`telefon/audit.log`, + `chflags uappnd`) — zusätzlich zum rotierenden UI-Verlauf +- Automatische Aufbewahrungsfrist (`LOESCHFRIST_TAGE`) ohne Cron — + `pipe.watch` prüft selbst alle 24h; unbearbeitete Anrufe bleiben immer + unangetastet +- E-Mail-Extraktion mit deterministischer @-Reparatur (Whisper transkribiert + gesprochenes "at" manchmal als Punkt) — als Vermutung markiert, nicht + stillschweigend übernommen + +### Leitstand-UI +- Sicher-Modus: Rufnummern (Karten + Verlauf-Log) blurren für + Screenshots/Aufnahmen +- Notfall-Alarm: pulsierender Rahmen, Banner, minütlicher Ton +- Verbindungsverlust-Anzeige, wenn der Server nicht mehr antwortet +- Modell-Dropdown: Kategorisierungs-Backend/-Modell live umschaltbar + (Ollama lokal oder OpenRouter zum Testen), inkl. Dauer/Tokens/Kosten im + Live-Log +- Bewertungssystem: Melde-Button pro Karte, Freitext-Modal mit + Kategorie/Status-Auswahl, Export als JSONL-Trainingsdaten +- Kartendesign überarbeitet (weniger Badges, klarere Struktur), Logo, + zweizeiliger Header, Footer mit Projekt-/Spendenlink + +### Bekannte offene Punkte (nicht Teil von v1.0) +- Ansage-Text erfüllt die Pflichtangaben für den echten Praxisbetrieb noch + nicht (Notruf-Hinweis, Aufnahme-Einwilligung) — siehe README +- Verschlüsselung at rest noch nicht umgesetzt +- Monitoring/Alerting bei Diensteausfall nur über die Leitstand-Ampel +- Echtzeit-Sprachdialog (statt Aufnahme+Nachbearbeitung) bewusst nicht in + dieser Version — größere Architekturänderung (Streaming-STT, Live-Audio + über FreeSWITCH, schnelles Dialog-LLM), siehe Diskussion in der + Projekt-Historie diff --git a/README.md b/README.md index ff317ef..32aa600 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Logpy:AgentOne +**v1.0.0** — siehe [CHANGELOG.md](CHANGELOG.md) + Praxis-Telefon-Agent — nimmt Anrufe (Sprachnachrichten) einer Hausarztpraxis entgegen, **transkribiert** sie lokal, **kategorisiert** das Anliegen und **legt** das Ergebnis strukturiert ab (lokal und optional in Nextcloud).