Aggiornamenti del prodotto

Note di rilascio — 26 aprile 2026

Bartłomiej Głowacki · CAIO, Responsabile AI e R&D
Note di rilascio — 26 aprile 2026

19 giorni fa abbiamo rilasciato una grande release con il modulo diagnostico e l’analisi della prosodia. Da allora il team ha spinto altre 295 modifiche — e non sono piccole. In questa release puoi registrare una seduta ad-hoc prima ancora che il paziente arrivi, le tue note si fondono con il lavoro dell’AI e la trascrizione fianco a fianco in tre colonne, il profilo pubblico del terapeuta è tornato in piena forza, e l’app mobile ha ora un tema scuro. Sotto il cofano abbiamo affrontato un giro di hardening SOC 2 / HIPAA, un audit DDD, e la piena pseudonimizzazione dei dati dei pazienti sul lato AI.

💚 Grazie al team che ha guidato questa release — con segnalazioni, test, codice e pazienza:

  • Bohdan — sedute ad-hoc, limiti di pacchetto e periodo di grazia, audit DDD, fatture KSeF, decine di correzioni (SCRUM-756, 815, 1267, 1268, 1276, 1280-1290, 1293, 1309-1316, 1353-1357, 1366, 1388, 1391, 1392)
  • Bartek — merge a 3 vie, 9 analisi CBT separate, distorsioni cognitive, contatore di sedute del pacchetto (SCRUM-1266, 1320, 1338, 1368-1375, 1385, 1386)
  • Ewa Cylwik / Ewa — PDF Beck, seconda seduta AITS per lo stesso paziente, tema scuro mobile e stato vuoto, mailing multilingue, colori dell’interfaccia, unicità dell’email del paziente (SCRUM-883, 898, 902, 1089, 1094, 1297, 1304, 1307, 1319)
  • Joanna — calendario ricorrente, nascondere Zoom, cancellazione in tempo utile, auto-riflessione invece della valutazione della qualità della seduta (SCRUM-789, 874, 918, 919, 1005)
  • Inoltre Bartlomiej per le distorsioni cognitive e il contatore di sedute, diventato la base del nuovo modello di abbonamento

1. ⚡ Sedute ad-hoc — registra prima che il paziente arrivi

Se ti è mai capitato di dover attivare velocemente un registratore — perché un paziente si è presentato senza preavviso, perché è una consulenza una tantum, perché è un incontro con qualcuno non ancora nei tuoi archivi — il nuovo modulo di seduta ad-hoc risolve completamente questo problema.

  • Pulsante di registrazione rapida nella dashboard web, nella PWA su telefono e nell’app MAUI — un clic avvia la registrazione ancora prima di compilare i dati del paziente
  • Inbox AdHoc — un vassoio dedicato per le registrazioni non assegnate finché non decidi dove metterle
  • AssignPatientModal — assegna la registrazione a un paziente esistente o creane uno nuovo direttamente dall’inbox
  • Riprendi / Rientra nella sala — completa la registrazione di una seduta iniziata in precedenza
  • Conservazione orfana + completamento automatico — le sedute non assegnate per X giorni si chiudono automaticamente in modo che l’inbox resti ordinato
  • Video “Avvia senza paziente” — nella sala LiveKit puoi iniziare una seduta senza collidere con un paziente esistente; l’AdHoc finisce nell’inbox in seguito

La sezione è protetta dietro il codice PromptyAI nelle Impostazioni — disattivata per impostazione predefinita, per gli utenti che vogliono prima vedere il resto. Progettata e realizzata da Bohdan.

2. 📊 Limiti di pacchetto e periodo di grazia — abbonamento trasparente

Gli abbonamenti hanno ricevuto una revisione completa. I vecchi piani Starter/Standard sono disattivati, sostituiti da Start / Practice / Pro — dimensionati per il volume reale di sedute mensili.

  • Contatore di sedute nella dashboard — vedi quante sedute hai usato questo mese e quante ne rimangono nel tuo pacchetto
  • Email sui limiti — notifiche automatiche all’80% e al 100% di utilizzo
  • Prompt di upgrade — quando raggiungi il limite, ricevi un gentile suggerimento di cambio piano invece di un blocco totale
  • Prezzi da Stripe + sconti — il prezzo che vedi nell’app proviene direttamente da Stripe con gli sconti attivi applicati (il codice betatester non scade)
  • Cancellazione nativa dell’abbonamento — cancella direttamente nell’app, senza bisogno di scrivere al supporto
  • Periodo di grazia di 14 giorni — se un pagamento fallisce, ottieni 14 giorni con accesso solo al tuo account (nessuna anteprima dei pazienti), con email a T+0 e T+13. La reale perdita di dati scatta solo dopo due settimane
  • Banner dell’abbonamento — messaggio pulito in cima all’app senza barra vuota tra il menu e l’avviso
  • Simulatore del limite di sedute — nel pannello PromptyAI c’è una modalità di test dove puoi vedere come si comporta l’app con un pacchetto pieno

