Versionsnyheter - 26 april 2026
För 19 dagar sedan lanserade vi en stor version med diagnosmodulen och prosodianalys. Sedan dess har teamet drivit igenom ytterligare 295 ändringar - och de är inte små. I den här versionen kan du spela in en ad hoc-session innan patienten ens har anlänt, dina anteckningar sammanfogas med AI-arbete och transkription sida vid sida i tre kolumner, den offentliga terapeutprofilen är tillbaka i full styrka, och mobilappen har nu ett mörkt tema. Under huven har vi genomfört en genomgång av SOC 2/HIPAA-härdning, en DDD-granskning och full pseudonymisering av patientdata på AI-sidan.
💚 Tack till teamet som drev fram denna version - genom rapporter, tester, kod och tålamod:
- Bohdan - ad hoc-sessioner, paketgränser och respitperiod, DDD-granskning, KSeF-fakturor, dussintals fixar (SCRUM-756, 815, 1267, 1268, 1276, 1280-1290, 1293, 1309-1316, 1353-1357, 1366, 1388, 1391, 1392)
- Bartek - trevägssammanfogning, 9 separata KBT-analyser, kognitiva förvrängningar, räknare för paketsessioner (SCRUM-1266, 1320, 1338, 1368-1375, 1385, 1386)
- Ewa Cylwik / Ewa - Beck-PDF, en andra AITS-session för samma patient, mörkt tema och tomt tillstånd på mobil, flerspråkig utskick, UI-färger, unikhet för patientens e-post (SCRUM-883, 898, 902, 1089, 1094, 1297, 1304, 1307, 1319)
- Joanna - återkommande kalender, dölja Zoom, avbokning i tid, självreflektion istället för betyg på sessionens kvalitet (SCRUM-789, 874, 918, 919, 1005)
- Dessutom Bartlomiej för kognitiva förvrängningar och sessionsräknaren, som blev grunden för den nya prenumerationsmodellen
1. ⚡ Ad hoc-sessioner - spela in innan patienten anländer
Om du någon gång snabbt har behövt slå på en inspelning - eftersom en patient dök upp oanmäld, eftersom det är en engångskonsultation, eftersom det är ett möte med någon som ännu inte finns i din journal - löser den nya modulen för ad hoc-sessioner hela detta problem.
- Snabbinspelningsknapp i webbpanelen, i PWA på telefonen och i MAUI-appen - ett klick startar inspelningen innan du ens fyller i patientens uppgifter
- AdHoc-inkorg - en dedikerad brevlåda för otilldelade inspelningar tills du bestämmer vart de ska
- AssignPatientModal - tilldela inspelningen till en befintlig patient eller skapa en ny direkt från inkorgen
- Fortsätt / återgå till rummet - avsluta inspelningen av en session du började tidigare
- Bevarande av föräldralösa poster + automatisk avslutning - sessioner som inte tilldelats inom X dagar avslutas automatiskt så att inkorgen hålls ren
- Video “Starta utan patient” - i LiveKit-rummet kan du starta en session utan att krocka med en befintlig patient; ad hoc-sessionen hamnar sedan i inkorgen
Sektionen är dold bakom PromptyAI-koden i Inställningar - avstängd som standard, för användare som vill se resten först. Designad och levererad av Bohdan.
2. 📊 Paketgränser och respitperiod - transparent prenumeration
Prenumerationerna har fått en total genomgång. De gamla planerna Starter/Standard är avaktiverade, ersatta av Start / Practice / Pro - dimensionerade efter faktisk sessionsvolym per månad.
- Sessionsräknare på instrumentpanelen - se hur många sessioner du har använt denna månad och hur många som återstår i paketet
- Gränsvärde-mejl - automatiska aviseringar vid 80 % och 100 % användning
- Uppgraderingsförslag - när du når gränsen får du ett vänligt förslag om planbyte istället för en hård blockering
- Priser från Stripe + rabatter - priset du ser i appen kommer direkt från Stripe med aktiva rabatter tillämpade (betatestarkoden går inte ut)
- Inbyggd uppsägning av prenumeration - säg upp direkt i appen, ingen anledning att mejla supporten
- 14 dagars respitperiod - om en betalning misslyckas får du 14 dagar med åtkomst enbart till ditt eget konto (inga patientförhandsvisningar), med mejl vid T+0 och T+13. Verklig dataförlust inträffar först efter två veckor
- Prenumerationsbanner - ett rent meddelande högst upp i appen utan tom bård mellan menyn och varningen
- Simulator för sessionsgräns - i PromptyAI-panelen finns ett testläge där du kan se hur appen beter sig vid ett fullt paket
Gemensamt arbete av Bartlomiej (räknare och gränser, SCRUM-1266) och Bohdan (prenumeration, respit, uppgraderingsförslag - SCRUM-756, SCRUM-1366, SCRUM-1391, SCRUM-1392).
3. 📝 Trevägssammanfogning för anteckningar - terapeut, AI och transkription i en vy
Detta är en av de största arkitektoniska förändringarna under huven, men effekten på det dagliga arbetet är mycket synlig: varje anteckningsfält (Notes, SessionSummary, sektionerna för konceptualisering) kommer nu ihåg separat vad terapeuten skrev, vad AI genererade och vad som kom från diktafonen/transkriptionen.
- Trevägs-anteckningar (Notes 3-way) - anteckningsvyn visar tre källor sida vid sida: din text, AI-förslag och automatisk transkription, och du väljer vad som ska behållas
- SessionSummary 2-way + JSON-sammanfogning - i sessionssammanfattningen sammanfogar du ditt arbete med AI-analysen till ett enda sammanhängande dokument
- Tidsstämpel-avgränsare - när du manuellt redigerar ett AI-fält lämnar systemet ett synligt spår av när och vems fragmentet är
- [AI]-märkning från första genereringen - dina fält blandas inte med genererade
- SourceBadge - en färgglad bricka med en ikon som visar var ett fragment kommer ifrån, istället för text i VERSALER
- Ersättning av AI-sektion istället för tillägg - när du begär en ny generering av sammanfattningen ersätter AI sektionen istället för att stapla en till kopia under
Designad och levererad av Bartek (SCRUM-1320, SCRUM-1368-1375). Under huven: full i18n på 8 språk och nya DDD-kontexter.
4. 🔍 KBT-analyser - 9 separata rapporter på begäran
Den gamla monolitiska “generera KBT-analys” har delats upp i 9 separata delar som terapeuten kör när de faktiskt behövs. Mindre väntan, mer kontroll.
- 9 oberoende analyser - varje genereras separat, på begäran
- Kugghjul för promptredigering - klicka på kugghjulet bredvid varje analys för att se/ändra prompten AI kommer att använda
- Sektionen KBT-ANALYSER bakom PromptyAI-kod - sektionen är tillgänglig efter att ha angett koden i Inställningar, för användare som testar nya funktioner
Kognitiva förvrängningar fick en egen vy (rapporterad av Bartlomiej, SCRUM-1385):
- Datavy istället för AI-rapport - du ser konkreta citat från transkriptionen taggade av AI, inte en berättelse genererad från dem
- Alla citat efter expandering - inget datumintervallfilter, expandering visar allt
- Tillgänglig i huvudmenyn - under Konceptualisering v2
Den gamla prompten COGNITIVE_DISTORTIONS_INVENTORY har tagits bort (SCRUM-1386).
5. 🌐 Offentlig terapeutprofil - fullständig ombyggnad med redigeringspaneler
Den offentliga profilen under varumärket aitherapy.support har byggts om helt.
- 3 nya redigeringspaneler - biografi, specialiseringar, kontaktuppgifter redigeras i eleganta sidopaneler
- Ägarens redigeringsläge - när du visar din egen profil medan du är inloggad finns redigeringsknappar nära till hands
- Antal år av erfarenhet - nytt fält
YearsOfExperiencesynligt på den offentliga profilen - Färgombrandning - salvia/lavendel-palett under varumärket aitherapy.support
- Sektionen “Din integritet” borttagen - den var överflödig; GDPR finns i sidfoten
- Lucide-ikoner - modern, ren ikontypografi
Under huven lades en offentlig endpoint till, GET /api/public/therapists - som returnerar terapeuter med aktiva offentliga profiler. Grunden för en terapeutkatalog.
6. 🎥 Videosessioner - PiP, byta kameror, fixat bakgrundssuddighet
Video fick en uppsättning fixar som varje terapeut som kör sessioner via appen kommer att märka av.
- PiP/minimera - minimera videorummet till en flytande miniplayer och kolla anteckningar i en annan flik utan att bryta anslutningen. Mikrofon och kamera fortsätter fungera
- Byt kameror - byt vem som är i huvudvyn och vem som är i mini med ett klick
- PiP-återupptagning - när du kommer tillbaka från minimering hoppar du över lobbyn (PreJoinLobby) och kommer direkt in i samtalet
- Ljud per deltagare för diarisering - transkriptionen delar upp talare även i PiP
- Bakgrundssuddighet fixad - CSP blockerade MediaPipe WASM; suddighet fungerar nu med ett klick
- Renare AITS-sessions-UI - AI-assistenten försvann från verktygsfältet, mindre visuellt brus
- Klickbar PiP-overlay - genom att ta bort
pointerEvents:noneochoverflow:hiddenreagerar PiP-knapparna på klick - Knappen “Anslut till session” - var dold av en CSS-överskrivning, är nu synlig
- Föråldrad closure i handleMaximize - fixad; PiP-maximering kastar inte längre ett fel
7. 📐 Beck v2-konceptualisering och ABC - PDF, versionsväxling, promptredigering
- Beck- och ABC v2-PDF - fixad formatering och automatiskt inkluderande i sessionsmaterial (rapporterat av Ewa, SCRUM-1297)
- Beck-PDF - endast kantlinjer i sektionerna, färgglada specialiseringar, rena initialer, SVG-pil mellan sektioner
- Växling mellan ABC v1/v2 i Konceptualisering v2 - välj vilken ABC-version som ska visas
- Kugghjul för promptredigering i ABC v2 - ändra AI-prompten i fliken ABC v2
- PDF-export för AI-analyser och ABC per session - enskilda analyser exporteras separat
- Pluralisering av ABC-etiketter på 8 språk - konceptualiseringstabellen har korrekta pluralformer
- Fix för tomma ABC-kolumner - backend returnerar korrekta egenskapsnamn i plural
8. 🧾 Fakturor och KSeF - val av betalningar + tillståndsmaskin
Faktureringssystemet har omarbetats för överensstämmelse med KSeF (Polens nationella system för e-fakturering).
- Faktura från valda betalningar - välj betalningar och systemet skapar en enda faktura från dem (ögonblicksbild + Payment-nyckel)
- Startpunkt “Utfärda faktura” i terapeutens ekonomivy - snabb åtkomst från instrumentpanelen
- Borttagning av rader i fakturautfärdandets modalfönster - rätta till misstag i farten
- Uppdelning av dev/prod för KSeF - sandlåda och produktion körs på separata autentiseringsuppgifter
- Tillståndsmaskin för fakturor (SCRUM-1357 Bohdan) - Utkast → Utfärdad → Skickad → Avbruten, med en databasbegränsning mot otillåtna övergångar
- AE KsefToken - KSeF-token krypterad med Always Encrypted
Gemensamt arbete av Bohdan (SCRUM-1357, SCRUM-1388).
9. 📅 Kalender, återkommande sessioner och platser
Vecko- och den återkommande kalendern fick dussintals mindre men synliga förbättringar - de flesta rapporterade av Joanna och Ewa.
- Sessioner från 22:00 - var osynliga i veckorutnätet, visas nu till dagens slut
- Alla timmar i rutnätet för återkommande tider (SCRUM-874, Joanna)
- En avbokad session i tid - visas inte som “Obetald” (SCRUM-918, Joanna)
- Etikett för återkommande mönster bredvid den återkommande tiden (SCRUM-919, Joanna) - du ser “varje vecka”, “varannan vecka” bredvid varje återkommande session
- Dölja Zoom-integrationen från UI (SCRUM-789, Joanna) - Zoom stöds inte längre som en videokanal
- Sessionspopup i kalendern - döljs inte längre utanför skärmen
- TherapistAvailability - automatisk sparning vid varje ändring (debounce 800 ms), ingen sparknapp behövs
- AddSessionModal - alternativet “skapa session utanför tillgänglighetstider” - undantag kan tvinga fram en tid
- Status “Uteblivet besök” (NoShow=5) - ny status, kan ställas in även från en avslutad eller avbokad session
- RecurringSessionsCalendar - sammanfattningsrutor ovanför förklaringen och rutnätet
Terapeutplatser fick online-mötekanaler per plats:
- Läge på plats - adress- och stadsfält för fysiska platser
- Växel för på plats/online istället för en kryssruta - tydligare lägesval
- Onlinekanal per plats - olika platser kan ha olika kanaler (AITS, Google Meet, extern länk), sprids automatiskt till sessioner
- Permanenta mötesrum per patient - varje patient har en permanent AITS-rumslänk och en separat extern länk synlig i patientinställningarna
- Radering av plats - fixad (försvann från databasen men fanns kvar i UI-listan)
Och slutligen mötestyp i återkommande sessioner - fixad spridning av MeetingType och MeetingLink från konfigurationen av den återkommande serien till varje genererad session och till påminnelsemejl (SCRUM-902, Ewa).
10. 📱 Mobilapp - mörkt tema, AdHoc-inkorg, finslipning
Mobilen har gått över till version 1.5.0 (build 18) med en mängd användarsynliga ändringar och några signeringsjusteringar för App Store/Play Store.
- Mörkt tema - fullt mörkt läge med läsbara gruppheaders (SCRUM-1089, Ewa + SCRUM-815)
- Konfigurerbara påminnelser - välj när du vill ha en sessionsavisering
- Mobilpåminnelse 15 min - 15 minuters förhandsvarning inför session + varning när systemaviseringar är avstängda (SCRUM-815, Bohdan)
- Tomt tillstånd för sessionslistan - istället för en tom skärm, en rikare onboarding (SCRUM-1094, Ewa)
- Banner för automatisk uppdatering - när appen upptäcker en uppdatering visar den en inbjudande uppdateringsbanner
- AdHoc-inkorg + AssignPatient + snabbstart i MAUI (SCRUM-1289, Bohdan)
- PWA-snabbstart på mobil för ad hoc-sessioner (SCRUM-1286, Bohdan)
- Responsiv webbvy för telefon - desktop oförändrad, på telefonen anpassas layouten till den smala skärmen
- Deep link-hanterare i iOS - använder BindingContext, registrering av URL-schema
- NSLocation-syftesbeskrivningar i iOS - fixar ITMS-90683 (App Store avvisade byggen utan dessa)
- Android AAB - explicit jarsigner-steg
- Material för App Store Connect och Google Play - fullständigt paket plus en WCAG 2.2-granskning
11. 🔐 Säkerhet: SOC 2/HIPAA, MFA, full pseudonymisering av AI
Under produktlagret genomförde vi en full härdningsgenomgång enligt SOC 2 och HIPAA plus en DDD-granskning med fem konkreta leveranser.
- Ny MFA-verifiering för kritiska åtgärder - för känsliga åtgärder (lösenordsbyte, dataexport) bekräftar du på nytt med MFA
- Reservkoder för MFA - nödkoder om du tappar bort telefonen
- IAnonymizedLlmGateway (SCRUM-1353, Bohdan) - alla AI-modellanrop går nu genom en pseudonymiserande gateway. Namn, datum, platser ersätts med pseudonymer innan de lämnar appen; AI får bara den anonymiserade versionen
- Pseudonymisering av e-post-/SMS-aviseringar (SCRUM-1354) - meddelandemallar läcker inte heller patientdata vid utskick
- OAuth-tokens Google/Zoom krypterade med Always Encrypted (SCRUM-1355) - integrationers åtkomsttokens är kolumnkrypterade
- Flaggan Patient.PendingConsent (SCRUM-1356) - patienter utan aktivt samtycke får ett tvingande flöde + en badge på frontend
- Tillståndsmaskin för fakturor (SCRUM-1357) - fakturastatusar är oföränderliga i ogiltiga riktningar, tillämpat på databasnivå
- Oföränderlighet i granskningsloggen + användarinstantögonblick i 3 granskningstabeller - åtgärdsloggen kan inte ändras i efterhand
- DeanonymizationAuditLog - varje användning av patientdata efter avpseudonymisering loggas tillsammans med en ögonblicksbild av e-post och visningsnamn för den användare som utförde den
- Hårdkodade hemligheter borttagna - alla nycklar och lösenord från appsettings.json flyttade till Azure Key Vault
- Always Encrypted för all textdata från användare (ADR-0018) - arkitektonisk riktning godkänd; fler tabeller migreras i nästa version
- Analys av efterlevnadsluckor enligt ISO/IEC - 95 luckor kartlagda över 9 standarder, med en åtgärdsplan
Understött av en full DDD-granskning (sessioner 1-8, faserna 1-6) - omstrukturering av domänkontexter, arkitekturdokumentation, ADR:er, mermaid + tester, playbooks, integration med Confluence.
12. 👤 Patientportal - analyser under Mål, material, bättre förhandsvisning
- Beck-konceptualisering i patientens flik “Mål” - när du publicerar konceptualiseringen ser patienten den i sin portal
- Publicering av analyser till patientportalen + aviseringspreferenser (SCRUM-1338, Bartlomiej) - styr vad och när patienten tar emot
- PDF-förhandsvisning i portalen -
iframeistället förembed, CSP tillåterblob:(PDF:er laddas) - Förhandsvisning av patientportalen från terapeutens vy - se vad patienten ser (ram i wrapper, instrumentpanel 1:1)
- Sessionsmaterial i Azure Blob Storage - SessionMaterial som blob, inget lokalt filsystem längre
- Sektion för samtycke/dokument + registreringskälla i patientinställningarna
- Global unikhet för patientens e-post (SCRUM-898) - en andra patient med samma e-post får ett 409-fel och modalen stängs (SCRUM-898, Ewa)
- Seeder för aviseringsmallar för SK, CA, RU, UK, LT (SCRUM-883, Joanna) - fullt flerspråkigt utskick
- Resolver-reserv till plattformens standard - när en terapeut inte har åsidosatt mallen skickas standardmallen på flera språk (SCRUM-883)
13. 🎙️ Transkription - pålitlig inspelning, tillägg, realtid med diarisering
- Tillägg till befintlig transkription - fortsätt spela in i samma session; segment läggs till (avsikten överlever en sidladdning)
- Ljud per deltagare för diarisering - videotranskription delar upp talare på oberoende spår
- Transkription överlever PiP - att minimera rummet bryter inte inspelningen
- Transkriptionsspråk från sessionsinställningarna - STT använder det språk du ställt in för patienten
- Automatisk uppdatering av transkription vid focus/visibilitychange/återgång från video
- Bekräftelse vid stopp av inspelning < 2 s - skydd mot en tom WAV-fil från ett feltryck
- Statusmärke “Skickar” i sessionslistan - du ser när en inspelning håller på att laddas upp
- Realtid med diarisering i videosession - startade inte tidigare; fungerar nu
- OPFS-säkerhetskopiering + 48 kbps Opus - inspelningen sparas också lokalt i OPFS som reserv, ljudparametrar harmoniserade
- Direkt SAS-uppladdning av ljud (SCRUM-1276, Bohdan) - ljud går direkt till Azure via en SAS-URL, förbi backend
- m4a nativt till Azure Speech - m4a hanteras nativt, ingen konvertering
- Formatdetektion via magiska byte (SCRUM-1311, Bohdan) - när Content-Type är
application/octet-streamdetekteras formatet från filens innehåll - Hub utan text i databasen - SignalR-realtidshubben lagrar inte längre text i databasen; finishPending använder multipart POST som MAUI
- Fix för SignalR 1006 - tog bort skipNegotiation så att Azure SignalR fungerar + justering av keep-alive
- [AI]-märkning från första genereringen + pålitlig sökning efter märkning
14. 💬 Aviseringar, patientinställningar, mindre UX-detaljer
- NotificationTemplatesAdmin - HTML/Text-växel i e-postredigeraren
- NotificationSettings - e-postförhandsvisning renderar HTML med reservlösning
- PromptEditModal - ombyggd: flikar, modellväljare, obligatoriska versionsnamn
- Återställning av flaggan Hide_dev_ui vid utloggning - utvecklarflaggor följer inte med mellan sessioner
- Testpatient Ann Fauler - engelsk 1:1-motsvarighet till den polska Anna Pełnialska för demos enbart på engelska
- Växel för presentationsläge i dev-UI - snabb växling till presentationsläge
- Felrapportering - Jira-bilagor + etikett för rapportören + centrerad “Skicka”-knapp
- Fixad loop för autentiseringsförnyelse - avbryt förfrågningar och gå tillbaka till inloggning vid 401
- Banner “Servern startar” - vid kallstart (scale-to-zero) visar vi ett meddelande istället för en tom sida
- Betygsskala för session - självreflektion istället för kvalitetsbetyg + ansvarsfriskrivning (SCRUM-1005, Joanna)
- Färgen på knappen “Minimera” ändrad till kobolt-violett (SCRUM-1307, Ewa)
- Färgen på etiketten “Transkription” ändrad från röd till grön (SCRUM-1304, Ewa)
- “Spela in nu” → “Spela in AdHoc-session” - mer korrekt knappnamn
- Sandlåda med grönt band i övre vänstra hörnet + prefixet
[SANDBOX]i titeln - för att undvika förvirring om miljö, plus en repeterbar klonprocess PROD → Sandbox (Azure IaC + skript)
✅ QA-checklista - vad som ska verifieras efter driftsättning
| Funktion | Verifiera |
|---|---|
| Ad hoc-session - Snabbinspelning | Klicka på Snabbinspelning på instrumentpanelen eller i PWA - inspelningen startar omedelbart, sessionen hamnar i AdHoc-inkorgen |
| AssignPatient i AdHoc-inkorg | Öppna en ad hoc-inspelning - du kan tilldela den till en befintlig patient eller skapa en ny |
| Paketgräns | Instrumentpanelen visar sessionsräknaren för den aktuella månaden och hur många som återstår i paketet |
| Respitperiod efter misslyckad betalning | Prenumerationssimulator i PromptyAI - framtvinga en misslyckad betalning, du får åtkomst enbart till kontot i 14 dagar |
| Trevägssammanfogning av anteckningar | I sessionsdetaljerna visar fältet Anteckningar tre källor sida vid sida (terapeut/AI/transkription); du kan välja vad som ska behållas |
| 9 KBT-analyser | Fliken för KBT-analyser visar 9 separata delar; varje genereras på begäran; varje har ett kugghjul för promptredigering |
| Offentlig profil - paneler | Öppna din egen offentliga profil medan du är inloggad - redigeringspaneler för biografi, specialisering, kontakt är synliga |
| Video-PiP | Klicka på minimera under en videosession - fönstret fälls ihop till en miniplayer, mikrofonen fungerar fortfarande, du återgår utan lobby |
| Bakgrundssuddighet | Aktivera bakgrundssuddighet i videolobbyn - fungerar direkt, inga CSP-fel |
| PDF för Beck-konceptualisering | Generera PDF för konceptualiseringen - visas också i sessionsmaterialen |
| ABC v1/v2-växel | I konceptualisering v2 kan du växla ABC-källan mellan version 1 och 2 |
| Faktura från valda betalningar | Välj några betalningar och klicka på “Utfärda faktura” - en enda faktura skapas från ögonblicksbilden |
| Återkommande session med Google Meet | Den andra och tredje sessionen i serien har korrekt inställd Google Meet och mejlet innehåller rätt länk |
| Sessioner från 22:00 | Veckokalendern visar sessioner schemalagda från 22:00 och senare |
| Statusen “Uteblivet besök” | I en avslutad/avbokad session kan du ändra status till “Uteblivet besök” |
| Mörkt tema på mobil | Växla till mörkt tema i mobilappen - gruppheaders är läsbara |
| AdHoc-inkorg på mobil | Mobilen visar ad hoc-inkorgen och låter dig tilldela en patient |
| Ny MFA-verifiering | Vid lösenordsbyte ber appen om MFA igen |
| Pseudonymisering av AI | I loggarna ser du att patientdata går till AI som pseudonymer |
| Sessionsmaterial som blob | Ladda upp en fil till sessionsmaterial - den hamnar i Azure Blob Storage, inte på lokal disk |
| Global unikhet för patientens e-post | Lägg till en andra patient med samma e-post - du får ett 409-fel och modalen stängs |
| Banner “Servern startar” | Efter en längre tids inaktivitet visar appens ingång bannern istället för en tom sida |
🛠️ Vad vi har fixat - i finstilt
Utöver de stora funktionerna löstes cirka 80 rapporter från testare och användare. Höjdpunkter:
- PiP-overlayn var inte klickbar - fixad
- Föråldrad closure i handleMaximize - PiP-maximering kastar inte längre ett fel
- PiP behåller anslutningen - tidigare utlöstes
room.disconnect()vid övergången mellan helskärm och PiP - Knappen “Anslut till session” var dold av en CSS-överskrivning - avslöjad
- En andra AITS-session för samma patient (SCRUM-1319, Ewa) - tog bort UNIQUE INDEX på
Session.VideoInviteToken - Sessionsnumrering i konceptualiseringen hoppar över avbokade (SCRUM-1267, Bohdan)
- Null-säker åtkomst till Payment i GetSessionDetailsAsync (SCRUM-1268, Bohdan)
- Testsessionskrock mellan Anna Pełnialska och Jan kl. 14:00 - fixad i seedern
- Nedsaktning av instrumentpanelen - null-säker mappning i GetTodaySessionsAsync och GetSessionDetailsAsync
- Automatisk uppdatering efter avslutad mikrofoninspelning - fungerar
- Batchreserv skriver inte över text från tidigare inspelningar eller blockerar UI:t med status Bearbetar
- Transkriptionsspråk från sessionsinställningarna - STT respekterar patientens preferens
- CSP - tillåter
*.clarity.ms,blob:i connect-src, analys i script-src - Loop för autentiseringsförnyelse - avbryter förfrågningar efter 401 och går tillbaka till inloggning
- CSP MediaPipe WASM - bakgrundssuddighet fungerar
- DEV/SANDBOX-bandet även på Azures FQDN, inte bara på den egna domänen
- Falsk toast “Transkription misslyckades” vid sessionsstart - borttagen
- Toast istället för röd banner vid misslyckad transkription + borttagen “Resample”-knapp
- Realtid med diarisering i videosession - startar korrekt
- AI-strömning - AbortController per hanterare istället för delad (
BodyStreamBuffer was aborted) - Nginx non-root + Azure Container Apps - flera iterationer för att få det att fungera
- Distribuerat lås (sp_getapplock) - startmigreringar kolliderar inte längre vid parallella driftsättningar
- DbUpdateConcurrencyException i batch-transkriptionens poller (SCRUM-1313, Bohdan)
- BlobNotFound som förväntat tillstånd (SCRUM-1314, Bohdan)
- Icke-JSON-nyttolaster i Stripe-webhooken (skannrar/botar) - hanteras tyst (SCRUM-1315, Bohdan)
- Formatdetektion för ljud via magiska byte (SCRUM-1311, Bohdan)
- Robust ljuduppladdning + defensiv Content-Type (SCRUM-1293, Bohdan)
- FK-migrering ActiveEmbeddingModelId → ON DELETE NO ACTION
- Dev-klientens driftsättning - CACHE_BUST=
github.shatvingar fram en ombyggnad av frontend
Det här är den största, tätaste versionen denna vår. Om en funktion känns bekant - är det för att det var din önskan eller ditt ärende. Tack för varje rapport och varje skärmdump.
Artikeln är sammanställd av Therapy Support-teamet