Release Notes — 26. April 2026
Vor 19 Tagen haben wir ein großes Release mit dem Diagnosemodul und der Prosodie-Analyse veröffentlicht. Seitdem hat das Team weitere 295 Änderungen vorangetrieben — und das sind keine kleinen. In diesem Release können Sie eine Ad-hoc-Sitzung aufnehmen, bevor der Patient überhaupt eintrifft, Ihre Notizen fügen sich mit der KI-Arbeit und der Transkription in drei Spalten nebeneinander zusammen, das öffentliche Therapeutenprofil ist mit voller Kraft zurück, und die mobile App hat jetzt ein Dark Theme. Unter der Haube haben wir eine SOC-2/HIPAA-Härtung, ein DDD-Audit und eine vollständige Pseudonymisierung von Patientendaten auf der KI-Seite durchgeführt.
💚 Danke an das Team, das dieses Release vorangetrieben hat — durch Berichte, Tests, Code und Geduld:
- Bohdan — Ad-hoc-Sitzungen, Paketlimits und Nachfrist, DDD-Audit, KSeF-Rechnungen, Dutzende von Fehlerbehebungen (SCRUM-756, 815, 1267, 1268, 1276, 1280-1290, 1293, 1309-1316, 1353-1357, 1366, 1388, 1391, 1392)
- Bartek — 3-Wege-Merge, 9 separate KVT-Analysen, kognitive Verzerrungen, Paket-Sitzungszähler (SCRUM-1266, 1320, 1338, 1368-1375, 1385, 1386)
- Ewa Cylwik / Ewa — Beck-PDF, zweite AITS-Sitzung für denselben Patienten, mobiles Dark Theme und Leerzustand, mehrsprachiges Mailing, UI-Farben, Eindeutigkeit der Patienten-E-Mail (SCRUM-883, 898, 902, 1089, 1094, 1297, 1304, 1307, 1319)
- Joanna — wiederkehrender Kalender, Ausblenden von Zoom, rechtzeitige Stornierung, Selbstreflexion statt Bewertung der Sitzungsqualität (SCRUM-789, 874, 918, 919, 1005)
- Zusätzlich Bartlomiej für kognitive Verzerrungen und den Sitzungszähler, der zur Grundlage des neuen Abonnementmodells wurde
1. ⚡ Ad-hoc-Sitzungen — Aufnahme, bevor der Patient eintrifft
Wenn Sie schon einmal schnell einen Rekorder einschalten mussten — weil ein Patient unangemeldet hereinkam, weil es eine einmalige Konsultation ist, weil es ein Treffen mit jemandem ist, der noch nicht in Ihren Unterlagen erfasst ist —, löst das neue Modul für Ad-hoc-Sitzungen genau diesen Schmerzpunkt.
- Schnellaufnahme-Schaltfläche im Web-Dashboard, in der PWA auf dem Telefon und in der MAUI-App — ein Klick startet die Aufnahme, noch bevor Sie die Daten des Patienten ausfüllen
- AdHoc-Posteingang — ein dedizierter Bereich für nicht zugeordnete Aufnahmen, bis Sie entscheiden, wohin sie gehören
- AssignPatientModal — die Aufnahme einem bestehenden Patienten zuweisen oder direkt aus dem Posteingang einen neuen erstellen
- Fortsetzen / Raum erneut betreten — eine früher begonnene Sitzungsaufnahme abschließen
- Verwaiste Aufbewahrung + Auto-Abschluss — Sitzungen, die X Tage lang nicht zugewiesen sind, schließen sich automatisch, damit der Posteingang übersichtlich bleibt
- Video „Ohne Patient beginnen” — im LiveKit-Raum können Sie eine Sitzung beginnen, ohne mit einem bestehenden Patienten zu kollidieren; das AdHoc landet anschließend im Posteingang
Der Bereich ist hinter dem PromptyAI-Code in den Einstellungen verborgen — standardmäßig deaktiviert, für Nutzer, die zunächst den Rest sehen möchten. Entworfen und umgesetzt von Bohdan.
2. 📊 Paketlimits und Nachfrist — transparentes Abonnement
Die Abonnements haben eine vollständige Überarbeitung erhalten. Die alten Starter/Standard-Pläne sind deaktiviert, ersetzt durch Start / Practice / Pro — dimensioniert für das tatsächliche Sitzungsvolumen pro Monat.
- Sitzungszähler auf dem Dashboard — sehen Sie, wie viele Sitzungen Sie diesen Monat genutzt haben und wie viele in Ihrem Paket verbleiben
- Limit-E-Mails — automatische Benachrichtigungen bei 80 % und 100 % Auslastung
- Upgrade-Hinweis — wenn Sie das Limit erreichen, erhalten Sie einen sanften Vorschlag zum Planwechsel statt einer harten Sperre
- Preise von Stripe + Rabatte — der Preis, den Sie in der App sehen, kommt direkt von Stripe mit angewendeten aktiven Rabatten (der Betatester-Code läuft nicht ab)
- Native Abonnementkündigung — direkt in der App kündigen, keine E-Mail an den Support nötig
- 14-tägige Nachfrist — wenn eine Zahlung fehlschlägt, erhalten Sie 14 Tage lang Zugriff nur auf Ihr eigenes Konto (keine Patientenvorschauen), mit E-Mails an Tag 0 und Tag 13. Ein echter Datenverlust tritt erst nach zwei Wochen ein
- Abonnement-Banner — übersichtliche Nachricht oben in der App, ohne leere Leiste zwischen Menü und Hinweis
- Sitzungslimit-Simulator — im PromptyAI-Panel gibt es einen Testmodus, in dem Sie sehen können, wie sich die App bei einem vollen Paket verhält
Gemeinsame Arbeit von Bartlomiej (Zähler und Limits, SCRUM-1266) und Bohdan (Abonnement, Nachfrist, Upgrade-Hinweis — SCRUM-756, SCRUM-1366, SCRUM-1391, SCRUM-1392).
3. 📝 3-Wege-Merge für Notizen — Therapeut, KI und Transkription in einer Ansicht
Dies ist eine der größten architektonischen Änderungen unter der Haube, aber die Auswirkung auf die tägliche Arbeit ist deutlich sichtbar: Jedes Notizenfeld (Notizen, Sitzungszusammenfassung, Konzeptualisierungsabschnitte) merkt sich jetzt separat, was der Therapeut geschrieben hat, was die KI generiert hat und was vom Diktiergerät / der Transkription stammt.
- Notizen 3-Wege — die Notizansicht zeigt drei Quellen nebeneinander: Ihren Text, KI-Vorschläge und automatische Transkription, und Sie wählen, was Sie behalten
- Sitzungszusammenfassung 2-Wege + JSON-Merge — in der Sitzungszusammenfassung führen Sie Ihre Arbeit mit der KI-Analyse zu einem einzigen kohärenten Dokument zusammen
- Zeitstempel-Trenner — wenn Sie ein KI-Feld manuell bearbeiten, hinterlässt das System eine sichtbare Spur, wann und von wem dieses Fragment stammt
- [KI]-Markierung ab der ersten Generierung — Ihre Felder vermischen sich nicht mit generierten
- SourceBadge — farbige Kapsel mit Symbol, die zeigt, woher ein Fragment stammt, statt GROSSSCHREIBUNG-Text
- Ersetzung von KI-Abschnitten statt Anhängen — wenn Sie eine erneute Generierung der Zusammenfassung anfordern, ersetzt die KI den Abschnitt, statt eine weitere Kopie darunter zu stapeln
Entworfen und umgesetzt von Bartek (SCRUM-1320, SCRUM-1368-1375). Darunter: vollständige i18n in 8 Sprachen und neue DDD-Kontexte.
4. 🔍 KVT-Analysen — 9 separate Berichte auf Abruf
Die alte monolithische „KVT-Analyse generieren” wurde in 9 separate Elemente aufgeteilt, die der Therapeut ausführt, wenn er sie tatsächlich benötigt. Weniger Warten, mehr Kontrolle.
- 9 unabhängige Analysen — jede wird separat, auf Abruf generiert
- Prompt-Bearbeitungszahnrad — klicken Sie auf das Zahnrad neben jeder Analyse, um den von der KI verwendeten Prompt zu sehen/zu ändern
- Bereich KVT-ANALYSEN hinter dem PromptyAI-Code — der Bereich ist nach Eingabe des Codes in den Einstellungen verfügbar, für Nutzer, die neue Funktionen testen
Kognitive Verzerrungen haben eine eigene Ansicht erhalten (gemeldet von Bartlomiej, SCRUM-1385):
- Datenansicht statt eines KI-Berichts — Sie sehen konkrete, von der KI markierte Zitate aus der Transkription, keine daraus generierte Erzählung
- Alle Zitate nach dem Ausklappen — kein Datumsbereichsfilter, das Ausklappen zeigt alles
- Verfügbar im Hauptmenü — unter Konzeptualisierung v2
Der alte Prompt COGNITIVE_DISTORTIONS_INVENTORY wurde entfernt (SCRUM-1386).
5. 🌐 Öffentliches Therapeutenprofil — vollständige Überarbeitung mit Bearbeitungs-Schubladen
Das öffentliche Profil unter der Marke aitherapy.support wurde vollständig neu aufgebaut.
- 3 neue Bearbeitungs-Schubladen — Biografie, Spezialisierungen, Kontaktdaten werden in eleganten Seitenpanels bearbeitet
- Eigentümer-Bearbeitungsmodus — wenn Sie Ihr eigenes Profil im eingeloggten Zustand ansehen, sind die Bearbeitungsschaltflächen sofort griffbereit
- Berufserfahrung in Jahren — neues Feld
YearsOfExperience, sichtbar im öffentlichen Profil - Farb-Rebranding — Salbei-/Lavendel-Palette unter der Marke aitherapy.support
- Abschnitt „Ihre Privatsphäre” entfernt — er war überflüssig; die DSGVO steht in der Fußzeile
- Lucide-Symbole — moderne, klare Symbol-Typografie
Darunter wurde ein öffentlicher Endpunkt GET /api/public/therapists hinzugefügt — er gibt Therapeuten mit aktiven öffentlichen Profilen zurück. Grundlage für ein Therapeutenverzeichnis.
6. 🎥 Videositzungen — PiP, Kamerawechsel, behobene Hintergrundunschärfe
Das Video hat eine Reihe von Fehlerbehebungen erhalten, die jeder Therapeut bemerken wird, der Sitzungen über die App durchführt.
- PiP / Minimieren — den Videoraum zu einem schwebenden Mini-Player minimieren und Notizen in einem anderen Tab prüfen, ohne die Verbindung zu unterbrechen. Mikrofon und Kamera arbeiten weiter
- Kameras tauschen — mit einem Klick wechseln, wer in der Hauptansicht und wer in der Miniaturansicht ist
- PiP-Fortsetzung — bei der Rückkehr aus der Minimierung überspringen Sie die Lobby (PreJoinLobby) und springen direkt ins Gespräch
- Audio pro Teilnehmer für die Diarisierung — die Transkription trennt Sprecher auch im PiP-Modus
- Hintergrundunschärfe behoben — CSP blockierte MediaPipe WASM; die Unschärfe funktioniert jetzt mit einem Klick
- Übersichtlichere AITS-Sitzungsoberfläche — der KI-Assistent verschwand aus der Symbolleiste, weniger visuelle Ablenkung
- PiP-Overlay klickbar —
pointerEvents:noneundoverflow:hiddenentfernt, PiP-Schaltflächen reagieren auf Klicks - Schaltfläche „Sitzung beitreten” — wurde durch eine CSS-Überschreibung verborgen, jetzt sichtbar
- Veralteter Closure in handleMaximize — behoben; das Maximieren aus PiP wirft keinen Fehler mehr
7. 📐 Beck-v2-Konzeptualisierung und ABC — PDF, Versionsumschalter, Prompt-Bearbeitung
- Beck- und ABC-v2-PDF — Formatierungsfehler behoben und automatische Aufnahme in die Sitzungsmaterialien (gemeldet von Ewa, SCRUM-1297)
- Beck-PDF — Abschnitte nur mit Rahmen, farbige Spezialisierungen, saubere Initialen, SVG-Pfeil zwischen Abschnitten
- ABC-v1/v2-Umschalter in Konzeptualisierung v2 — wählen Sie, welche ABC-Version angezeigt wird
- Prompt-Bearbeitungszahnrad in ABC v2 — den KI-Prompt im Tab ABC v2 ändern
- PDF-Export für KI-Analysen und ABC pro Sitzung — einzelne Analysen werden separat exportiert
- Pluralisierung der ABC-Labels in 8 Sprachen — die Konzeptualisierungstabelle hat korrekte Pluralformen
- Behebung leerer ABC-Spalten — das Backend gibt jetzt korrekte Plural-Eigenschaftsnamen zurück
8. 🧾 Rechnungen und KSeF — Zahlungsauswahl + Zustandsautomat
Das Rechnungssystem wurde für die Konformität mit KSeF (dem polnischen nationalen E-Invoicing-System) überarbeitet.
- Rechnung aus ausgewählten Zahlungen — wählen Sie Zahlungen aus, und das System erstellt daraus eine einzige Rechnung (Snapshot + Payment-Fremdschlüssel)
- Einstiegspunkt „Rechnung ausstellen” in der Finanzansicht des Therapeuten — schneller Zugriff vom Dashboard
- Positionsentfernung im Rechnungsausstellungs-Modal — Fehler direkt korrigieren
- Trennung von KSeF-Dev/Prod — Sandbox und Produktion arbeiten mit getrennten Anmeldedaten
- Rechnungs-Zustandsautomat (SCRUM-1357, Bohdan) — Entwurf → Ausgestellt → Gesendet → Storniert, mit einer DB-Einschränkung für unzulässige Übergänge
- AE KsefToken — der KSeF-Token ist mit Always Encrypted verschlüsselt
Gemeinsame Arbeit von Bohdan (SCRUM-1357, SCRUM-1388).
9. 📅 Kalender, wiederkehrende Sitzungen und Standorte
Der Wochen- und Wiederholungskalender hat Dutzende kleiner, aber sichtbarer Verbesserungen erhalten — die meisten gemeldet von Joanna und Ewa.
- Sitzungen ab 22:00 Uhr — waren im Wochenraster unsichtbar, werden jetzt bis zum Ende des Tages angezeigt
- Alle Stunden im Raster für wiederkehrende Slots (SCRUM-874, Joanna)
- Rechtzeitig stornierte Sitzung — wird nicht als „Unbezahlt” angezeigt (SCRUM-918, Joanna)
- Wiederholungslabel neben dem wiederkehrenden Slot (SCRUM-919, Joanna) — Sie sehen „wöchentlich”, „zweiwöchentlich” neben jeder sich wiederholenden Sitzung
- Ausblenden der Zoom-Integration aus der UI (SCRUM-789, Joanna) — Zoom wird als Videokanal nicht mehr unterstützt
- Sitzungs-Popover im Kalender — verschwindet nicht mehr außerhalb des Bildschirms
- TherapistAvailability — automatisches Speichern bei jeder Änderung (Debounce 800 ms), keine Speicherschaltfläche mehr nötig
- AddSessionModal — Option „Sitzung außerhalb der Verfügbarkeitszeiten erstellen” — Ausnahmen können einen Slot erzwingen
- Status „Nicht erschienen” (NoShow=5) — neuer Status, einstellbar auch von abgeschlossenen oder stornierten Sitzungen aus
- RecurringSessionsCalendar — Übersichtskacheln über der Legende und dem Raster
Therapeutenstandorte haben pro Standort Online-Meeting-Kanäle erhalten:
- Vor-Ort-Modus — Adress- und Stadtfelder für Präsenzstandorte
- Umschalter Vor-Ort/Online statt einer Checkbox — klarere Moduswahl
- Online-Kanal pro Standort — verschiedene Standorte können unterschiedliche Kanäle haben (AITS, Google Meet, externer Link), automatisch auf Sitzungen übertragen
- Dauerhafte Meeting-Räume pro Patient — jeder Patient hat einen dauerhaften AITS-Raumlink und einen separaten externen Link, sichtbar in den Patienteneinstellungen
- Löschung von Standorten — behoben (verschwand aus der DB, blieb aber in der UI-Liste)
Und schließlich der Meeting-Typ in wiederkehrenden Sitzungen — behobene Übertragung von MeetingType und MeetingLink von der Konfiguration der wiederkehrenden Serie auf jede generierte Sitzung und auf Erinnerungs-E-Mails (SCRUM-902, Ewa).
10. 📱 Mobile App — Dark Theme, AdHoc-Posteingang, Feinschliff
Mobile wechselte zu Version 1.5.0 (Build 18) mit einer Fülle nutzersichtbarer Änderungen und einigen Signierungsanpassungen für App Store / Play Store.
- Dark Theme — vollständiger Dark Mode mit lesbaren Gruppenüberschriften (SCRUM-1089, Ewa + SCRUM-815)
- Konfigurierbare Erinnerungen — wählen Sie, wann Sie eine Sitzungsbenachrichtigung möchten
- Mobile Erinnerung 15 Min. — Erinnerung 15 Minuten vor der Sitzung + Warnung, wenn Systembenachrichtigungen deaktiviert sind (SCRUM-815, Bohdan)
- Leerzustand für die Sitzungsliste — statt eines leeren Bildschirms ein umfangreicheres Onboarding (SCRUM-1094, Ewa)
- Auto-Refresh-Banner — wenn die App ein Update erkennt, zeigt sie ein einladendes Aktualisierungs-Banner
- AdHoc-Posteingang + AssignPatient + Schnellstart in MAUI (SCRUM-1289, Bohdan)
- PWA-Mobile-Schnellstart für Ad-hoc-Sitzungen (SCRUM-1286, Bohdan)
- Responsive Web-Ansicht für das Telefon — Desktop unverändert, auf dem Telefon passt sich das Layout dem schmalen Bildschirm an
- Deep-Link-Handler in iOS — nutzt BindingContext, URL-Schema-Registrierung
- iOS NSLocation-Zweckstrings — Behebung von ITMS-90683 (der App Store hatte einen Build ohne diese abgelehnt)
- Android AAB — expliziter jarsigner-Schritt
- Materialien für App Store Connect und Google Play — vollständiges Paket plus WCAG-2.2-Audit
11. 🔐 Sicherheit: SOC 2 / HIPAA, MFA, vollständige KI-Pseudonymisierung
Unter der Produktebene haben wir eine vollständige SOC-2- und HIPAA-Härtung sowie ein DDD-Audit mit fünf konkreten Ergebnissen durchgeführt.
- MFA-Reverifizierung bei kritischen Vorgängen — bei sensiblen Aktionen (Passwortänderung, Datenexport) bestätigen Sie erneut per MFA
- Backup-Codes für MFA — Notfallcodes, falls Sie Ihr Telefon verlieren
- IAnonymizedLlmGateway (SCRUM-1353, Bohdan) — alle KI-Modellaufrufe laufen jetzt über ein pseudonymisierendes Gateway. Namen, Daten, Orte werden durch Pseudonyme ersetzt, bevor sie die App verlassen; die KI erhält nur die anonymisierte Version
- Pseudonymisierung von E-Mail-/SMS-Benachrichtigungen (SCRUM-1354) — auch Nachrichtenvorlagen geben beim Versenden keine Patientendaten preis
- OAuth-Tokens Google/Zoom mit Always Encrypted verschlüsselt (SCRUM-1355) — Integrationszugriffstoken sind spaltenverschlüsselt
- Flag Patient.PendingConsent (SCRUM-1356) — Patienten ohne aktive Einwilligung erhalten einen Durchsetzungsablauf + Frontend-Abzeichen
- Rechnungs-Zustandsautomat (SCRUM-1357) — Rechnungsstatus sind in ungültigen Richtungen unveränderlich, auf DB-Ebene durchgesetzt
- Audit-Unveränderlichkeit + Nutzer-Snapshot in 3 Audit-Tabellen — das Aktionsprotokoll kann nachträglich nicht verändert werden
- DeanonymizationAuditLog — jede Nutzung von Patientendaten nach Deanonymisierung wird zusammen mit dem E-Mail- und Anzeigenamen-Snapshot des ausführenden Nutzers protokolliert
- Fest codierte Geheimnisse entfernt — alle Schlüssel und Passwörter aus appsettings.json wurden in den Azure Key Vault verschoben
- Always Encrypted für alle Nutzertextdaten (ADR-0018) — architektonische Richtung genehmigt; weitere Tabellen wandern im nächsten Release
- ISO/IEC-Konformitätslückenanalyse — 95 Lücken über 9 Standards hinweg erfasst, mit einem Behebungsplan
Gestützt durch ein vollständiges DDD-Audit (Sitzungen 1-8, Phasen 1-6) — Umstrukturierung der Domänenkontexte, Architekturdokumentation, ADRs, Mermaid + Tests, Playbooks, Confluence-Integration.
12. 👤 Patientenportal — Analysen in Zielen, Materialien, bessere Vorschau
- Beck-Konzeptualisierung im Tab „Ziele” des Patienten — wenn Sie die Konzeptualisierung veröffentlichen, sieht der Patient sie in seinem Portal
- Veröffentlichung von Analysen im Patientenportal + Benachrichtigungspräferenzen (SCRUM-1338, Bartlomiej) — steuern Sie, was und wann der Patient erhält
- Portal-PDF-Vorschau —
iframestattembed, CSP erlaubtblob:(PDFs laden) - Vorschau des Patientenportals aus der Sicht des Therapeuten — sehen Sie, was der Patient sieht (Chrome im Wrapper, Dashboard 1:1)
- Sitzungsmaterialien in Azure Blob Storage — SessionMaterial als Blob, kein lokales Dateisystem mehr
- Abschnitt Einwilligung/Dokumente + Registrierungsquelle in den Patienteneinstellungen
- Globale Eindeutigkeit der Patienten-E-Mail (SCRUM-898) — ein zweiter Patient mit derselben E-Mail erhält einen 409 und das Modal schließt sich (SCRUM-898, Ewa)
- Seeder für Benachrichtigungsvorlagen für SK, CA, RU, UK, LT (SCRUM-883, Joanna) — vollständiges mehrsprachiges Mailing
- Resolver-Fallback auf Plattformstandard — wenn ein Therapeut die Vorlage nicht überschrieben hat, wird die mehrsprachige Standardvorlage gesendet (SCRUM-883)
13. 🎙️ Transkription — zuverlässige Aufnahme, Anhängen, Echtzeit mit Diarisierung
- Anhängen an bestehende Transkription — die Aufnahme in derselben Sitzung fortsetzen; Segmente werden angehängt (die Absicht übersteht einen Seiten-Reload)
- Audio pro Teilnehmer für die Diarisierung — die Video-Transkription trennt Sprecher auf unabhängigen Spuren
- Transkription übersteht PiP — das Minimieren des Raums unterbricht die Aufnahme nicht
- Transkriptionssprache aus den Sitzungseinstellungen — STT verwendet die für den Patienten eingestellte Sprache
- Auto-Refresh für die Transkription bei Fokus / Sichtbarkeitswechsel / Rückkehr aus dem Video
- Bestätigung beim Stoppen der Aufnahme < 2s — Schutz vor einer leeren WAV-Datei durch einen versehentlichen Klick
- Abzeichen „Wird gesendet” in der Sitzungsliste — Sie sehen, wenn eine Aufnahme gerade hochgeladen wird
- Echtzeit mit Diarisierung in der Videositzung — startete zuvor nicht; funktioniert jetzt
- OPFS-Backup + 48-kbps-Opus — die Aufnahme wird zusätzlich lokal in OPFS als Fallback gespeichert, Audioparameter vereinheitlicht
- SAS-Direkt-Upload für Audio (SCRUM-1276, Bohdan) — Audio geht direkt über eine SAS-URL an Azure, unter Umgehung des Backends
- m4a nativ zu Azure Speech — m4a wird nativ verarbeitet, keine Konvertierung
- Formaterkennung anhand von Magic Bytes (SCRUM-1311, Bohdan) — bei Content-Type=
application/octet-streamwird das Format anhand des Dateiinhalts erkannt - Hub ohne DB-Text — der SignalR-Realtime-Hub speichert Text nicht mehr in der DB; finishPending nutzt Multipart-POST wie MAUI
- SignalR-1006-Fix — skipNegotiation entfernt, damit Azure SignalR funktioniert + Keep-Alive-Feinabstimmung
- [KI]-Markierung ab der ersten Generierung + zuverlässige Markierungssuche
14. 💬 Benachrichtigungen, Patienteneinstellungen, kleine UX-Verbesserungen
- NotificationTemplatesAdmin — HTML/Text-Umschalter im E-Mail-Editor
- NotificationSettings — die E-Mail-Vorschau rendert HTML mit Fallback
- PromptEditModal — neu aufgebaut: Tabs, Modellauswahl, erforderliche Versionsnamen
- Zurücksetzen des Hide_dev_ui-Flags beim Abmelden — Entwicklerflags bleiben nicht über Sitzungen hinweg bestehen
- Testpatient Ann Fauler — englisches 1:1-Pendant zur polnischen Anna Pełnialska für rein englischsprachige Demos
- Umschalter für den Präsentationsmodus in der Dev-UI — schneller Wechsel in den Präsentationsmodus
- Fehlerbericht — Jira-Anhänge + Reporter-Label und zentrierte Schaltfläche „Absenden”
- Auth-Refresh-Schleife behoben — Anfragen abbrechen und bei 401 zur Anmeldung zurückkehren
- Banner „Server startet” — beim Kaltstart (Scale-to-Zero) zeigen wir einen Hinweis statt einer leeren Seite
- Sitzungsbewertungsskala — Selbstreflexion statt Qualitätsbewertung + Haftungsausschluss (SCRUM-1005, Joanna)
- Farbe der Schaltfläche „Minimieren” auf Kobaltviolett geändert (SCRUM-1307, Ewa)
- Farbe des Labels „Transkription” von Rot zu Grün geändert (SCRUM-1304, Ewa)
- „Jetzt aufnehmen” → „AdHoc-Sitzung aufnehmen” — präziserer Schaltflächenname
- Sandbox mit grünem Band in der oberen linken Ecke + Präfix
[SANDBOX]im Titel — um Umgebungsverwechslungen zu vermeiden, plus ein wiederholbarer PROD → Sandbox-Klon (Azure IaC + Skripte)
✅ QA-Checkliste — was nach dem Deploy zu prüfen ist
| Feature | Prüfen |
|---|---|
| Ad-hoc-Sitzung — Schnellaufnahme | Klicken Sie auf Schnellaufnahme im Dashboard oder in der PWA — die Aufnahme startet sofort, die Sitzung landet im AdHoc-Posteingang |
| AssignPatient im AdHoc-Posteingang | Öffnen Sie eine Ad-hoc-Aufnahme — Sie können einem bestehenden Patienten zuweisen oder einen neuen erstellen |
| Paketlimit | Das Dashboard zeigt den Sitzungszähler für den aktuellen Monat und wie viele im Paket verbleiben |
| Nachfrist nach fehlgeschlagener Zahlung | Abonnement-Simulator in PromptyAI — erzwingen Sie eine fehlgeschlagene Zahlung, Sie erhalten 14 Tage lang Zugriff nur auf das Konto |
| 3-Wege-Merge-Notizen | In den Sitzungsdetails zeigt das Feld Notizen drei Quellen nebeneinander (Therapeut / KI / Transkription); Sie können wählen, was Sie behalten |
| 9 KVT-Analysen | Der Tab KVT-Analysen zeigt 9 separate Elemente; jedes wird auf Abruf generiert; jedes hat ein Prompt-Bearbeitungszahnrad |
| Öffentliches Profil — Schubladen | Öffnen Sie Ihr eigenes öffentliches Profil im eingeloggten Zustand — die Bearbeitungs-Schubladen für Biografie, Spezialisierung, Kontakt sind sichtbar |
| Video-PiP | Klicken Sie während einer Videositzung auf Minimieren — das Fenster wird zum Mini-Player, das Mikrofon funktioniert weiter, Sie kehren ohne Lobby zurück |
| Hintergrundunschärfe | Aktivieren Sie in der Video-Lobby die Hintergrundunschärfe — funktioniert sofort, keine CSP-Fehler |
| Beck-Konzeptualisierungs-PDF | Generieren Sie das Konzeptualisierungs-PDF — es erscheint auch in den Sitzungsmaterialien |
| ABC-v1/v2-Umschalter | In Konzeptualisierung v2 können Sie die ABC-Quelle zwischen Version 1 und 2 umschalten |
| Rechnung aus ausgewählten Zahlungen | Wählen Sie einige Zahlungen aus und klicken Sie auf „Rechnung ausstellen” — es wird eine einzige Rechnung aus dem Snapshot erstellt |
| Wiederkehrende Sitzung mit Google Meet | Die zweite und dritte Sitzung der Serie haben Google Meet korrekt eingestellt, und die E-Mail enthält den richtigen Link |
| Sitzungen ab 22:00 Uhr | Der Wochenkalender zeigt Sitzungen, die für 22:00 Uhr oder später geplant sind |
| Status „Nicht erschienen” | Bei einer abgeschlossenen / stornierten Sitzung können Sie den Status auf „Nicht erschienen” ändern |
| Mobiles Dark Theme | Wechseln Sie in der mobilen App zum Dark Theme — die Gruppenüberschriften sind lesbar |
| AdHoc-Posteingang in Mobile | Mobile zeigt den Ad-hoc-Posteingang und erlaubt die Zuweisung eines Patienten |
| MFA-Reverifizierung | Bei der Passwortänderung fragt die App erneut nach MFA |
| KI-Pseudonymisierung | In den Protokollen sehen Sie, dass Patientendaten als Pseudonyme an die KI gehen |
| Sitzungsmaterialien als Blob | Laden Sie eine Datei in die Sitzungsmaterialien hoch — sie landet in Azure Blob Storage, nicht auf der lokalen Festplatte |
| Globale Eindeutigkeit der Patienten-E-Mail | Fügen Sie einen zweiten Patienten mit derselben E-Mail hinzu — Sie erhalten einen 409, und das Modal schließt sich |
| Banner „Server startet” | Nach einer längeren Inaktivitätsperiode zeigt der App-Einstieg das Banner statt einer leeren Seite |
🛠️ Was wir behoben haben — das Kleingedruckte
Zusätzlich zu den großen Funktionen wurden ~80 Berichte von Testern und Nutzern behoben. Höhepunkte:
- PiP-Overlay war nicht klickbar — behoben
- Veralteter Closure in handleMaximize — das Maximieren aus PiP wirft keinen Fehler mehr
- PiP behält die Verbindung — zuvor löste
room.disconnect()beim Übergang zwischen Vollbild und PiP aus - Schaltfläche „Sitzung beitreten” wurde durch eine CSS-Überschreibung verborgen — aufgedeckt
- Zweite AITS-Sitzung für denselben Patienten (SCRUM-1319, Ewa) — UNIQUE INDEX auf
Session.VideoInviteTokenentfernt - Sitzungsnummerierung in der Konzeptualisierung überspringt stornierte (SCRUM-1267, Bohdan)
- Null-sicherer Payment-Zugriff in GetSessionDetailsAsync (SCRUM-1268, Bohdan)
- Testsitzungskollision von Anna Pełnialska mit Jan um 14:00 Uhr — im Seeder behoben
- Dashboard-Verlangsamung — null-sicheres Mapping in GetTodaySessionsAsync und GetSessionDetailsAsync
- Auto-Refresh nach Ende der Mikrofonaufnahme — funktioniert
- Batch-Fallback überschreibt keinen Text aus vorherigen Aufnahmen und blockiert die UI nicht mit dem Status „In Verarbeitung”
- Transkriptionssprache aus den Sitzungseinstellungen — STT beachtet die Präferenz des Patienten
- CSP — Zulassen von
*.clarity.ms,blob:in connect-src, Analytics in script-src - Auth-Refresh-Schleife — Abbruch von Anfragen nach 401 und Rückkehr zur Anmeldung
- CSP MediaPipe WASM — die Hintergrundunschärfe funktioniert
- DEV/SANDBOX-Band auch auf der Azure-FQDN, nicht nur auf der benutzerdefinierten Domain
- Falscher Toast „Transkription fehlgeschlagen” beim Betreten der Sitzung — entfernt
- Toast statt rotem Banner bei fehlgeschlagener Transkription + Schaltfläche „Resample” entfernt
- Echtzeit mit Diarisierung in der Videositzung — startet ordnungsgemäß
- KI-Streaming — AbortController pro Handler statt gemeinsam genutzt (
BodyStreamBuffer was aborted) - Nginx non-root + Azure Container Apps — mehrere Iterationen, um es zum Laufen zu bringen
- Verteilte Sperre (sp_getapplock) — Startup-Migrationen kollidieren nicht mehr bei parallelen Deploys
- DbUpdateConcurrencyException im Batch-Transkriptions-Poller (SCRUM-1313, Bohdan)
- BlobNotFound als erwarteter Zustand (SCRUM-1314, Bohdan)
- Nicht-JSON-Payloads des Stripe-Webhooks (Scanner / Bots) — werden stillschweigend behandelt (SCRUM-1315, Bohdan)
- Audioformaterkennung anhand von Magic Bytes (SCRUM-1311, Bohdan)
- Widerstandsfähiger Audio-Upload + defensiver Content-Type (SCRUM-1293, Bohdan)
- FK-Migration ActiveEmbeddingModelId → ON DELETE NO ACTION
- Dev-Client-Deploy — CACHE_BUST=
github.shaerzwingt den Frontend-Rebuild
Dies ist das größte, dichteste Release dieses Frühlings. Wenn Ihnen ein Feature bekannt vorkommt — dann liegt das daran, dass es Ihre Anfrage oder Ihr Ticket war. Danke für jeden Bericht und jeden Screenshot.
Artikel erstellt vom Therapy-Support-Team