Lavoro congiunto di Bartlomiej (contatore e limiti, SCRUM-1266) e Bohdan (abbonamento, periodo di grazia, prompt di upgrade — SCRUM-756, SCRUM-1366, SCRUM-1391, SCRUM-1392).

3. 📝 Merge a 3 vie per le note — terapeuta, AI e trascrizione in un’unica vista

Questo è uno dei più grandi cambiamenti architetturali sotto il cofano, ma l’effetto sul lavoro quotidiano è molto visibile: ogni campo di note (Note, Riassunto della seduta, sezioni di concettualizzazione) ora ricorda separatamente cosa ha scritto il terapeuta, cosa ha generato l’AI, e cosa proviene dal dittafono / dalla trascrizione.

  • Note a 3 vie — la vista delle note mostra tre fonti fianco a fianco: il tuo testo, i suggerimenti dell’AI e la trascrizione automatica, e scegli cosa mantenere
  • Riassunto della seduta a 2 vie + merge JSON — nel riassunto della seduta unisci il tuo lavoro con l’analisi dell’AI in un unico documento coerente
  • Separatore temporale — quando modifichi manualmente un campo AI, il sistema lascia una traccia visibile di quando e di chi è quel frammento
  • Marcatore [AI] dalla prima generazione — i tuoi campi non si mescolano con quelli generati
  • SourceBadge — pillola colorata con un’icona che mostra da dove proviene un frammento, invece del testo in MAIUSCOLO
  • Sostituzione della sezione AI invece dell’aggiunta — quando richiedi la rigenerazione del riassunto, l’AI sostituisce la sezione invece di impilare un’altra copia sotto

Progettato e realizzato da Bartek (SCRUM-1320, SCRUM-1368-1375). Sotto il cofano: piena i18n in 8 lingue e nuovi contesti DDD.

4. 🔍 Analisi CBT — 9 report separati su richiesta

Il vecchio “genera analisi CBT” monolitico è stato suddiviso in 9 elementi separati che il terapeuta esegue quando ne ha effettivamente bisogno. Meno attesa, più controllo.

  • 9 analisi indipendenti — ciascuna generata separatamente, su richiesta
  • Ingranaggio di modifica del prompt — clicca sull’ingranaggio accanto a ogni analisi per vedere/modificare il prompt che l’AI userà
  • Sezione ANALISI CBT dietro il codice PromptyAI — sezione disponibile dopo aver inserito il codice nelle Impostazioni, per gli utenti che testano nuove funzionalità

Le distorsioni cognitive hanno ricevuto una vista propria (segnalata da Bartlomiej, SCRUM-1385):

  • Vista dei dati invece di un report AI — vedi citazioni concrete dalla trascrizione etichettate dall’AI, non una narrazione generata da esse
  • Tutte le citazioni dopo l’espansione — nessun filtro per intervallo di date, l’espansione rivela tutto
  • Disponibile nel menu principale — sotto Concettualizzazione v2

Il vecchio prompt COGNITIVE_DISTORTIONS_INVENTORY è stato rimosso (SCRUM-1386).

5. 🌐 Profilo pubblico del terapeuta — revisione completa con pannelli di modifica

Il profilo pubblico sotto il brand aitherapy.support è stato completamente ricostruito.

  • 3 nuovi pannelli di modifica — biografia, specializzazioni, dettagli di contatto modificati in eleganti pannelli laterali
  • Modalità di modifica del proprietario — quando visualizzi il tuo stesso profilo mentre sei connesso, i pulsanti di modifica sono a portata di mano
  • Anni di esperienza — nuovo campo YearsOfExperience visibile sul profilo pubblico
  • Rebrand dei colori — palette salvia/lavanda sotto il brand aitherapy.support
  • Sezione “La tua privacy” rimossa — era ridondante; il GDPR è nel footer
  • Icone Lucide — tipografia di icone moderna e pulita

