Release Notes — 26. april 2026
For 19 dager siden lanserte vi en stor utgivelse med diagnosemodulet og prosodianalyse. Siden da har teamet dyttet gjennom enda 295 endringer — og de er ikke små. I denne utgivelsen kan du ta opp en ad hoc-sesjon før pasienten i det hele tatt ankommer, notatene dine slås sammen med AI-arbeid og transkripsjon side om side i tre kolonner, den offentlige terapeutprofilen er tilbake for fullt, og mobilappen har nå et mørkt tema. Under panseret gikk vi gjennom en SOC 2/HIPAA-herding, en DDD-revisjon og full pseudonymisering av pasientdata på AI-siden.
💚 Takk til teamet som drev denne utgivelsen fremover — gjennom rapporter, tester, kode og tålmodighet:
- Bohdan — ad hoc-sesjoner, pakkegrenser og henstandsperiode, DDD-revisjon, KSeF-fakturaer, dusinvis av rettelser (SCRUM-756, 815, 1267, 1268, 1276, 1280-1290, 1293, 1309-1316, 1353-1357, 1366, 1388, 1391, 1392)
- Bartek — 3-veis sammenslåing, 9 separate CBT-analyser, kognitive forvrengninger, pakkesesjonsteller (SCRUM-1266, 1320, 1338, 1368-1375, 1385, 1386)
- Ewa Cylwik / Ewa — Beck-PDF, andre AITS-sesjon for samme pasient, mørkt tema på mobil og tom tilstand, flerspråklig utsendelse, UI-farger, unikhet for pasient-e-post (SCRUM-883, 898, 902, 1089, 1094, 1297, 1304, 1307, 1319)
- Joanna — tilbakevendende kalender, skjule Zoom, rettidig avlysning, selvrefleksjon i stedet for vurdering av sesjonskvalitet (SCRUM-789, 874, 918, 919, 1005)
- Pluss Bartlomiej for kognitive forvrengninger og sesjonstelleren, som ble grunnlaget for den nye abonnementsmodellen
1. ⚡ Ad hoc-sesjoner — ta opp før pasienten ankommer
Har du noen gang måttet slå på en opptaker i full fart — fordi en pasient dukket uanmeldt opp, fordi det er en engangskonsultasjon, fordi det er et møte med noen som ennå ikke er i journalene dine — løser den nye ad hoc-sesjon-modulen hele dette problemet.
- Hurtig opptak-knapp i webdashbordet, i PWA på telefon og i MAUI-appen — ett klikk starter opptaket før du i det hele tatt har fylt ut pasientens data
- Ad hoc-innboks — en dedikert skuff for utildelte opptak inntil du bestemmer hvor de skal
- AssignPatientModal — tildel opptaket til en eksisterende pasient eller opprett en ny direkte fra innboksen
- Gjenoppta / gå inn i rommet igjen — fullfør opptaket av en sesjon du startet tidligere
- Foreldreløs oppbevaring + auto-fullføring — sesjoner som ikke er tildelt på X dager, lukkes automatisk slik at innboksen holdes ryddig
- Video «Start uten pasient» — i LiveKit-rommet kan du starte en sesjon uten å kollidere med en eksisterende pasient; ad hoc-sesjonen havner etterpå i innboksen
Seksjonen er sperret bak PromptyAI-koden i Innstillinger — avslått som standard, for brukere som først vil se resten. Designet og levert av Bohdan.
2. 📊 Pakkegrenser og henstandsperiode — gjennomsiktig abonnement
Abonnementene har fått en full overhaling. De gamle Starter/Standard-planene er deaktivert, erstattet av Start / Practice / Pro — dimensjonert etter det faktiske sesjonsvolumet per måned.
- Sesjonsteller på dashbordet — se hvor mange sesjoner du har brukt denne måneden, og hvor mange som er igjen i pakken din
- Grense-e-poster — automatiske varsler ved 80 % og 100 % forbruk
- Oppgraderingsforslag — når du når grensen, får du et vennlig forslag om planbytte i stedet for en hard blokkering
- Priser fra Stripe + rabatter — prisen du ser i appen kommer direkte fra Stripe med aktive rabatter anvendt (betatester-koden utløper ikke)
- Nativ oppsigelse av abonnement — si opp direkte i appen, ingen grunn til å e-poste support
- 14 dagers henstandsperiode — hvis en betaling mislykkes, får du 14 dager med tilgang kun til din egen konto (ingen pasientforhåndsvisninger), med e-poster på T+0 og T+13. Reelt datatap inntreffer først etter to uker
- Abonnementsbanner — ren melding øverst i appen uten tom stolpe mellom menyen og varselet
- Sesjonsgrense-simulator — i PromptyAI-panelet finnes det en testmodus der du kan se hvordan appen oppfører seg ved en full pakke
Felles arbeid av Bartlomiej (teller og grenser, SCRUM-1266) og Bohdan (abonnement, henstand, oppgraderingsforslag — SCRUM-756, SCRUM-1366, SCRUM-1391, SCRUM-1392).
3. 📝 3-veis sammenslåing av notater — terapeut, AI og transkripsjon i én visning
Dette er en av de største arkitektoniske endringene under panseret, men effekten på det daglige arbeidet er svært synlig: hvert notatfelt (Notater, Sesjonssammendrag, konseptualiseringsseksjoner) husker nå separat hva terapeuten skrev, hva AI genererte, og hva som kom fra diktafonen/transkripsjonen.
- Notater 3-veis — notatvisningen viser tre kilder side om side: din tekst, AI-forslag og automatisk transkripsjon, og du velger hva som skal beholdes
- Sesjonssammendrag 2-veis + JSON-sammenslåing — i sesjonssammendraget slår du sammen ditt eget arbeid med AI-analysen til ett sammenhengende dokument
- Tidsstempel-skille — når du redigerer et AI-felt manuelt, etterlater systemet et synlig spor av når og hvis fragment det er
- [AI]-merke fra første generering — feltene dine blandes ikke sammen med genererte felt
- SourceBadge — fargerik pille med et ikon som viser hvor et fragment kommer fra, i stedet for tekst med STORE BOKSTAVER
- Erstatning av AI-seksjon i stedet for tillegg — når du ber om regenerering av sammendraget, erstatter AI seksjonen i stedet for å legge enda en kopi under
Designet og levert av Bartek (SCRUM-1320, SCRUM-1368-1375). Under panseret: full i18n på 8 språk og nye DDD-kontekster.
4. 🔍 CBT-analyser — 9 separate rapporter på forespørsel
Den gamle monolittiske «generer CBT-analyse» er delt opp i 9 separate elementer som terapeuten kjører når de faktisk trenger dem. Mindre venting, mer kontroll.
- 9 uavhengige analyser — hver genereres separat, på forespørsel
- Tannhjul for prompt-redigering — klikk på tannhjulet ved siden av hver analyse for å se/endre prompten AI vil bruke
- Seksjonen CBT-ANALYSER bak PromptyAI-koden — seksjonen er tilgjengelig etter at koden er lagt inn i Innstillinger, for brukere som tester nye funksjoner
Kognitive forvrengninger fikk sin egen visning (rapportert av Bartlomiej, SCRUM-1385):
- Datavisning i stedet for en AI-rapport — du ser konkrete sitater fra transkripsjonen merket av AI, ikke en fortelling generert ut fra dem
- Alle sitater etter utvidelse — ingen datofilter, utvidelse avslører alt
- Tilgjengelig i hovedmenyen — under Konseptualisering v2
Den gamle prompten COGNITIVE_DISTORTIONS_INVENTORY er fjernet (SCRUM-1386).
5. 🌐 Offentlig terapeutprofil — full fornyelse med redigeringspaneler
Den offentlige profilen under merkevaren aitherapy.support er bygget fullstendig om.
- 3 nye redigeringspaneler — bio, spesialiseringer, kontaktdetaljer redigeres i elegante sidepaneler
- Eier-redigeringsmodus — når du ser din egen profil mens du er innlogget, er redigeringsknappene lett tilgjengelige
- Års erfaring — nytt felt
YearsOfExperiencesynlig på den offentlige profilen - Fargerebranding — salvie/lavendel-palett under merkevaren aitherapy.support
- Seksjonen «Ditt personvern» fjernet — den var overflødig; GDPR er i bunnteksten
- Lucide-ikoner — moderne, ren ikontypografi
Under panseret ble det lagt til et offentlig endepunkt GET /api/public/therapists — som returnerer terapeuter med aktive offentlige profiler. Grunnlag for en terapeutkatalog.
6. 🎥 Videosesjoner — PiP, bytt kamera, rettet bakgrunnsuskarphet
Video har fått en rekke rettelser som enhver terapeut som kjører sesjoner gjennom appen vil legge merke til.
- PiP/minimer — minimer videorommet til en flytende miniavspiller og sjekk notater i en annen fane uten å bryte forbindelsen. Mikrofon og kamera fortsetter å virke
- Bytt kamera — bytt hvem som er i hovedvisningen og hvem som er i mini, med ett klikk
- PiP-gjenopptakelse — når du kommer tilbake fra minimering, hopper du over lobbyen (PreJoinLobby) og går rett inn i samtalen
- Lyd per deltaker for diarisering — transkripsjonen skiller talere selv i PiP
- Bakgrunnsuskarphet rettet — CSP blokkerte MediaPipe WASM; uskarphet virker nå med ett klikk
- Renere AITS-sesjons-UI — AI-assistenten forsvant fra verktøylinjen, mindre visuell støy
- PiP-overlegg klikkbart — ved å fjerne
pointerEvents:noneogoverflow:hiddenreagerer PiP-knappene nå på klikk - Knappen «Bli med i sesjon» — var skjult av en CSS-overstyring, nå synlig
- Foreldet closure i handleMaximize — rettet; PiP-maksimering kaster ikke lenger en feil
7. 📐 Beck v2-konseptualisering og ABC — PDF, versjonsbryter, prompt-redigering
- Beck- og ABC v2-PDF — rettet formatering og automatisk inkludering i sesjonsmaterialer (rapportert av Ewa, SCRUM-1297)
- Beck-PDF — seksjoner kun med kant, fargerike spesialiseringer, rene initialer, SVG-pil mellom seksjoner
- ABC v1/v2-bryter i Konseptualisering v2 — velg hvilken ABC-versjon som skal vises
- Tannhjul for prompt-redigering i ABC v2 — endre AI-prompten i ABC v2-fanen
- PDF-eksport for AI-analyser og ABC per sesjon — individuelle analyser eksporteres separat
- Flertallsbøying av ABC-etiketter på 8 språk — konseptualiseringstabellen har korrekte flertallsformer
- Retting av tomme ABC-kolonner — backend returnerer korrekte flertallsegenskapsnavn
8. 🧾 Fakturaer og KSeF — betalingsvalg + tilstandsmaskin
Faktureringssystemet ble omstrukturert for samsvar med KSeF (det polske nasjonale e-faktureringssystemet).
- Faktura fra valgte betalinger — velg betalinger, og systemet oppretter én faktura ut fra dem (øyeblikksbilde + Payment FK)
- Inngangspunkt «Utsted faktura» i terapeutens finansvisning — rask tilgang fra dashbordet
- Fjerning av poster i modalen for fakturautstedelse — rett feil på sparket
- Adskillelse av KSeF dev/prod — sandkasse og produksjon jobber med separate legitimasjonsopplysninger
- Tilstandsmaskin for fakturaer (SCRUM-1357 Bohdan) — Utkast → Utstedt → Sendt → Kansellert, med et databasekonstraint på ulovlige overganger
- AE KsefToken — KSeF-token kryptert med Always Encrypted
Felles arbeid av Bohdan (SCRUM-1357, SCRUM-1388).
9. 📅 Kalender, tilbakevendende sesjoner og lokasjoner
Den ukentlige og tilbakevendende kalenderen har fått dusinvis av små, men synlige forbedringer — de fleste rapportert av Joanna og Ewa.
- Sesjoner fra kl. 22:00 — var usynlige i det ukentlige rutenettet, vises nå til dagens slutt
- Alle timer i rutenettet for tilbakevendende tidsluker (SCRUM-874, Joanna)
- Rettidig kansellert sesjon — vises ikke som «Ubetalt» (SCRUM-918, Joanna)
- Gjentakelsesetikett ved siden av den tilbakevendende tidsluken (SCRUM-919, Joanna) — du ser «ukentlig», «annenhver uke» ved siden av hver gjentakende sesjon
- Skjuling av Zoom-integrasjon fra UI (SCRUM-789, Joanna) — Zoom støttes ikke lenger som videokanal
- Sesjonspopover i kalenderen — skjules ikke lenger utenfor skjermen
- TherapistAvailability — autolagring ved hver endring (debounce 800 ms), ingen lagre-knapp nødvendig
- AddSessionModal — valget «opprett sesjon utenfor tilgjengelighetstider» — unntak kan tvinge gjennom en tidsluke
- Status «Ikke møtt» (NoShow=5) — ny status, kan settes selv fra fullførte eller kansellerte sesjoner
- RecurringSessionsCalendar — oppsummeringsfliser over forklaringen og rutenettet
Terapeutlokasjoner fikk digitale møtekanaler per lokasjon:
- Fysisk modus — adresse- og byfelt for fysiske lokasjoner
- Fysisk/digital-bryter i stedet for en avkrysningsboks — tydeligere modusvalg
- Digital kanal per lokasjon — ulike lokasjoner kan ha ulike kanaler (AITS, Google Meet, ekstern lenke), automatisk videreført til sesjoner
- Permanente møterom per pasient — hver pasient har en permanent AITS-romlenke og en separat ekstern lenke synlig i pasientinnstillinger
- Sletting av lokasjon — rettet (forsvant fra databasen, men ble stående på UI-listen)
Og til slutt møtetype i tilbakevendende sesjoner — rettet videreføring av MeetingType og MeetingLink fra konfigurasjonen av den tilbakevendende serien til hver genererte sesjon og til påminnelses-e-poster (SCRUM-902, Ewa).
10. 📱 Mobilapp — mørkt tema, ad hoc-innboks, finpuss
Mobilen gikk over til versjon 1.5.0 (build 18) med en mengde brukersynlige endringer og noen finjusteringer rundt signering for App Store/Play Store.
- Mørkt tema — full mørk modus med lesbare gruppeoverskrifter (SCRUM-1089, Ewa + SCRUM-815)
- Konfigurerbare påminnelser — velg når du vil ha et sesjonsvarsel
- Mobilpåminnelse 15 min — 15-minutters før-sesjon-påminnelse + advarsel når systemvarsler er avslått (SCRUM-815, Bohdan)
- Tom tilstand for sesjonsliste — i stedet for en tom skjerm, en rikere onboarding (SCRUM-1094, Ewa)
- Auto-oppdater-banner — når appen oppdager en oppdatering, viser den et innbydende oppdateringsbanner
- Ad hoc-innboks + AssignPatient + hurtigstart i MAUI (SCRUM-1289, Bohdan)
- PWA mobil-hurtigstart for ad hoc-sesjoner (SCRUM-1286, Bohdan)
- Responsiv nettvisning for telefon — desktop uendret, på telefon tilpasser layouten seg til den smale skjermen
- Deep-link-håndtering i iOS — bruker BindingContext, registrering av URL-skjema
- iOS NSLocation purpose strings — retter ITMS-90683 (App Store avviste build uten disse)
- Android AAB — eksplisitt jarsigner-steg
- App Store Connect- og Google Play-materiell — full pakke pluss WCAG 2.2-revisjon
11. 🔐 Sikkerhet: SOC 2/HIPAA, MFA, full AI-pseudonymisering
Under produktlaget gjennomførte vi en full SOC 2- og HIPAA-herding pluss en DDD-revisjon med fem konkrete leveranser.
- MFA-reverifisering for kritiske operasjoner — for sensitive handlinger (bytte av passord, dataeksport) bekrefter du på nytt med MFA
- Backup-koder for MFA — nødkoder hvis du mister telefonen
- IAnonymizedLlmGateway (SCRUM-1353, Bohdan) — alle kall til AI-modeller går nå gjennom en pseudonymiserende gateway. Navn, datoer, steder erstattes med pseudonymer før de forlater appen; AI får kun den anonymiserte versjonen
- Pseudonymisering av e-post-/SMS-varsler (SCRUM-1354) — meldingsmaler lekker heller ikke pasientdata ved utsending
- OAuth-tokens Google/Zoom kryptert med Always Encrypted (SCRUM-1355) — tilgangstokens for integrasjoner er kolonnekryptert
- Patient.PendingConsent-flagg (SCRUM-1356) — pasienter uten aktivt samtykke får en håndhevelsesflyt + frontend-merke
- Tilstandsmaskin for fakturaer (SCRUM-1357) — fakturastatuser er uforanderlige i ugyldige retninger, håndhevet på databasenivå
- Uforanderlig revisjonslogg + brukerøyeblikksbilde i 3 revisjonstabeller — handlingsloggen kan ikke endres i etterkant
- DeanonymizationAuditLog — hver bruk av pasientdata etter deanonymisering logges sammen med e-post- og displayName-øyeblikksbildet av brukeren som utførte det
- Hardkodede hemmeligheter fjernet — alle nøkler og passord fra appsettings.json flyttet til Azure Key Vault
- Always Encrypted for alle brukertekstdata (ADR-0018) — arkitektonisk retning godkjent; flere tabeller migreres neste utgivelse
- ISO/IEC-samsvarsgapanalyse — 95 gap på tvers av 9 standarder kartlagt, med en utbedringsplan
Understøttet av en full DDD-revisjon (økter 1-8, faser 1-6) — omstrukturering av domenekontekster, arkitekturdokumentasjon, ADR-er, mermaid + tester, playbooks, Confluence-integrasjon.
12. 👤 Pasientportal — analyser i Mål, materialer, bedre forhåndsvisning
- Beck-konseptualisering i pasientens fane «Mål» — når du publiserer konseptualiseringen, ser pasienten den i sin portal
- Publisering av analyser til pasientportalen + varslingspreferanser (SCRUM-1338, Bartlomiej) — styr hva og når pasienten mottar
- PDF-forhåndsvisning i portalen —
iframei stedet forembed, CSP tillaterblob:(PDF-er lastes inn) - Forhåndsvisning av pasientportal fra terapeutens visning — se hva pasienten ser (chrome i wrapper, dashbord 1:1)
- Sesjonsmaterialer i Azure Blob Storage — SessionMaterial som blob, ikke lenger lokalt filsystem
- Seksjon for samtykke/dokumenter + registreringskilde i pasientinnstillinger
- Global unikhet for pasient-e-post (SCRUM-898) — en annen pasient med samme e-post får en 409 og modalen lukkes (SCRUM-898, Ewa)
- Seeder for varslingsmaler for SK, CA, RU, UK, LT (SCRUM-883, Joanna) — full flerspråklig utsendelse
- Resolver-fallback til plattformens standard — når en terapeut ikke har overstyrt malen, sendes standardversjonen på flere språk (SCRUM-883)
13. 🎙️ Transkripsjon — pålitelig opptak, tillegg, sanntid med diarisering
- Tillegg til eksisterende transkripsjon — fortsett å ta opp inn i samme sesjon; segmenter legges til (hensikten overlever en gjeninnlasting av siden)
- Lyd per deltaker for diarisering — videotranskripsjon skiller talere på uavhengige spor
- Transkripsjon overlever PiP — minimering av rommet bryter ikke opptaket
- Transkripsjonsspråk fra sesjonsinnstillinger — STT bruker språket du har satt for pasienten
- Auto-oppdatering av transkripsjon ved fokus/visibilitychange/retur fra video
- Bekreftelse ved stopp av opptak < 2s — beskyttelse mot en tom WAV-fil fra et feilklikk
- «Sender»-merke i sesjonslisten — du ser når et opptak er under opplasting
- Sanntid med diarisering i videosesjon — startet ikke tidligere; virker nå
- OPFS-backup + 48 kbps Opus — opptaket lagres også lokalt til OPFS som fallback, lydparametre er samkjørt
- SAS direkte opplasting av lyd (SCRUM-1276, Bohdan) — lyd går direkte til Azure via SAS-URL, utenom backend
- m4a nativt til Azure Speech — m4a håndteres nativt, ingen konvertering
- Formatgjenkjenning via magic bytes (SCRUM-1311, Bohdan) — når Content-Type er
application/octet-stream, gjenkjennes formatet fra filens innhold - Hub uten DB-tekst — SignalR-sanntidshuben lagrer ikke lenger tekst i databasen; finishPending bruker multipart POST på samme måte som MAUI
- SignalR 1006-fiks — fjernet skipNegotiation slik at Azure SignalR fungerer + finjustering av keep-alive
- [AI]-merke fra første generering + pålitelig merkeoppslag
14. 💬 Varsler, pasientinnstillinger, mindre UX
- NotificationTemplatesAdmin — HTML/tekst-bryter i e-postredigereren
- NotificationSettings — forhåndsvisning av e-post rendrer HTML med fallback
- PromptEditModal — bygget om: faner, modellvelger, påkrevde versjonsnavn
- Nullstilling av flagget Hide_dev_ui ved utlogging — utviklerflagg følger ikke med på tvers av økter
- Testpasient Ann Fauler — engelsk 1:1-versjon av den polske Anna Pełnialska for rene EN-demoer
- Bryter for dev UI-presentasjonsmodus — rask veksling til presentasjonsmodus
- Feilrapport — Jira-vedlegg + rapportør-etikett + sentrert «Send»-knapp
- Auth-refresh-loop rettet — avbryt forespørsler og gå tilbake til innlogging ved 401
- Banner «Serveren starter» — ved kaldstart (scale-to-zero) viser vi en melding i stedet for en tom side
- Sesjonsvurderingsskala — selvrefleksjon i stedet for kvalitetsvurdering + ansvarsfraskrivelse (SCRUM-1005, Joanna)
- Fargen på knappen «Minimer» endret til koboltfiolett (SCRUM-1307, Ewa)
- Fargen på etiketten «Transkripsjon» endret fra rød til grønn (SCRUM-1304, Ewa)
- «Ta opp nå» → «Ta opp ad hoc-sesjon» — mer presist knappenavn
- Sandkasse med grønt bånd i øvre venstre hjørne + prefikset
[SANDBOX]i tittelen — for å unngå forveksling av miljøer, pluss en gjentakbar PROD → Sandkasse-klon (Azure IaC + skript)
✅ QA-sjekkliste — hva du skal verifisere etter utrulling
| Funksjon | Verifiser |
|---|---|
| Ad hoc-sesjon — hurtig opptak | Klikk på hurtig opptak på dashbordet eller i PWA-en — opptaket starter umiddelbart, sesjonen havner i ad hoc-innboksen |
| AssignPatient i ad hoc-innboks | Åpne et ad hoc-opptak — du kan tildele det til en eksisterende pasient eller opprette en ny |
| Pakkegrense | Dashbordet viser sesjonstelleren for inneværende måned og hvor mange som er igjen i pakken |
| Henstandsperiode etter mislykket betaling | Abonnementssimulator i PromptyAI — fremtving en mislykket betaling, du får kun kontotilgang i 14 dager |
| 3-veis sammenslåing av notater | I sesjonsdetaljer viser notatfeltet tre kilder side om side (terapeut/AI/transkripsjon); du kan velge hva som skal beholdes |
| 9 CBT-analyser | Fanen for CBT-analyser viser 9 separate elementer; hver genereres på forespørsel; hver har et tannhjul for prompt-redigering |
| Offentlig profil — paneler | Åpne din egen offentlige profil mens du er innlogget — redigeringspaneler for bio, spesialisering og kontakt er synlige |
| Video-PiP | Under en videosesjon klikker du minimer — vinduet krymper til miniavspiller, mikrofonen fungerer fortsatt, du kommer tilbake uten lobby |
| Bakgrunnsuskarphet | I videolobbyen aktiverer du bakgrunnsuskarphet — virker umiddelbart, ingen CSP-feil |
| Beck-konseptualisering PDF | Generer konseptualiserings-PDF-en — vises også i sesjonsmaterialer |
| ABC v1/v2-bryter | I konseptualisering v2 kan du bytte ABC-kilden mellom versjon 1 og 2 |
| Faktura fra valgte betalinger | Velg noen betalinger og klikk «Utsted faktura» — én faktura produseres ut fra øyeblikksbildet |
| Tilbakevendende sesjon med Google Meet | Den andre og tredje sesjonen i serien har Google Meet riktig satt, og e-posten inneholder riktig lenke |
| Sesjoner fra kl. 22:00 | Den ukentlige kalenderen viser sesjoner planlagt til kl. 22:00 og senere |
| Status «Ikke møtt» | I en fullført/kansellert sesjon kan du endre status til «Ikke møtt» |
| Mørkt tema på mobil | Bytt til mørkt tema i mobilappen — gruppeoverskrifter er lesbare |
| Ad hoc-innboks på mobil | Mobilen viser ad hoc-innboksen og lar deg tildele en pasient |
| MFA-reverifisering | Ved bytte av passord ber appen om MFA på nytt |
| AI-pseudonymisering | I loggene ser du at pasientdata sendes til AI som pseudonymer |
| Sesjonsmaterialer som blob | Last opp en fil til sesjonsmaterialer — den havner i Azure Blob Storage, ikke på lokal disk |
| Global unikhet for pasient-e-post | Legg til en annen pasient med samme e-post — du får en 409, og modalen lukkes |
| Banner «Serveren starter» | Etter en lengre periode uten aktivitet viser appens inngang banneret i stedet for en tom side |
🛠️ Hva vi rettet — det med liten skrift
I tillegg til de store funksjonene ble rundt 80 rapporter fra testere og brukere løst. Høydepunkter:
- PiP-overlegg var ikke klikkbart — rettet
- Foreldet closure i handleMaximize — PiP-maksimering kaster ikke lenger en feil
- PiP beholder forbindelsen — tidligere ble
room.disconnect()utløst ved overgangen fullskjerm↔PiP - Knappen «Bli med i sesjon» var skjult av en CSS-overstyring — avdekket
- Andre AITS-sesjon for samme pasient (SCRUM-1319, Ewa) — fjern UNIQUE INDEX på
Session.VideoInviteToken - Sesjonsnummerering i konseptualisering hopper over kansellerte (SCRUM-1267, Bohdan)
- Null-sikker Payment-tilgang i GetSessionDetailsAsync (SCRUM-1268, Bohdan)
- Testsesjonskollisjon mellom Anna Pełnialska og Jan kl. 14:00 — rettet i seederen
- Treg dashbord — null-sikker mapping i GetTodaySessionsAsync og GetSessionDetailsAsync
- Auto-oppdatering etter avsluttet mikrofonopptak — virker
- Batch-fallback overskriver ikke tekst fra tidligere opptak eller blokkerer UI-en med status «Behandler»
- Transkripsjonsspråk fra sesjonsinnstillinger — STT respekterer pasientens preferanse
- CSP — tillater
*.clarity.ms,blob:i connect-src, analytics i script-src - Auth-refresh-loop — avbryter forespørsler etter 401 og går tilbake til innlogging
- CSP MediaPipe WASM — bakgrunnsuskarphet virker
- DEV/SANDBOX-bånd også på Azure FQDN, ikke bare på tilpasset domene
- Falsk toast «Transkripsjon mislyktes» ved sesjonsinngang — fjernet
- Toast i stedet for rødt banner ved mislykket transkripsjon + fjernet «Resample»-knapp
- Sanntid med diarisering i videosesjon — starter korrekt
- AI-streaming — AbortController per handler i stedet for delt (
BodyStreamBuffer was aborted) - Nginx non-root + Azure Container Apps — flere iterasjoner for å få det til å virke
- Distribuert lås (sp_getapplock) — oppstartsmigreringer kolliderer ikke lenger ved parallelle utrullinger
- DbUpdateConcurrencyException i batch-transkripsjonspolleren (SCRUM-1313, Bohdan)
- BlobNotFound som forventet tilstand (SCRUM-1314, Bohdan)
- Ikke-JSON-nyttelast i Stripe-webhook (skannere/roboter) — håndteres uten feil (SCRUM-1315, Bohdan)
- Gjenkjenning av lydformat via magic bytes (SCRUM-1311, Bohdan)
- Robust lydopplasting + defensiv Content-Type (SCRUM-1293, Bohdan)
- FK-migrering ActiveEmbeddingModelId → ON DELETE NO ACTION
- Dev-klientutrulling — CACHE_BUST=
github.shatvinger frontend-gjenoppbygging
Dette er den største, tetteste utgivelsen denne våren. Hvis en funksjon føles kjent — er det fordi det var din forespørsel eller din sak. Takk for hver rapport og hvert skjermbilde.
Artikkel utarbeidet av Therapy Support-teamet