Release Notes — 26. april 2026
For 19 dage siden lancerede vi en stor udgivelse med diagnosemodulet og prosodianalyse. Siden da har teamet skubbet yderligere 295 ændringer — og de er ikke små. I denne udgivelse kan du optage en ad hoc-session, før patienten overhovedet ankommer, dine notater fletter med AI-arbejde og transskription side om side i tre kolonner, den offentlige terapeutprofil er tilbage med fuld styrke, og mobilappen har nu et mørkt tema. Under motorhjelmen har vi gennemgået en SOC 2/HIPAA-hærdning, en DDD-revision og fuld pseudonymisering af patientdata på AI-siden.
💚 Tak til teamet, der drev denne udgivelse frem — gennem rapporter, tests, kode og tålmodighed:
- Bohdan — ad hoc-sessioner, pakkegrænser og henstandsperiode, DDD-revision, KSeF-fakturaer, snesevis af rettelser (SCRUM-756, 815, 1267, 1268, 1276, 1280-1290, 1293, 1309-1316, 1353-1357, 1366, 1388, 1391, 1392)
- Bartek — 3-vejs-flet, 9 separate KAT-analyser, kognitive forvrængninger, pakkesessionstæller (SCRUM-1266, 1320, 1338, 1368-1375, 1385, 1386)
- Ewa Cylwik / Ewa — Beck-PDF, anden AITS-session for samme patient, mørkt tema på mobil og tom tilstand, flersproget udsendelse, UI-farver, unikhed af patient-e-mail (SCRUM-883, 898, 902, 1089, 1094, 1297, 1304, 1307, 1319)
- Joanna — tilbagevendende kalender, skjul Zoom, rettidig aflysning, selvrefleksion i stedet for vurdering af sessionskvalitet (SCRUM-789, 874, 918, 919, 1005)
- Plus Bartlomiej for kognitive forvrængninger og sessionstælleren, som blev grundlaget for den nye abonnementsmodel
1. ⚡ Ad hoc-sessioner — optag før patienten ankommer
Hvis du nogensinde har skullet tænde en optager i en fart — fordi en patient dukkede uanmeldt op, fordi det er en engangskonsultation, fordi det er et møde med nogen, der endnu ikke er i dine journaler — så løser det nye ad hoc-sessionsmodul hele det problem.
- Hurtig optageknap i webdashboardet, i PWA’en på telefonen og i MAUI-appen — ét klik starter optagelsen, før du overhovedet har udfyldt patientens data
- Ad hoc-indbakke — en dedikeret bakke til utildelte optagelser, indtil du beslutter, hvor de skal hen
- AssignPatientModal — tildel optagelsen til en eksisterende patient eller opret en ny direkte fra indbakken
- Genoptag / gå ind i rummet igen — afslut optagelsen af en session, du startede tidligere
- Efterladt bevaring + auto-afslutning — sessioner, der ikke er tildelt i X dage, lukkes automatisk, så indbakken holdes ryddelig
- Video “Start uden patient” — i LiveKit-rummet kan du starte en session uden at kollidere med en eksisterende patient; ad hoc-sessionen lander bagefter i indbakken
Sektionen er spærret bag PromptyAI-koden i Indstillinger — slået fra som standard, til brugere der først vil se resten. Designet og leveret af Bohdan.
2. 📊 Pakkegrænser og henstandsperiode — gennemsigtigt abonnement
Abonnementerne har fået en fuld overhaling. De gamle Starter/Standard-planer er deaktiveret, erstattet af Start / Practice / Pro — dimensioneret efter det faktiske sessionsvolumen per måned.
- Sessionstæller på dashboardet — se hvor mange sessioner du har brugt denne måned, og hvor mange der er tilbage i din pakke
- Grænse-e-mails — automatiske notifikationer ved 80% og 100% forbrug
- Opgraderingsprompt — når du rammer grænsen, får du et blidt forslag om planskift i stedet for en hård blokering
- Priser fra Stripe + rabatter — prisen du ser i appen kommer direkte fra Stripe med aktive rabatter anvendt (betatester-koden udløber ikke)
- Native opsigelse af abonnement — opsig direkte i appen, ingen grund til at maile support
- 14 dages henstandsperiode — hvis en betaling mislykkes, får du 14 dage med adgang kun til din egen konto (ingen patientforhåndsvisninger), med e-mails på T+0 og T+13. Reelt datatab indtræder først efter to uger
- Abonnementsbanner — ren besked øverst i appen uden tom bjælke mellem menuen og advarslen
- Sessionsgrænse-simulator — i PromptyAI-panelet er der en testtilstand, hvor du kan se, hvordan appen opfører sig ved en fuld pakke
Fælles arbejde af Bartlomiej (tæller og grænser, SCRUM-1266) og Bohdan (abonnement, henstand, opgraderingsprompt — SCRUM-756, SCRUM-1366, SCRUM-1391, SCRUM-1392).
3. 📝 3-vejs-flet af notater — terapeut, AI og transskription i én visning
Dette er en af de største arkitektoniske ændringer under motorhjelmen, men effekten på det daglige arbejde er meget synlig: hvert notatfelt (Notater, Sessionsresumé, konceptualiseringsafsnit) husker nu separat, hvad terapeuten skrev, hvad AI genererede, og hvad der kom fra diktafonen/transskriptionen.
- Notater 3-vejs — notatvisningen viser tre kilder side om side: din tekst, AI-forslag og automatisk transskription, og du vælger, hvad der skal beholdes
- Sessionsresumé 2-vejs + JSON-flet — i sessionsresuméet fletter du dit eget arbejde med AI-analysen til ét sammenhængende dokument
- Tidsstempel-separator — når du redigerer et AI-felt manuelt, efterlader systemet et synligt spor af hvornår og hvis fragment det er
- [AI]-mærkat fra første generering — dine felter blandes ikke sammen med genererede felter
- SourceBadge — farverig pille med et ikon, der viser, hvor et fragment kommer fra, i stedet for tekst med STORE BOGSTAVER
- Erstatning af AI-afsnit i stedet for at tilføje — når du beder om regenerering af resuméet, erstatter AI afsnittet i stedet for at lægge endnu en kopi nedenunder
Designet og leveret af Bartek (SCRUM-1320, SCRUM-1368-1375). Under motorhjelmen: fuld i18n på 8 sprog og nye DDD-kontekster.
4. 🔍 KAT-analyser — 9 separate rapporter efter behov
Den gamle monolitiske “generér KAT-analyse” er blevet opdelt i 9 separate elementer, som terapeuten kører, når de reelt har brug for dem. Mindre ventetid, mere kontrol.
- 9 uafhængige analyser — hver genereret separat, efter behov
- Prompt-redigeringstandhjul — klik på tandhjulet ved siden af hver analyse for at se/ændre den prompt, AI vil bruge
- Sektionen KAT-ANALYSER bag PromptyAI-koden — sektionen er tilgængelig, når koden indtastes i Indstillinger, til brugere der tester nye funktioner
Kognitive forvrængninger har fået deres egen visning (indrapporteret af Bartlomiej, SCRUM-1385):
- Datavisning i stedet for en AI-rapport — du ser konkrete citater fra transskriptionen mærket af AI, ikke en narrativ tekst genereret ud fra dem
- Alle citater efter udvidelse — intet datointervalfilter, udvidelse afslører alt
- Tilgængelig i hovedmenuen — under Konceptualisering v2
Den gamle prompt COGNITIVE_DISTORTIONS_INVENTORY er fjernet (SCRUM-1386).
5. 🌐 Offentlig terapeutprofil — fuld renovering med redigeringspaneler
Den offentlige profil under mærket aitherapy.support er blevet fuldstændig genopbygget.
- 3 nye redigeringspaneler — bio, specialiseringer, kontaktoplysninger redigeres i elegante sidepaneler
- Ejer-redigeringstilstand — når du ser din egen profil, mens du er logget ind, er redigeringsknapperne lige ved hånden
- Års erfaring — nyt felt
YearsOfExperiencesynligt på den offentlige profil - Farve-rebranding — sage/lavendel-palette under mærket aitherapy.support
- Sektionen “Dit privatliv” fjernet — den var overflødig; GDPR er i footeren
- Lucide-ikoner — moderne, ren ikontypografi
Under motorhjelmen er der tilføjet et offentligt endpoint GET /api/public/therapists — der returnerer terapeuter med aktive offentlige profiler. Grundlag for en terapeutkatalog.
6. 🎥 Videosessioner — PiP, kameraskift, rettet baggrundssløring
Video har fået en række rettelser, som enhver terapeut, der afholder sessioner gennem appen, vil bemærke.
- PiP/minimer — minimer videorummet til en flydende mini-afspiller og tjek notater i en anden fane uden at bryde forbindelsen. Mikrofon og kamera fortsætter med at virke
- Skift kameraer — skift hvem der er i hovedvisningen, og hvem der er i mini, med ét klik
- PiP-genoptagelse — når du vender tilbage fra minimering, springer du lobbyen (PreJoinLobby) over og går direkte ind i samtalen
- Lyd per deltager til diarisering — transskriptionen adskiller talere selv i PiP
- Baggrundssløring rettet — CSP blokerede MediaPipe WASM; sløring virker nu med ét klik
- Renere AITS-sessions-UI — AI-assistenten forsvandt fra værktøjslinjen, mindre visuel støj
- PiP-overlay klikbar — ved at fjerne
pointerEvents:noneogoverflow:hiddenreagerer PiP-knapperne nu på klik - Knappen “Deltag i session” — var skjult af en CSS-override, nu synlig
- Forældet closure i handleMaximize — rettet; PiP-maksimering kaster ikke længere en fejl
7. 📐 Beck v2-konceptualisering og ABC — PDF, versionsskift, prompt-redigering
- Beck- og ABC v2-PDF — rettet formatering og automatisk inkludering i sessionsmaterialer (indrapporteret af Ewa, SCRUM-1297)
- Beck-PDF — afsnit kun med kant, farverige specialiseringer, rene initialer, SVG-pil mellem afsnit
- ABC v1/v2-skift i Konceptualisering v2 — vælg hvilken ABC-version der skal vises
- Prompt-redigeringstandhjul i ABC v2 — ændr AI-prompten i ABC v2-fanen
- PDF-eksport for AI-analyser og ABC per session — individuelle analyser eksporteres separat
- Flertalsbøjning af ABC-mærkater på 8 sprog — konceptualiseringstabellen har korrekte flertalsformer
- Rettelse af tomme ABC-kolonner — backend returnerer korrekte flertalsegenskabsnavne
8. 🧾 Fakturaer og KSeF — betalingsvalg + tilstandsmaskine
Faktureringssystemet er blevet omstruktureret for overensstemmelse med KSeF (det polske nationale e-faktureringssystem).
- Faktura fra valgte betalinger — vælg betalinger, og systemet opretter én faktura ud fra dem (snapshot + Payment FK)
- Indgangspunkt “Udsted faktura” i terapeutens finansvisning — hurtig adgang fra dashboardet
- Fjernelse af poster i modalen til fakturaudstedelse — ret fejl på farten
- Adskillelse af KSeF dev/prod — sandbox og produktion arbejder med separate legitimationsoplysninger
- Tilstandsmaskine for fakturaer (SCRUM-1357 Bohdan) — Kladde → Udstedt → Sendt → Annulleret, med et databasekonstraint på ulovlige overgange
- AE KsefToken — KSeF-token krypteret med Always Encrypted
Fælles arbejde af Bohdan (SCRUM-1357, SCRUM-1388).
9. 📅 Kalender, tilbagevendende sessioner og lokationer
Den ugentlige og tilbagevendende kalender har fået snesevis af små, men synlige forbedringer — de fleste indrapporteret af Joanna og Ewa.
- Sessioner fra kl. 22:00 — var usynlige i det ugentlige gitter, vises nu til dagens afslutning
- Alle timer i gitteret for tilbagevendende tider (SCRUM-874, Joanna)
- Rettidigt aflyst session — vises ikke som “Ubetalt” (SCRUM-918, Joanna)
- Gentagelsesmærkat ved siden af det tilbagevendende tidsrum (SCRUM-919, Joanna) — du ser “ugentligt”, “hver anden uge” ved siden af hver gentagende session
- Skjul Zoom-integration fra UI (SCRUM-789, Joanna) — Zoom understøttes ikke længere som en videokanal
- Sessionspopover i kalenderen — skjuler sig ikke længere uden for skærmen
- TherapistAvailability — auto-gem ved hver ændring (debounce 800 ms), ingen gem-knap nødvendig
- AddSessionModal — mulighed for “opret session uden for tilgængelighedstider” — undtagelser kan tvinge et tidsrum igennem
- Status “Udeblivelse” (NoShow=5) — ny status, kan sættes selv fra afsluttede eller aflyste sessioner
- RecurringSessionsCalendar — sammenfatningsfliser over forklaringen og gitteret
Terapeutlokationer har fået online mødekanaler per lokation:
- Fysisk tilstand — adresse- og byfelter for fysiske lokationer
- Fysisk/online-skifter i stedet for en afkrydsningsboks — tydeligere valg af tilstand
- Online kanal per lokation — forskellige lokationer kan have forskellige kanaler (AITS, Google Meet, ekstern link), automatisk videreført til sessioner
- Permanente mødelokaler per patient — hver patient har et permanent AITS-rumlink og et separat eksternt link synligt i patientindstillinger
- Sletning af lokation — rettet (forsvandt fra databasen, men blev stående på UI-listen)
Og endelig mødetype i tilbagevendende sessioner — rettet videreførelse af MeetingType og MeetingLink fra konfigurationen af den tilbagevendende serie til hver genereret session og til påmindelses-e-mails (SCRUM-902, Ewa).
10. 📱 Mobilapp — mørkt tema, ad hoc-indbakke, finpudsning
Mobilen er gået til version 1.5.0 (build 18) med en masse brugersynlige ændringer og et par touch omkring signering til App Store/Play Store.
- Mørkt tema — fuld mørk tilstand med læselige gruppeoverskrifter (SCRUM-1089, Ewa + SCRUM-815)
- Konfigurerbare påmindelser — vælg hvornår du vil have en sessionsnotifikation
- Mobilpåmindelse 15 min — 15-minutters før-session-påmindelse + advarsel når systemnotifikationer er slået fra (SCRUM-815, Bohdan)
- Tom tilstand for sessionsliste — i stedet for en tom skærm, en rigere onboarding (SCRUM-1094, Ewa)
- Auto-opdater-banner — når appen registrerer en opdatering, viser den et indbydende opdateringsbanner
- Ad hoc-indbakke + AssignPatient + hurtigstart i MAUI (SCRUM-1289, Bohdan)
- PWA mobil-hurtigstart til ad hoc-sessioner (SCRUM-1286, Bohdan)
- Responsiv webvisning til telefon — desktop uændret, på telefon tilpasser layoutet sig til den smalle skærm
- Deep-link-håndtering i iOS — bruger BindingContext, URL scheme-registrering
- iOS NSLocation purpose strings — retter ITMS-90683 (App Store afviste build uden disse)
- Android AAB — eksplicit jarsigner-trin
- App Store Connect- og Google Play-materialer — fuld pakke plus WCAG 2.2-revision
11. 🔐 Sikkerhed: SOC 2/HIPAA, MFA, fuld AI-pseudonymisering
Under produktlaget har vi gennemført en fuld SOC 2- og HIPAA-hærdning plus en DDD-revision med fem konkrete leverancer.
- MFA-genverificering ved kritiske operationer — ved følsomme handlinger (skift af adgangskode, dataeksport) bekræfter du igen med MFA
- Backup-koder til MFA — nødkoder hvis du mister din telefon
- IAnonymizedLlmGateway (SCRUM-1353, Bohdan) — alle kald til AI-modeller går nu gennem en pseudonymiserende gateway. Navne, datoer, steder erstattes med pseudonymer, før de forlader appen; AI får kun den anonymiserede version
- Pseudonymisering af e-mail-/sms-notifikationer (SCRUM-1354) — beskedskabeloner lækker heller ikke patientdata ved afsendelse
- OAuth-tokens Google/Zoom krypteret med Always Encrypted (SCRUM-1355) — adgangstokens til integrationer er kolonnekrypteret
- Flaget Patient.PendingConsent (SCRUM-1356) — patienter uden aktivt samtykke får et håndhævelsesflow + frontend-badge
- Tilstandsmaskine for fakturaer (SCRUM-1357) — fakturastatusser er uforanderlige i ugyldige retninger, håndhævet på databaseniveau
- Uforanderlig revision + brugersnapshot i 3 revisionstabeller — handlingsloggen kan ikke ændres i efterhånden
- DeanonymizationAuditLog — hver brug af patientdata efter afanonymisering logges sammen med e-mail- og displayName-snapshottet af den bruger, der udførte det
- Hårdkodede hemmeligheder fjernet — alle nøgler og adgangskoder fra appsettings.json flyttet til Azure Key Vault
- Always Encrypted til alle brugertekstdata (ADR-0018) — arkitektonisk retning godkendt; flere tabeller migreres i næste udgivelse
- ISO/IEC-overensstemmelses-gapanalyse — 95 huller på tværs af 9 standarder kortlagt, med en afhjælpningsplan
Underbygget af en fuld DDD-revision (sessioner 1-8, faser 1-6) — omstrukturering af domænekontekster, arkitekturdokumentation, ADR’er, mermaid + tests, playbooks, Confluence-integration.
12. 👤 Patientportal — analyser i Mål, materialer, bedre forhåndsvisning
- Beck-konceptualisering i patientens fane “Mål” — når du publicerer konceptualiseringen, ser patienten den i sin portal
- Publicering af analyser til patientportalen + notifikationspræferencer (SCRUM-1338, Bartlomiej) — styr hvad og hvornår patienten modtager
- PDF-forhåndsvisning i portalen —
iframei stedet forembed, CSP tilladerblob:(PDF’er indlæses) - Forhåndsvisning af patientportal fra terapeutens visning — se hvad patienten ser (chrome i wrapper, dashboard 1:1)
- Sessionsmaterialer i Azure Blob Storage — SessionMaterial som blob, ikke længere lokalt filsystem
- Sektion for samtykke/dokumenter + registreringskilde i patientindstillinger
- Global unikhed af patient-e-mail (SCRUM-898) — en anden patient med samme e-mail får en 409 og modalen lukkes (SCRUM-898, Ewa)
- Seeder til notifikationsskabeloner for SK, CA, RU, UK, LT (SCRUM-883, Joanna) — fuld flersproget udsendelse
- Resolver-fallback til platformens standard — når en terapeut ikke har tilsidesat skabelonen, sendes den flersprogede standard (SCRUM-883)
13. 🎙️ Transskription — pålidelig optagelse, tilføjelse, realtid med diarisering
- Tilføjelse til eksisterende transskription — fortsæt med at optage ind i samme session; segmenter tilføjes (hensigten overlever en gensidindlæsning af siden)
- Lyd per deltager til diarisering — videotransskription adskiller talere på uafhængige spor
- Transskription overlever PiP — minimering af rummet bryder ikke optagelsen
- Transskriptionssprog fra sessionsindstillinger — STT bruger det sprog, du har sat for patienten
- Auto-opdatering af transskription ved fokus/visibilitychange/tilbage fra video
- Bekræftelse ved stop af optagelse < 2s — beskyttelse mod en tom WAV-fil fra et fejlklik
- Badge “Sender” i sessionslisten — du ser, når en optagelse er under upload
- Realtid med diarisering i videosession — startede ikke før; virker nu
- OPFS-backup + 48 kbps Opus — optagelsen gemmes også lokalt til OPFS som fallback, lydparametre er ensrettet
- SAS direkte upload af lyd (SCRUM-1276, Bohdan) — lyd går direkte til Azure via SAS-URL, uden om backend
- m4a native til Azure Speech — m4a håndteres nativt, ingen konvertering
- Formatgenkendelse via magic bytes (SCRUM-1311, Bohdan) — når Content-Type er
application/octet-stream, genkendes formatet ud fra filens indhold - Hub uden DB-tekst — SignalR-realtidshubben gemmer ikke længere tekst i databasen; finishPending bruger multipart POST ligesom MAUI
- SignalR 1006-rettelse — fjernede skipNegotiation, så Azure SignalR fungerer + finjustering af keep-alive
- [AI]-mærkat fra første generering + pålidelig mærkat-opslag
14. 💬 Notifikationer, patientindstillinger, mindre UX
- NotificationTemplatesAdmin — HTML/tekst-skifter i e-mail-editoren
- NotificationSettings — forhåndsvisning af e-mail renderer HTML med fallback
- PromptEditModal — genopbygget: faner, modelvælger, påkrævede versionsnavne
- Nulstilling af flaget Hide_dev_ui ved log ud — udviklerflag følger ikke med på tværs af sessioner
- Testpatient Ann Fauler — engelsk 1:1-udgave af den polske Anna Pełnialska til rene EN-demoer
- Skifter til dev UI-præsentationstilstand — hurtigt skift til præsentationstilstand
- Fejlrapport — Jira-vedhæftninger + rapportørmærkat + centreret “Send”-knap
- Auth-refresh-loop rettet — afbryd forespørgsler og vend tilbage til login ved 401
- Banner “Serveren starter” — ved koldstart (scale-to-zero) viser vi en meddelelse i stedet for en tom side
- Sessionsvurderingsskala — selvrefleksion i stedet for kvalitetsvurdering + ansvarsfraskrivelse (SCRUM-1005, Joanna)
- Farven på knappen “Minimer” ændret til koboltviolet (SCRUM-1307, Ewa)
- Farven på mærkatet “Transskription” ændret fra rød til grøn (SCRUM-1304, Ewa)
- “Optag nu” → “Optag ad hoc-session” — mere præcist knapnavn
- Sandbox med grønt bånd i øverste venstre hjørne + præfikset
[SANDBOX]i titlen — for at undgå forveksling af miljøer, plus en gentagelig PROD → Sandbox-klon (Azure IaC + scripts)
✅ QA-tjekliste — hvad du skal verificere efter deploy
| Funktion | Verificér |
|---|---|
| Ad hoc-session — hurtig optagelse | Klik på hurtig optagelse på dashboardet eller i PWA’en — optagelsen starter med det samme, sessionen lander i ad hoc-indbakken |
| AssignPatient i ad hoc-indbakke | Åbn en ad hoc-optagelse — du kan tildele den til en eksisterende patient eller oprette en ny |
| Pakkegrænse | Dashboardet viser sessionstælleren for den nuværende måned, og hvor mange der er tilbage i pakken |
| Henstandsperiode efter mislykket betaling | Abonnementssimulator i PromptyAI — fremtving en mislykket betaling, du får kun kontoadgang i 14 dage |
| 3-vejs-flet af notater | I sessionsdetaljer viser notatfeltet tre kilder side om side (terapeut/AI/transskription); du kan vælge, hvad der skal beholdes |
| 9 KAT-analyser | Fanen KAT-analyser viser 9 separate elementer; hver genereret efter behov; hver har et prompt-redigeringstandhjul |
| Offentlig profil — paneler | Åbn din egen offentlige profil, mens du er logget ind — redigeringspaneler til bio, specialisering, kontakt er synlige |
| Video-PiP | Under en videosession klik på minimer — vinduet mindskes til mini-afspiller, mikrofonen virker stadig, du vender tilbage uden lobby |
| Baggrundssløring | I videolobbyen aktivér baggrundssløring — virker med det samme, ingen CSP-fejl |
| PDF for Beck-konceptualisering | Generér konceptualiserings-PDF’en — den vises også i sessionsmaterialer |
| ABC v1/v2-skift | I konceptualisering v2 kan du skifte ABC-kilden mellem version 1 og 2 |
| Faktura fra valgte betalinger | Vælg et par betalinger og klik på “Udsted faktura” — én faktura oprettes ud fra snapshottet |
| Tilbagevendende session med Google Meet | Den anden og tredje session i serien har Google Meet korrekt sat, og e-mailen indeholder det rigtige link |
| Sessioner fra kl. 22:00 | Den ugentlige kalender viser sessioner planlagt til kl. 22:00 og senere |
| Status “Udeblivelse” | I en afsluttet/aflyst session kan du ændre status til “Udeblivelse” |
| Mørkt tema på mobil | Skift til mørkt tema i mobilappen — gruppeoverskrifter er læselige |
| Ad hoc-indbakke på mobil | Mobilen viser ad hoc-indbakken og lader dig tildele en patient |
| MFA-genverificering | Ved skift af adgangskode beder appen om MFA igen |
| AI-pseudonymisering | I logfilerne ser du, at patientdata sendes til AI som pseudonymer |
| Sessionsmaterialer som blob | Upload en fil til sessionsmaterialer — den lander i Azure Blob Storage, ikke på lokal disk |
| Global unikhed af patient-e-mail | Tilføj en anden patient med samme e-mail — du får en 409, og modalen lukkes |
| Banner “Serveren starter” | Efter en længere periode uden aktivitet viser appens indgang banneret i stedet for en tom side |
🛠️ Hvad vi rettede — de finere detaljer
Ud over de store funktioner blev cirka 80 rapporter fra testere og brugere løst. Højdepunkter:
- PiP-overlay var ikke klikbart — rettet
- Forældet closure i handleMaximize — PiP-maksimering kaster ikke længere en fejl
- PiP bevarer forbindelsen — tidligere blev
room.disconnect()udløst ved overgangen fuldskærm↔PiP - Knappen “Deltag i session” var skjult af en CSS-override — afdækket
- Anden AITS-session for samme patient (SCRUM-1319, Ewa) — fjern UNIQUE INDEX på
Session.VideoInviteToken - Sessionsnummerering i konceptualisering springer aflyste over (SCRUM-1267, Bohdan)
- Null-sikker Payment-adgang i GetSessionDetailsAsync (SCRUM-1268, Bohdan)
- Testsessionskollision mellem Anna Pełnialska og Jan kl. 14:00 — rettet i seederen
- Langsomt dashboard — null-sikker mapping i GetTodaySessionsAsync og GetSessionDetailsAsync
- Auto-opdatering efter afsluttet mikrofonoptagelse — virker
- Batch-fallback overskriver ikke tekst fra tidligere optagelser eller blokerer UI’en med status “Behandler”
- Transskriptionssprog fra sessionsindstillinger — STT respekterer patientens præference
- CSP — tillader
*.clarity.ms,blob:i connect-src, analytics i script-src - Auth-refresh-loop — afbryder forespørgsler efter 401 og vender tilbage til login
- CSP MediaPipe WASM — baggrundssløring virker
- DEV/SANDBOX-bånd også på Azure FQDN, ikke kun på tilpasset domæne
- Falsk toast “Transskription mislykkedes” ved indgang til session — fjernet
- Toast i stedet for rødt banner ved mislykket transskription + knappen “Resample” fjernet
- Realtid med diarisering i videosession — starter korrekt
- AI-streaming — AbortController per handler i stedet for delt (
BodyStreamBuffer was aborted) - Nginx non-root + Azure Container Apps — flere iterationer for at få det til at virke
- Distribueret lås (sp_getapplock) — opstartsmigreringer er ikke længere i konflikt ved parallelle udrulninger
- DbUpdateConcurrencyException i batch-transskriptionspolleren (SCRUM-1313, Bohdan)
- BlobNotFound som forventet tilstand (SCRUM-1314, Bohdan)
- Ikke-JSON-nyttelast i Stripe-webhook (scannere/bots) — håndteres uden fejl (SCRUM-1315, Bohdan)
- Genkendelse af lydformat via magic bytes (SCRUM-1311, Bohdan)
- Robust lydupload + defensiv Content-Type (SCRUM-1293, Bohdan)
- FK-migrering ActiveEmbeddingModelId → ON DELETE NO ACTION
- Dev-klientudrulning — CACHE_BUST=
github.shatvinger frontend-genopbygning
Dette er den største, mest komprimerede udgivelse i dette forår. Hvis en funktion virker bekendt — er det fordi det var din anmodning eller dit ticket. Tak for hver rapport og hvert skærmbillede.
Artikel udarbejdet af Therapy Support-teamet