Sotto il cofano, è stato aggiunto un endpoint pubblico GET /api/public/therapists — che restituisce i terapeuti con profili pubblici attivi. Fondamento per una directory di terapeuti.

6. 🎥 Sedute video — PiP, scambio camere, sfocatura dello sfondo corretta

Il video ha ricevuto una serie di correzioni che ogni terapeuta che conduce sedute tramite l’app noterà.

  • PiP / minimizza — minimizza la sala video in un mini-player fluttuante e controlla le note in un’altra scheda senza interrompere la connessione. Microfono e camera continuano a funzionare
  • Scambia camere — cambia chi è nella vista principale e chi è nella mini con un clic
  • Ripresa PiP — tornando dalla minimizzazione, salti la lobby (PreJoinLobby) e vai direttamente alla conversazione
  • Audio per partecipante per la diarizzazione — la trascrizione separa i parlanti anche in PiP
  • Sfocatura dello sfondo corretta — la CSP bloccava MediaPipe WASM; la sfocatura ora funziona con un clic
  • UI della seduta AITS più pulita — l’assistente AI è scomparso dalla barra degli strumenti, meno rumore visivo
  • Overlay PiP cliccabile — rimuovendo pointerEvents:none e overflow:hidden, i pulsanti PiP rispondono ai clic
  • Pulsante “Partecipa alla seduta” — era nascosto da un override CSS, ora è visibile
  • Closure obsoleta in handleMaximize — corretta; la massimizzazione PiP non genera più un errore

7. 📐 Concettualizzazione Beck v2 e ABC — PDF, toggle di versione, modifica del prompt

  • PDF Beck e ABC v2 — corretta la formattazione e inclusione automatica nei materiali di seduta (segnalato da Ewa, SCRUM-1297)
  • PDF Beck — sezioni solo bordo, specializzazioni colorate, iniziali pulite, freccia SVG tra le sezioni
  • Toggle ABC v1/v2 in Concettualizzazione v2 — scegli quale versione ABC visualizzare
  • Ingranaggio di modifica del prompt in ABC v2 — modifica il prompt AI nella scheda ABC v2
  • Esportazione PDF per analisi AI e ABC per seduta — analisi individuali esportate separatamente
  • Pluralizzazione delle etichette ABC in 8 lingue — la tabella di concettualizzazione ha le forme plurali corrette
  • Correzione delle colonne vuote ABC — il backend restituisce i nomi delle proprietà plurali corretti

8. 🧾 Fatture e KSeF — selezione dei pagamenti + macchina a stati

Il sistema di fatturazione è stato rifattorizzato per la conformità con il KSeF (sistema nazionale polacco di fatturazione elettronica).

  • Fattura dai pagamenti selezionati — scegli i pagamenti e il sistema crea un’unica fattura da essi (snapshot + FK del pagamento)
  • Punto di ingresso “Emetti fattura” nella vista finanziaria del terapeuta — accesso rapido dalla dashboard
  • Rimozione di elementi nel modale di emissione della fattura — correggi errori al volo
  • Separazione dev/prod KSeF — sandbox e produzione lavorano su credenziali separate
  • Macchina a stati della fattura (SCRUM-1357 Bohdan) — Bozza → Emessa → Inviata → Annullata, con un vincolo del DB sulle transizioni illegali
  • AE KsefToken — token KSeF crittografato con Always Encrypted

Lavoro congiunto di Bohdan (SCRUM-1357, SCRUM-1388).

9. 📅 Calendario, sedute ricorrenti e sedi

