Notes de la versió — 26 d'abril de 2026
Fa 19 dies vam publicar una gran versió amb el mòdul de diagnòstic i l’anàlisi de la prosòdia. Des de llavors, l’equip ha impulsat 295 canvis més — i no són petits. En aquesta versió pots enregistrar una sessió ad-hoc abans fins i tot que arribi el pacient, les teves notes es fusionen amb el treball de la IA i la transcripció costat per costat en tres columnes, el perfil públic de terapeuta torna amb tota la força, i l’aplicació mòbil ja té tema fosc. Sota el capó, hem passat per una revisió d’enduriment SOC 2 / HIPAA, una auditoria DDD i la pseudonimització completa de les dades del pacient al costat de la IA.
💚 Gràcies a l’equip que ha impulsat aquesta versió — amb informes, proves, codi i paciència:
- Bohdan — sessions ad-hoc, límits de paquet i període de gràcia, auditoria DDD, factures KSeF, desenes de correccions (SCRUM-756, 815, 1267, 1268, 1276, 1280-1290, 1293, 1309-1316, 1353-1357, 1366, 1388, 1391, 1392)
- Bartek — fusió a tres bandes, 9 anàlisis de CBT separades, distorsions cognitives, comptador de sessions del paquet (SCRUM-1266, 1320, 1338, 1368-1375, 1385, 1386)
- Ewa Cylwik / Ewa — PDF de Beck, segona sessió AITS per al mateix pacient, tema fosc i estat buit al mòbil, correu multilingüe, colors de la interfície, unicitat del correu del pacient (SCRUM-883, 898, 902, 1089, 1094, 1297, 1304, 1307, 1319)
- Joanna — calendari recurrent, ocultació de Zoom, cancel·lació a temps, autoreflexió en lloc de valoració de la qualitat de la sessió (SCRUM-789, 874, 918, 919, 1005)
- I també Bartlomiej, per les distorsions cognitives i el comptador de sessions, que s’han convertit en la base del nou model de subscripció
1. ⚡ Sessions ad-hoc — enregistra abans que arribi el pacient
Si mai has hagut d’activar ràpidament una gravadora — perquè un pacient s’ha presentat sense avisar, perquè és una consulta única, perquè és una reunió amb algú que encara no consta als teus registres — el nou mòdul de sessió ad-hoc resol tot aquest problema.
- Botó d’enregistrament ràpid al tauler web, a la PWA del mòbil, i a l’aplicació MAUI — un clic comença l’enregistrament fins i tot abans d’omplir les dades del pacient
- Safata AdHoc — una safata dedicada per a enregistraments sense assignar fins que decideixis on van
- Modal AssignPatient — assigna l’enregistrament a un pacient existent o crea’n un de nou directament des de la safata
- Reprendre / tornar a entrar a la sala — acaba d’enregistrar una sessió que vas començar abans
- Retenció d’orfes + tancament automàtic — les sessions sense assignar durant X dies es tanquen automàticament perquè la safata es mantingui endreçada
- Vídeo “Començar sense pacient” — a la sala LiveKit pots començar una sessió sense col·lidir amb un pacient existent; l’AdHoc aterra després a la safata
La secció està bloquejada darrere del codi PromptyAI a la Configuració — desactivada per defecte, per als usuaris que volen veure primer la resta. Dissenyada i publicada per Bohdan.
2. 📊 Límits de paquet i període de gràcia — subscripció transparent
Les subscripcions han rebut una renovació completa. Els antics plans Starter/Standard estan desactivats, substituïts per Start / Practice / Pro — dimensionats segons el volum real de sessions mensuals.
- Comptador de sessions al tauler — veu quantes sessions has fet servir aquest mes i quantes en queden al teu paquet
- Correus de límit — notificacions automàtiques al 80% i al 100% d’utilització
- Avís d’ampliació — quan arribes al límit, reps un suggeriment amable de canvi de pla en lloc d’un bloqueig sever
- Preus des de Stripe + descomptes — el preu que veus a l’aplicació ve directament de Stripe amb els descomptes actius aplicats (el codi de beta tester no caduca)
- Cancel·lació nativa de la subscripció — cancel·la directament des de l’aplicació, sense necessitat d’enviar un correu a suport
- Període de gràcia de 14 dies — si un pagament falla, tens 14 dies d’accés només al teu propi compte (sense previsualitzacions de pacients), amb correus a T+0 i T+13. La pèrdua real de dades només arriba després de dues setmanes
- Bàner de subscripció — missatge net a la part superior de l’aplicació sense cap barra buida entre el menú i l’alerta
- Simulador de límit de sessions — al panell PromptyAI hi ha un mode de prova on pots veure com es comporta l’aplicació amb un paquet complet
Treball conjunt de Bartlomiej (comptador i límits, SCRUM-1266) i Bohdan (subscripció, gràcia, avís d’ampliació — SCRUM-756, SCRUM-1366, SCRUM-1391, SCRUM-1392).
3. 📝 Fusió a tres bandes per a les notes — terapeuta, IA i transcripció en una sola vista
Aquest és un dels canvis arquitectònics més grans sota el capó, però l’efecte en el treball diari és molt visible: cada camp de notes (Notes, Resum de sessió, seccions de conceptualització) ara recorda per separat el que va escriure el terapeuta, el que va generar la IA i el que va venir del dictàfon / la transcripció.
- Notes a tres bandes — la vista de notes mostra tres fonts costat per costat: el teu text, els suggeriments d’IA i la transcripció automàtica, i tu tries què conservar
- Fusió a dues bandes + JSON per al resum de sessió — al resum de sessió fusiones el teu treball amb l’anàlisi de la IA en un únic document coherent
- Separador de marca de temps — quan edites manualment un camp d’IA, el sistema deixa un rastre visible de quan i de qui és aquest fragment
- Marcador [IA] des de la primera generació — els teus camps no es barregen amb els generats
- SourceBadge — una píndola colorida amb una icona que mostra d’on ve un fragment, en lloc de text en MAJÚSCULES
- Substitució de secció d’IA en lloc d’afegir-la — quan demanes tornar a generar el resum, la IA substitueix la secció en lloc d’apilar-hi una altra còpia a sota
Dissenyat i publicat per Bartek (SCRUM-1320, SCRUM-1368-1375). Per sota: i18n complet en 8 idiomes i nous contextos DDD.
4. 🔍 Anàlisis de CBT — 9 informes separats a petició
L’antiga “generar anàlisi de CBT” monolítica s’ha dividit en 9 elements separats que el terapeuta executa quan realment els necessita. Menys espera, més control.
- 9 anàlisis independents — cadascuna generada per separat, a petició
- Roda dentada d’edició de prompt — clica la roda dentada al costat de cada anàlisi per veure/modificar el prompt que farà servir la IA
- Secció ANÀLISIS DE CBT darrere del codi PromptyAI — secció disponible després d’introduir el codi a la Configuració, per als usuaris que proven noves funcionalitats
Les distorsions cognitives han rebut la seva pròpia vista (reportat per Bartlomiej, SCRUM-1385):
- Vista de dades en lloc d’un informe d’IA — veus cites concretes de la transcripció etiquetades per la IA, no una narrativa generada a partir d’aquestes
- Totes les cites en expandir — sense filtre d’interval de dates, expandir revela tot
- Disponible al menú principal — sota Conceptualització v2
L’antic prompt COGNITIVE_DISTORTIONS_INVENTORY s’ha eliminat (SCRUM-1386).
5. 🌐 Perfil públic de terapeuta — renovació completa amb calaixos d’edició
El perfil públic sota la marca aitherapy.support s’ha reconstruït completament.
- 3 nous calaixos d’edició — biografia, especialitzacions, dades de contacte editades en panells laterals elegants
- Mode d’edició per al propietari — quan veus el teu propi perfil amb la sessió iniciada, tens els botons d’edició a mà
- Anys d’experiència — nou camp
YearsOfExperiencevisible al perfil públic - Rebrandatge de colors — paleta sàlvia/lavanda sota la marca aitherapy.support
- Secció “La teva privadesa” eliminada — era redundant; el RGPD és al peu de pàgina
- Icones Lucide — tipografia d’icones moderna i neta
Sota el capó, s’ha afegit un endpoint públic GET /api/public/therapists que retorna els terapeutes amb perfils públics actius. Base per a un directori de terapeutes.
6. 🎥 Sessions de vídeo — PiP, intercanvi de càmeres, desenfocament de fons corregit
El vídeo ha rebut un conjunt de correccions que qualsevol terapeuta que faci sessions a través de l’aplicació notarà.
- PiP / minimitzar — minimitza la sala de vídeo a un mini-reproductor flotant i consulta les notes en una altra pestanya sense trencar la connexió. El micròfon i la càmera continuen funcionant
- Intercanviar càmeres — canvia qui apareix a la vista principal i qui a la mini amb un clic
- Reprendre des de PiP — en tornar de la minimització, et saltes la sala d’espera (PreJoinLobby) i vas directament a la conversa
- Àudio per participant per a la diarització — la transcripció separa els parlants fins i tot en PiP
- Desenfocament de fons corregit — la CSP bloquejava MediaPipe WASM; el desenfocament ara funciona amb un clic
- Interfície de sessió AITS més neta — l’assistent d’IA ha desaparegut de la barra d’eines, menys soroll visual
- Superposició PiP clicable — s’ha eliminat
pointerEvents:noneioverflow:hidden, els botons de PiP responen als clics - Botó “Unir-se a la sessió” — estava amagat per una substitució CSS, ara és visible
- Closure obsoleta a handleMaximize — corregida; maximitzar des de PiP ja no llança un error
7. 📐 Conceptualització de Beck v2 i ABC — PDF, canvi de versió, edició de prompts
- PDF de Beck i ABC v2 — format corregit i inclusió automàtica als materials de sessió (reportat per Ewa, SCRUM-1297)
- PDF de Beck — seccions només amb vora, especialitzacions en color, inicials netes, fletxa SVG entre seccions
- Interruptor ABC v1/v2 a Conceptualització v2 — tria quina versió de l’ABC vols mostrar
- Roda dentada d’edició de prompt a ABC v2 — modifica el prompt d’IA a la pestanya ABC v2
- Exportació PDF per a anàlisis d’IA i ABC per sessió — les anàlisis individuals s’exporten per separat
- Pluralització de les etiquetes de l’ABC en 8 idiomes — la taula de conceptualització té les formes plurals correctes
- Correcció de columnes buides de l’ABC — el backend retorna els noms de propietat plurals correctes
8. 🧾 Factures i KSeF — selecció de pagaments + màquina d’estats
El sistema de facturació s’ha refactoritzat per complir amb KSeF (el sistema nacional polonès de facturació electrònica).
- Factura a partir de pagaments seleccionats — tria pagaments i el sistema crea una única factura a partir d’aquests (instantània + FK de pagament)
- Punt d’entrada “Emetre factura” a la vista financera del terapeuta — accés ràpid des del tauler
- Eliminació d’elements al modal d’emissió de factures — corregeix errors sobre la marxa
- Separació KSeF dev/prod — el sandbox i la producció funcionen amb credencials separades
- Màquina d’estats de la factura (SCRUM-1357 Bohdan) — Esborrany → Emesa → Enviada → Cancel·lada, amb una restricció de base de dades sobre transicions il·legals
- AE KsefToken — el token KSeF xifrat amb Always Encrypted
Treball conjunt de Bohdan (SCRUM-1357, SCRUM-1388).
9. 📅 Calendari, sessions recurrents i ubicacions
El calendari setmanal i recurrent ha rebut desenes de millores petites però visibles — la majoria reportades per Joanna i Ewa.
- Sessions a partir de les 22:00 — eren invisibles a la graella setmanal, ara es mostren fins al final del dia
- Totes les hores a la graella de franges recurrents (SCRUM-874, Joanna)
- Sessió cancel·lada a temps — no es mostra com a “Impagada” (SCRUM-918, Joanna)
- Etiqueta de recurrència al costat de la franja recurrent (SCRUM-919, Joanna) — veus “setmanal”, “quinzenal” al costat de cada sessió repetitiva
- Ocultació de la integració de Zoom a la interfície (SCRUM-789, Joanna) — Zoom ja no és compatible com a canal de vídeo
- Popover de sessió al calendari — ja no s’amaga fora de pantalla
- TherapistAvailability — desat automàtic a cada canvi (debounce de 800 ms), sense necessitat de botó de desar
- AddSessionModal — opció “crear sessió fora de l’horari de disponibilitat” — les excepcions poden forçar una franja
- Estat “No presentat” (NoShow=5) — nou estat, es pot establir fins i tot des d’una sessió completada o cancel·lada
- RecurringSessionsCalendar — targetes de resum sobre la llegenda i la graella
Les ubicacions del terapeuta han rebut canals de reunió en línia per ubicació:
- Mode presencial — camps d’adreça i ciutat per a ubicacions presencials
- Interruptor presencial/en línia en lloc d’una casella de verificació — elecció de mode més clara
- Canal en línia per ubicació — diferents ubicacions poden tenir diferents canals (AITS, Google Meet, enllaç extern), propagats automàticament a les sessions
- Sales de reunió permanents per pacient — cada pacient té un enllaç permanent a una sala AITS i un enllaç extern separat visible a la configuració del pacient
- Eliminació d’ubicacions — corregida (desapareixia de la base de dades però es mantenia a la llista de la interfície)
I finalment el tipus de reunió a les sessions recurrents — corregida la propagació de MeetingType i MeetingLink des de la configuració de la sèrie recurrent a cada sessió generada i als correus de recordatori (SCRUM-902, Ewa).
10. 📱 Aplicació mòbil — tema fosc, safata AdHoc, retocs
El mòbil ha passat a la versió 1.5.0 (build 18) amb un munt de canvis visibles per a l’usuari i alguns retocs de signatura per a l’App Store / Play Store.
- Tema fosc — mode fosc complet amb capçaleres de grup llegibles (SCRUM-1089, Ewa + SCRUM-815)
- Recordatoris configurables — tria quan vols la notificació de sessió
- Recordatori mòbil de 15 min — recordatori 15 minuts abans de la sessió + avís quan les notificacions del sistema estan desactivades (SCRUM-815, Bohdan)
- Estat buit per a la llista de sessions — en lloc d’una pantalla en blanc, una incorporació més rica (SCRUM-1094, Ewa)
- Bàner d’actualització automàtica — quan l’aplicació detecta una actualització, mostra un bàner d’actualització atractiu
- Safata AdHoc + AssignPatient + inici ràpid a MAUI (SCRUM-1289, Bohdan)
- Inici ràpid a la PWA mòbil per a sessions ad-hoc (SCRUM-1286, Bohdan)
- Vista web responsiva per a mòbil — l’escriptori no canvia, al mòbil el disseny s’adapta a la pantalla estreta
- Gestor d’enllaços profunds a iOS — utilitza BindingContext, registre d’esquema d’URL
- Cadenes de propòsit NSLocation a iOS — es corregeix ITMS-90683 (App Store rebutjava la compilació sense aquestes)
- AAB d’Android — pas explícit de jarsigner
- Materials per a App Store Connect i Google Play — paquet complet més auditoria WCAG 2.2
11. 🔐 Seguretat: SOC 2 / HIPAA, MFA, pseudonimització completa de la IA
Sota la capa de producte hem fet una revisió completa d’enduriment SOC 2 i HIPAA més una auditoria DDD amb cinc lliuraments concrets.
- Reverificació MFA per a operacions crítiques — per a accions sensibles (canvi de contrasenya, exportació de dades) tornes a confirmar amb MFA
- Codis de reserva per a MFA — codis d’emergència si perds el teu telèfon
- IAnonymizedLlmGateway (SCRUM-1353, Bohdan) — totes les crides al model d’IA passen ara per una porta d’enllaç de pseudonimització. Els noms, dates i llocs se substitueixen per pseudònims abans de sortir de l’aplicació; la IA només rep la versió anonimitzada
- Pseudonimització de notificacions per correu/SMS (SCRUM-1354) — les plantilles de missatge tampoc filtren dades del pacient en enviar-se
- Tokens OAuth de Google/Zoom xifrats amb Always Encrypted (SCRUM-1355) — els tokens d’accés a la integració estan xifrats a nivell de columna
- Indicador Patient.PendingConsent (SCRUM-1356) — els pacients sense consentiment actiu reben un flux d’exigència + un distintiu al frontend
- Màquina d’estats de la factura (SCRUM-1357) — els estats de factura són immutables en direccions no vàlides, aplicat a nivell de base de dades
- Immutabilitat de l’auditoria + instantània d’usuari en 3 taules d’auditoria — el registre d’accions no es pot modificar a posteriori
- DeanonymizationAuditLog — cada ús de dades del pacient després de la deanonimització es registra juntament amb la instantània de correu + nom visible de l’usuari que ho ha fet
- Secrets codificats eliminats — totes les claus i contrasenyes del fitxer appsettings.json s’han traslladat a Azure Key Vault
- Always Encrypted per a totes les dades de text de l’usuari (ADR-0018) — direcció arquitectònica aprovada; més taules migraran a la propera versió
- Anàlisi de bretxes de compliment ISO/IEC — 95 bretxes en 9 estàndards mapejades, amb un pla de remei
Recolzat per una auditoria DDD completa (Sessions 1-8, Fases 1-6) — reestructuració del context de domini, documentació d’arquitectura, ADRs, mermaid + proves, guies pràctiques, integració amb Confluence.
12. 👤 Portal del pacient — anàlisis a Objectius, materials, millor previsualització
- Conceptualització de Beck a la pestanya “Objectius” del pacient — quan publiques la conceptualització, el pacient la veu al seu portal
- Publicació d’anàlisis al portal del pacient + preferències de notificació (SCRUM-1338, Bartlomiej) — controla què i quan rep el pacient
- Previsualització PDF al portal —
iframeen lloc d’embed, la CSP permetblob:(els PDF es carreguen) - Previsualització del portal del pacient des de la vista del terapeuta — veu el que veu el pacient (crom a l’embolcall, tauler 1:1)
- Materials de sessió a Azure Blob Storage — SessionMaterial com a blob, ja no hi ha sistema de fitxers local
- Secció de consentiment / documents + origen del registre a la configuració del pacient
- Unicitat global del correu del pacient (SCRUM-898) — un segon pacient amb el mateix correu rep un 409 i el modal es tanca (SCRUM-898, Ewa)
- Seeder de plantilles de notificació per a SK, CA, RU, UK, LT (SCRUM-883, Joanna) — correu multilingüe complet
- Reserva del resolver al valor predeterminat de la plataforma — quan un terapeuta no ha substituït la plantilla, s’envia la predeterminada multilingüe (SCRUM-883)
13. 🎙️ Transcripció — enregistrament fiable, addició, temps real amb diarització
- Afegir a una transcripció existent — continua enregistrant a la mateixa sessió; els segments s’afegeixen (la intenció sobreviu a una recàrrega de pàgina)
- Àudio per participant per a la diarització — la transcripció de vídeo separa els parlants en pistes independents
- La transcripció sobreviu al PiP — minimitzar la sala no interromp l’enregistrament
- Idioma de transcripció des de la configuració de sessió — l’STT fa servir l’idioma que has establert per al pacient
- Actualització automàtica de la transcripció en enfocament / visibilitychange / retorn del vídeo
- Confirmació en aturar l’enregistrament < 2s — protecció contra un WAV buit per un clic accidental
- Insígnia “Enviant” a la llista de sessions — veus quan un enregistrament s’està pujant
- Temps real amb diarització en sessió de vídeo — no s’iniciava abans; ara funciona
- Còpia de seguretat OPFS + Opus a 48 kbps — l’enregistrament també es desa localment a OPFS com a reserva, paràmetres d’àudio unificats
- Pujada directa d’àudio amb SAS (SCRUM-1276, Bohdan) — l’àudio va directament a Azure a través d’un URL SAS, saltant-se el backend
- m4a natiu a Azure Speech — m4a es gestiona de manera nativa, sense conversió
- Detecció de format per bytes màgics (SCRUM-1311, Bohdan) — quan Content-Type=
application/octet-stream, el format es detecta a partir del contingut del fitxer - Hub sense text a la BD — el hub en temps real de SignalR ja no persisteix text a la base de dades; finishPending fa servir POST multipart com MAUI
- Correcció SignalR 1006 — s’ha eliminat skipNegotiation perquè Azure SignalR funcioni + ajust del keep-alive
- Marcador [IA] des de la primera generació + cerca fiable del marcador
14. 💬 Notificacions, configuració del pacient, petits detalls d’UX
- NotificationTemplatesAdmin — interruptor HTML/Text a l’editor de correu
- NotificationSettings — la previsualització del correu renderitza HTML amb reserva
- PromptEditModal — reconstruït: pestanyes, selector de model, noms de versió obligatoris
- Reinici del flag Hide_dev_ui en tancar sessió — els flags de desenvolupador no persisteixen entre sessions
- Pacient de prova Ann Fauler — equivalent en anglès 1:1 de l’Anna Pełnialska polonesa per a demos només en anglès
- Interruptor de mode presentació a la interfície de desenvolupador — canvi ràpid al mode presentació
- Report d’errors — adjunts de Jira + etiqueta del reportador + botó “Enviar” centrat
- Bucle de refresc d’autenticació corregit — abortar sol·licituds i tornar a l’inici de sessió amb 401
- Bàner “El servidor s’està iniciant” — en un inici en fred (scale-to-zero) mostrem un avís en lloc d’una pàgina en blanc
- Escala de valoració de sessió — autoreflexió en lloc de valoració de qualitat + descàrrec de responsabilitat (SCRUM-1005, Joanna)
- Color del botó “Minimitzar” canviat a violeta cobalt (SCRUM-1307, Ewa)
- Color de l’etiqueta “Transcripció” de vermell a verd (SCRUM-1304, Ewa)
- “Enregistrar ara” → “Enregistrar sessió AdHoc” — nom de botó més precís
- Sandbox amb cinta verda a la cantonada superior esquerra + prefix
[SANDBOX]al títol — per evitar confusions d’entorn, més un clonatge repetible PROD → Sandbox (Azure IaC + scripts)
✅ Llista de verificació de QA — què comprovar després del desplegament
| Funcionalitat | Verificar |
|---|---|
| Sessió ad-hoc — Enregistrament ràpid | Clica Enregistrament ràpid al tauler o a la PWA — l’enregistrament comença immediatament, la sessió aterra a la safata AdHoc |
| AssignPatient a la safata AdHoc | Obre un enregistrament ad-hoc — pots assignar-lo a un pacient existent o crear-ne un de nou |
| Límit de paquet | El tauler mostra el comptador de sessions del mes en curs i quantes en queden al paquet |
| Període de gràcia després d’un pagament fallit | Simulador de subscripció a PromptyAI — força un pagament fallit, obtens accés només al compte durant 14 dies |
| Notes amb fusió a tres bandes | Als detalls de sessió, el camp Notes mostra tres fonts costat per costat (terapeuta / IA / transcripció); pots triar què conservar |
| 9 anàlisis de CBT | La pestanya d’anàlisis de CBT mostra 9 elements separats; cadascun generat a petició; cadascun amb una roda dentada d’edició de prompt |
| Perfil públic — calaixos | Obre el teu propi perfil públic amb la sessió iniciada — els calaixos d’edició de biografia, especialització i contacte són visibles |
| PiP de vídeo | Durant una sessió de vídeo clica minimitzar — la finestra es col·lapsa a un mini-reproductor, el micròfon continua funcionant, tornes sense passar per la sala d’espera |
| Desenfocament de fons | A la sala d’espera de vídeo activa el desenfocament de fons — funciona immediatament, sense errors de CSP |
| PDF de conceptualització de Beck | Genera el PDF de conceptualització — també apareix als materials de sessió |
| Interruptor ABC v1/v2 | A conceptualització v2 pots canviar la font de l’ABC entre la versió 1 i la 2 |
| Factura a partir de pagaments seleccionats | Selecciona uns quants pagaments i clica “Emetre factura” — es genera una única factura a partir de la instantània |
| Sessió recurrent amb Google Meet | La segona i tercera sessió de la sèrie tenen Google Meet configurat correctament i el correu conté l’enllaç correcte |
| Sessions a partir de les 22:00 | El calendari setmanal mostra sessions programades a les 22:00 i més tard |
| Estat “No presentat” | En una sessió completada / cancel·lada pots canviar l’estat a “No presentat” |
| Tema fosc al mòbil | A l’aplicació mòbil canvia al tema fosc — les capçaleres de grup són llegibles |
| Safata AdHoc al mòbil | El mòbil mostra la safata ad-hoc i et permet assignar un pacient |
| Reverificació MFA | En canviar la contrasenya, l’aplicació torna a demanar MFA |
| Pseudonimització d’IA | Als registres veus que les dades del pacient arriben a la IA com a pseudònims |
| Materials de sessió com a blob | Puja un fitxer als materials de sessió — aterra a Azure Blob Storage, no al disc local |
| Unicitat global del correu del pacient | Afegeix un segon pacient amb el mateix correu — obtens un 409 i el modal es tanca |
| Bàner “El servidor s’està iniciant” | Després d’un període d’inactivitat més llarg, l’entrada de l’aplicació mostra el bàner en lloc d’una pàgina en blanc |
🛠️ Què hem corregit — la lletra petita
A més de les grans funcionalitats, s’han resolt ~80 informes de testers i usuaris. Els destacats:
- La superposició PiP no era clicable — corregit
- Closure obsoleta a handleMaximize — maximitzar des de PiP ja no llança un error
- PiP manté la connexió — abans
room.disconnect()s’activava en la transició pantalla completa↔PiP - El botó “Unir-se a la sessió” estava amagat per una substitució CSS — descobert
- Segona sessió AITS per al mateix pacient (SCRUM-1319, Ewa) — s’elimina l’índex UNIQUE a
Session.VideoInviteToken - La numeració de sessions a la conceptualització salta les cancel·lades (SCRUM-1267, Bohdan)
- Accés null-safe a Payment a GetSessionDetailsAsync (SCRUM-1268, Bohdan)
- Col·lisió de sessió de prova de l’Anna Pełnialska amb en Jan a les 14:00 — corregit al seeder
- Alentiment del tauler — mapping null-safe a GetTodaySessionsAsync i GetSessionDetailsAsync
- L’actualització automàtica després d’acabar l’enregistrament des del micròfon — funciona
- La reserva per lots (batch fallback) no sobreescriu el text d’enregistraments anteriors ni bloqueja la interfície amb l’estat de processament
- L’idioma de transcripció des de la configuració de sessió — l’STT respecta la preferència del pacient
- CSP — permetent
*.clarity.ms,blob:a connect-src, analítica a script-src - Bucle de refresc d’autenticació — abortant sol·licituds després d’un 401 i tornant a l’inici de sessió
- CSP MediaPipe WASM — el desenfocament de fons funciona
- Cinta DEV/SANDBOX també al FQDN d’Azure, no només al domini personalitzat
- Toast fals “La transcripció ha fallat” en entrar a la sessió — eliminat
- Toast en lloc de bàner vermell en cas de transcripció fallida + botó “Remostrejar” eliminat
- Temps real amb diarització en sessió de vídeo — s’inicia correctament
- Streaming d’IA — AbortController per gestor en lloc de compartit (
BodyStreamBuffer was aborted) - Nginx sense root + Azure Container Apps — múltiples iteracions per fer-ho funcionar
- Bloqueig distribuït (sp_getapplock) — les migracions d’inici ja no entren en conflicte en desplegaments paral·lels
- DbUpdateConcurrencyException al sondejador de transcripció per lots (SCRUM-1313, Bohdan)
- BlobNotFound com a estat esperat (SCRUM-1314, Bohdan)
- Càrregues útils no-JSON del webhook de Stripe (escàners / bots) — gestionades en silenci (SCRUM-1315, Bohdan)
- Detecció de format d’àudio per bytes màgics (SCRUM-1311, Bohdan)
- Pujada d’àudio resilient + Content-Type defensiu (SCRUM-1293, Bohdan)
- Migració FK ActiveEmbeddingModelId → ON DELETE NO ACTION
- Desplegament del client dev — CACHE_BUST=
github.shaforça la reconstrucció del frontend
Aquesta és la versió més gran i densa d’aquesta primavera. Si una funcionalitat et resulta familiar, és perquè va ser la teva petició o el teu tiquet. Gràcies per cada informe i cada captura de pantalla.
Article preparat per l’equip de Therapy Support