Il calendario settimanale e ricorrente ha ricevuto decine di miglioramenti piccoli ma visibili — la maggior parte segnalati da Joanna e Ewa.

  • Sedute dalle 22:00 — erano invisibili sulla griglia settimanale, ora vengono mostrate fino a fine giornata
  • Tutte le ore sulla griglia delle fasce ricorrenti (SCRUM-874, Joanna)
  • Seduta cancellata in tempo utile — non appare come “Non pagata” (SCRUM-918, Joanna)
  • Etichetta di ricorrenza accanto alla fascia ricorrente (SCRUM-919, Joanna) — vedi “settimanale”, “quindicinale” accanto a ogni seduta ricorrente
  • Nascondere l’integrazione Zoom dall’UI (SCRUM-789, Joanna) — Zoom non è più supportato come canale video
  • Popover della seduta nel calendario — non si nasconde più fuori schermo
  • TherapistAvailability — salvataggio automatico a ogni modifica (debounce 800 ms), nessun pulsante di salvataggio necessario
  • AddSessionModal — opzione “crea seduta fuori dagli orari di disponibilità” — le eccezioni possono forzare una fascia
  • Stato “No-show” (NoShow=5) — nuovo stato, impostabile anche da sedute completate o cancellate
  • RecurringSessionsCalendar — riquadri di riepilogo sopra la legenda e la griglia

Le sedi del terapeuta hanno ricevuto canali di riunione online per sede:

  • Modalità in presenza — campi indirizzo e città per le sedi in presenza
  • Interruttore in presenza/online invece di una casella di controllo — scelta della modalità più chiara
  • Canale online per sede — sedi diverse possono avere canali diversi (AITS, Google Meet, link esterno), propagati automaticamente alle sedute
  • Sale di riunione permanenti per paziente — ogni paziente ha un link permanente alla sala AITS e un link esterno separato visibile nelle impostazioni del paziente
  • Eliminazione della sede — corretta (scompariva dal DB ma restava nell’elenco dell’UI)

E infine il tipo di riunione nelle sedute ricorrenti — corretta la propagazione di MeetingType e MeetingLink dalla configurazione della serie ricorrente a ogni seduta generata e alle email di promemoria (SCRUM-902, Ewa).

10. 📱 App mobile — tema scuro, Inbox AdHoc, rifinitura

Mobile è passata alla versione 1.5.0 (build 18) con un carico di modifiche visibili all’utente e alcuni ritocchi di firma per App Store / Play Store.

  • Tema scuro — modalità scura completa con intestazioni di gruppo leggibili (SCRUM-1089, Ewa + SCRUM-815)
  • Promemoria configurabili — scegli quando vuoi la notifica di seduta
  • Promemoria mobile a 15 min — promemoria pre-seduta di 15 minuti + avviso quando le notifiche di sistema sono disattivate (SCRUM-815, Bohdan)
  • Stato vuoto per l’elenco sedute — invece di uno schermo vuoto, un onboarding più ricco (SCRUM-1094, Ewa)
  • Banner di auto-aggiornamento — quando l’app rileva un aggiornamento, mostra un invitante banner di aggiornamento
  • Inbox AdHoc + AssignPatient + avvio rapido in MAUI (SCRUM-1289, Bohdan)
  • Avvio rapido PWA mobile per sedute ad-hoc (SCRUM-1286, Bohdan)
  • Vista web responsive per telefono — desktop invariato, su telefono il layout si adatta allo schermo stretto
  • Gestore di deep-link in iOS — usa BindingContext, registrazione dello schema URL
  • Stringhe di scopo NSLocation per iOS — correzione di ITMS-90683 (App Store rifiutava la build senza queste)
  • Android AAB — passo esplicito di jarsigner
  • Materiali App Store Connect e Google Play — pacchetto completo più audit WCAG 2.2

11. 🔐 Sicurezza: SOC 2 / HIPAA, MFA, piena pseudonimizzazione AI

Sotto il livello del prodotto abbiamo condotto un giro completo di hardening SOC 2 e HIPAA più un audit DDD con cinque consegne concrete.

  • Ri-verifica MFA per operazioni critiche — per azioni sensibili (cambio password, esportazione dati) confermi di nuovo con MFA
  • Codici di backup per MFA — codici di emergenza se perdi il telefono
  • IAnonymizedLlmGateway (SCRUM-1353, Bohdan) — tutte le chiamate al modello AI passano ora attraverso un gateway di pseudonimizzazione. Nomi, date, luoghi vengono sostituiti con pseudonimi prima di lasciare l’app; l’AI riceve solo la versione anonimizzata
  • Pseudonimizzazione delle notifiche email/SMS (SCRUM-1354) — anche i modelli di messaggio non trapelano dati dei pazienti all’invio
  • Token OAuth Google/Zoom crittografati con Always Encrypted (SCRUM-1355) — i token di accesso alle integrazioni sono crittografati a livello di colonna
  • Flag Patient.PendingConsent (SCRUM-1356) — i pazienti senza consenso attivo ottengono un flusso di applicazione + badge frontend
  • Macchina a stati della fattura (SCRUM-1357) — gli stati della fattura sono immutabili nelle direzioni non valide, applicati a livello di DB
  • Immutabilità degli audit + snapshot utente in 3 tabelle di audit — il registro delle azioni non può essere modificato a posteriori
  • DeanonymizationAuditLog — ogni uso dei dati del paziente dopo la de-anonimizzazione viene registrato insieme allo snapshot email + nome visualizzato dell’utente che l’ha eseguito
  • Segreti hardcoded rimossi — tutte le chiavi e le password da appsettings.json spostate in Azure Key Vault
  • Always Encrypted per tutti i dati testuali utente (ADR-0018) — direzione architetturale approvata; altre tabelle migreranno nella prossima release
  • Analisi delle lacune di conformità ISO/IEC — 95 lacune in 9 standard mappate, con un piano di rimedio

Supportato da un audit DDD completo (Sessioni 1-8, Fasi 1-6) — ristrutturazione del contesto di dominio, documentazione dell’architettura, ADR, mermaid + test, playbook, integrazione Confluence.

12. 👤 Portale paziente — analisi in Obiettivi, materiali, anteprima migliorata

  • Concettualizzazione di Beck nella scheda “Obiettivi” del paziente — quando pubblichi la concettualizzazione, il paziente la vede nel suo portale
  • Pubblicazione delle analisi nel portale paziente + preferenze di notifica (SCRUM-1338, Bartlomiej) — controlla cosa e quando il paziente riceve
  • Anteprima PDF del portaleiframe invece di embed, la CSP consente blob: (i PDF si caricano)
  • Anteprima del portale paziente dalla vista del terapeuta — vedi cosa vede il paziente (chrome nel wrapper, dashboard 1:1)
  • Materiali di seduta in Azure Blob Storage — SessionMaterial come blob, non più filesystem locale
  • Sezione consenso / documenti + origine della registrazione nelle impostazioni del paziente
  • Unicità globale dell’email del paziente (SCRUM-898) — un secondo paziente con la stessa email riceve un 409 e il modale si chiude (SCRUM-898, Ewa)
  • Seeder di modelli di notifica per SK, CA, RU, UK, LT (SCRUM-883, Joanna) — mailing multilingue completo
  • Fallback del resolver al predefinito della piattaforma — quando un terapeuta non ha sovrascritto il modello, viene inviato quello multilingue predefinito (SCRUM-883)

13. 🎙️ Trascrizione — registrazione affidabile, aggiunta, tempo reale con diarizzazione

  • Aggiunta a una trascrizione esistente — continua a registrare nella stessa seduta; i segmenti si aggiungono (l’intento sopravvive a un ricaricamento della pagina)
  • Audio per partecipante per la diarizzazione — la trascrizione video separa i parlanti su tracce indipendenti
  • La trascrizione sopravvive al PiP — minimizzare la sala non interrompe la registrazione
  • Lingua di trascrizione dalle impostazioni della seduta — lo STT usa la lingua che hai impostato per il paziente
  • Auto-aggiornamento della trascrizione su focus / visibilitychange / ritorno dal video
  • Conferma alla fine della registrazione < 2s — protezione contro un WAV vuoto da un clic accidentale
  • Badge “Invio” nell’elenco delle sedute — vedi quando una registrazione è in caricamento
  • Tempo reale con diarizzazione nella seduta video — non partiva prima; ora funziona
  • Backup OPFS + Opus a 48 kbps — la registrazione salva anche localmente su OPFS come fallback, parametri audio unificati
  • Caricamento diretto audio SAS (SCRUM-1276, Bohdan) — l’audio va direttamente su Azure tramite URL SAS, bypassando il backend
  • m4a nativo per Azure Speech — m4a gestito nativamente, nessuna conversione
  • Rilevamento del formato tramite magic bytes (SCRUM-1311, Bohdan) — quando Content-Type=application/octet-stream, il formato viene rilevato dal contenuto del file
  • Hub senza testo nel DB — l’hub SignalR in tempo reale non persiste più il testo nel DB; finishPending usa POST multipart come MAUI
  • Correzione SignalR 1006 — rimosso skipNegotiation così Azure SignalR funziona + ottimizzazione del keep-alive
  • Marcatore [AI] dalla prima generazione + ricerca affidabile del marcatore

14. 💬 Notifiche, impostazioni paziente, piccoli miglioramenti UX

  • NotificationTemplatesAdmin — toggle HTML/Testo nell’editor email
  • NotificationSettings — l’anteprima email renderizza HTML con fallback
  • PromptEditModal — ricostruito: schede, selettore del modello, nomi di versione obbligatori
  • Reset del flag Hide_dev_ui al logout — i flag per sviluppatori non persistono tra le sessioni
  • Paziente di test Ann Fauler — equivalente inglese 1:1 della polacca Anna Pełnialska per demo solo in inglese
  • Toggle della modalità di presentazione UI per sviluppatori — passaggio rapido alla modalità di presentazione
  • Segnalazione bug — allegati Jira + etichetta segnalante + pulsante “Invia” centrato
  • Loop di auth-refresh corretto — interrompi le richieste e torna al login dopo un 401
  • Banner “Il server si sta avviando” — all’avvio a freddo (scale-to-zero) mostriamo un avviso invece di una pagina vuota
  • Scala di valutazione della seduta — auto-riflessione invece della valutazione della qualità + disclaimer (SCRUM-1005, Joanna)
  • Colore del pulsante “Minimizza” cambiato in viola cobalto (SCRUM-1307, Ewa)
  • Colore dell’etichetta “Trascrizione” da rosso a verde (SCRUM-1304, Ewa)
  • “Registra ora” → “Registra seduta AdHoc” — nome del pulsante più accurato
  • Sandbox con nastro verde nell’angolo in alto a sinistra + prefisso [SANDBOX] nel titolo — per evitare confusione tra ambienti, oltre a una clonazione ripetibile PROD → Sandbox (IaC Azure e script)

✅ Checklist QA — cosa verificare dopo il deploy

FunzionalitàVerifica
Seduta ad-hoc — Registrazione rapidaClicca Registrazione rapida sulla dashboard o PWA — la registrazione inizia immediatamente, la seduta finisce nell’Inbox AdHoc
AssignPatient nell’Inbox AdHocApri una registrazione ad-hoc — puoi assegnarla a un paziente esistente o crearne uno nuovo
Limite di pacchettoLa dashboard mostra il contatore di sedute per il mese corrente e quante ne rimangono nel pacchetto
Periodo di grazia dopo un pagamento fallitoSimulatore di abbonamento in PromptyAI — forza un pagamento fallito, ottieni l’accesso solo all’account per 14 giorni
Merge a 3 vie delle noteNei dettagli della seduta, il campo Note mostra tre fonti fianco a fianco (terapeuta / AI / trascrizione); puoi scegliere cosa mantenere
9 analisi CBTLa scheda delle analisi CBT mostra 9 elementi separati; ciascuno generato su richiesta; ciascuno ha un ingranaggio di modifica del prompt
Profilo pubblico — pannelliApri il tuo stesso profilo pubblico mentre sei connesso — i pannelli di modifica di biografia, specializzazione, contatto sono visibili
PiP videoDurante una seduta video clicca minimizza — la finestra si riduce a mini-player, il microfono continua a funzionare, torni senza la lobby
Sfocatura dello sfondoNella lobby video attiva la sfocatura dello sfondo — funziona immediatamente, nessun errore CSP
PDF concettualizzazione BeckGenera il PDF della concettualizzazione — appare anche nei materiali di seduta
Toggle ABC v1/v2In concettualizzazione v2 puoi cambiare la fonte ABC tra versione 1 e 2
Fattura da pagamenti selezionatiSeleziona alcuni pagamenti e clicca “Emetti fattura” — viene prodotta un’unica fattura dallo snapshot
Seduta ricorrente con Google MeetLa seconda e la terza seduta della serie hanno Google Meet impostato correttamente e l’email contiene il link giusto
Sedute dalle 22:00Il calendario settimanale mostra le sedute programmate dalle 22:00 in poi
Stato “No-show”In una seduta completata / cancellata puoi cambiare lo stato a “No-show”
Tema scuro mobileNell’app mobile passa al tema scuro — le intestazioni di gruppo sono leggibili
Inbox AdHoc su mobileIl mobile mostra l’inbox ad-hoc e permette di assegnare un paziente
Ri-verifica MFAQuando cambi la password, l’app chiede di nuovo l’MFA
Pseudonimizzazione AINei log vedi i dati del paziente che vanno all’AI come pseudonimi
Materiali di seduta come blobCarica un file nei materiali di seduta — finisce in Azure Blob Storage, non su disco locale
Unicità globale dell’email del pazienteAggiungi un secondo paziente con la stessa email — ottieni un 409 e il modale si chiude
Banner “Il server si sta avviando”Dopo un periodo di inattività più lungo, l’ingresso nell’app mostra il banner invece di una pagina vuota

🛠️ Cosa abbiamo risolto — in dettaglio

Oltre alle grandi funzionalità, sono state risolte ~80 segnalazioni da tester e utenti. In evidenza:

  • Overlay PiP non era cliccabile — corretto
  • Closure obsoleta in handleMaximize — la massimizzazione PiP non genera più errori
  • PiP mantiene la connessione — in precedenza room.disconnect() si attivava durante la transizione a schermo intero↔PiP
  • Pulsante “Partecipa alla seduta” era nascosto da un override CSS — scoperto
  • Seconda seduta AITS per lo stesso paziente (SCRUM-1319, Ewa) — rimosso UNIQUE INDEX su Session.VideoInviteToken
  • La numerazione delle sedute in concettualizzazione salta le cancellate (SCRUM-1267, Bohdan)
  • Accesso null-safe ai Pagamenti in GetSessionDetailsAsync (SCRUM-1268, Bohdan)
  • Collisione della seduta di test di Anna Pełnialska con Jan alle 14:00 — corretta nel seeder
  • Rallentamento della dashboard — mappatura null-safe in GetTodaySessionsAsync e GetSessionDetailsAsync
  • Auto-aggiornamento dopo la fine della registrazione dal microfono — funziona
  • Il fallback batch non sovrascrive più il testo delle registrazioni precedenti né blocca l’UI con lo stato Processing
  • Lingua di trascrizione dalle impostazioni della seduta — lo STT rispetta la preferenza del paziente
  • CSP — consentiti *.clarity.ms, blob: in connect-src, analytics in script-src
  • Loop di auth-refresh — interruzione delle richieste dopo un 401 e ritorno al login
  • CSP MediaPipe WASM — la sfocatura dello sfondo funziona
  • Nastro DEV/SANDBOX anche sul FQDN Azure, non solo sul dominio personalizzato
  • Toast falso “Trascrizione fallita” all’ingresso nella seduta — rimosso
  • Toast invece del banner rosso su trascrizione fallita + rimosso il pulsante “Resample”
  • Tempo reale con diarizzazione nella seduta video — si avvia correttamente
  • Streaming AI — AbortController per handler invece che condiviso (BodyStreamBuffer was aborted)
  • Nginx non-root e Azure Container Apps — diverse iterazioni per farlo funzionare
  • Lock distribuito (sp_getapplock) — le migrazioni all’avvio non vanno più in conflitto sui deploy paralleli
  • DbUpdateConcurrencyException nel poller di trascrizione batch (SCRUM-1313, Bohdan)
  • BlobNotFound come stato atteso (SCRUM-1314, Bohdan)
  • Payload non-JSON del webhook Stripe (scanner / bot) — gestiti silenziosamente (SCRUM-1315, Bohdan)
  • Rilevamento del formato audio tramite magic bytes (SCRUM-1311, Bohdan)
  • Caricamento audio resiliente + Content-Type difensivo (SCRUM-1293, Bohdan)
  • Migrazione FK ActiveEmbeddingModelId → ON DELETE NO ACTION
  • Deploy del client dev — CACHE_BUST=github.sha forza la ricostruzione del frontend

Questa è la release più grande e densa di questa primavera. Se una funzionalità ti sembra familiare — è perché era la tua richiesta o il tuo ticket. Grazie per ogni segnalazione e ogni screenshot.

Articolo preparato dal team di Therapy Support

Therapy Support · Inizi oggi stesso

Riprenditi il Tempo per Te
e per i Tuoi Pazienti

Sei un terapeuta CBT?
Scopri come la piattaforma supporta il tuo lavoro quotidiano.
Sintesi delle sedute che organizzano il materiale clinico. Un'amministrazione che non ti intralcia.