Mises à jour produit

Notes de version — 26 avril 2026

Bartłomiej Głowacki · CAIO, responsable AI et R&D
Notes de version — 26 avril 2026

Il y a 19 jours, nous avons lancé une grande version avec le module de diagnostic et l’analyse de prosodie. Depuis, l’équipe a poussé 295 changements supplémentaires - et ils ne sont pas anodins. Dans cette version, vous pouvez enregistrer une séance ad hoc avant même que le patient n’arrive, vos notes fusionnent avec le travail de l’IA et la transcription côte à côte en trois colonnes, le profil public du thérapeute revient en pleine force, et l’application mobile dispose désormais d’un thème sombre. En coulisses, nous avons mené un chantier de durcissement SOC 2 / HIPAA, un audit DDD, et une pseudonymisation complète des données patients côté IA.

💚 Merci à l’équipe qui a porté cette version - par ses signalements, ses tests, son code et sa patience :

  • Bohdan — séances ad hoc, limites de forfait et période de grâce, audit DDD, factures KSeF, des dizaines de corrections (SCRUM-756, 815, 1267, 1268, 1276, 1280-1290, 1293, 1309-1316, 1353-1357, 1366, 1388, 1391, 1392)
  • Bartek — fusion à trois sources, 9 analyses TCC distinctes, distorsions cognitives, compteur de séances de forfait (SCRUM-1266, 1320, 1338, 1368-1375, 1385, 1386)
  • Ewa Cylwik / Ewa — PDF Beck, deuxième séance AITS pour le même patient, thème sombre mobile et état vide, envoi multilingue, couleurs de l’interface, unicité de l’e-mail patient (SCRUM-883, 898, 902, 1089, 1094, 1297, 1304, 1307, 1319)
  • Joanna — calendrier récurrent, masquage de Zoom, annulation dans les délais, auto-réflexion au lieu de la notation de la qualité de séance (SCRUM-789, 874, 918, 919, 1005)
  • Ainsi que Bartlomiej pour les distorsions cognitives et le compteur de séances, devenu le socle du nouveau modèle d’abonnement

1. ⚡ Séances ad hoc — enregistrez avant l’arrivée du patient

Si vous avez déjà dû démarrer un enregistreur en urgence - parce qu’un patient s’est présenté sans prévenir, parce que c’est une consultation ponctuelle, parce que c’est un rendez-vous avec quelqu’un qui n’est pas encore dans vos dossiers - le nouveau module séance ad hoc résout entièrement ce problème.

  • Bouton d’enregistrement rapide dans le tableau de bord web, en PWA sur téléphone, et dans l’application MAUI — un clic démarre l’enregistrement avant même de renseigner les données du patient
  • Boîte de réception AdHoc — un espace dédié pour les enregistrements non assignés, jusqu’à ce que vous décidiez où les affecter
  • Fenêtre d’assignation au patient (AssignPatientModal) — assignez l’enregistrement à un patient existant ou créez-en un nouveau directement depuis la boîte de réception
  • Reprendre / rejoindre à nouveau la salle — terminez l’enregistrement d’une séance commencée précédemment
  • Conservation des orphelins + clôture automatique — les séances non assignées depuis X jours se ferment automatiquement pour garder la boîte de réception organisée
  • Vidéo « Démarrer sans patient » — dans la salle LiveKit, vous pouvez démarrer une séance sans entrer en conflit avec un patient existant ; l’AdHoc atterrit ensuite dans la boîte de réception

La section est verrouillée derrière le code PromptyAI dans les Paramètres - désactivée par défaut, pour les utilisateurs qui souhaitent d’abord découvrir le reste. Conçue et livrée par Bohdan.

2. 📊 Limites de forfait et période de grâce — un abonnement transparent

Les abonnements ont fait l’objet d’une refonte complète. Les anciens forfaits Starter/Standard sont désactivés, remplacés par Start / Practice / Pro - dimensionnés selon le volume réel de séances mensuelles.

  • Compteur de séances sur le tableau de bord — voyez combien de séances vous avez utilisées ce mois-ci et combien il en reste dans votre forfait
  • E-mails de limite — notifications automatiques à 80 % et 100 % d’utilisation
  • Invite de mise à niveau — lorsque vous atteignez la limite, vous recevez une suggestion douce de changement de forfait plutôt qu’un blocage strict
  • Tarifs issus de Stripe + réductions — le prix affiché dans l’application provient directement de Stripe avec les réductions actives appliquées (le code bêta-testeur n’expire pas)
  • Annulation d’abonnement native — annulez directement dans l’application, sans avoir à écrire au support
  • Période de grâce de 14 jours — en cas d’échec de paiement, vous disposez de 14 jours d’accès à votre seul compte (sans aperçus patients), avec des e-mails à J+0 et J+13. La perte réelle de données n’intervient qu’après deux semaines
  • Bandeau d’abonnement — un message clair en haut de l’application, sans espace vide entre le menu et l’alerte
  • Simulateur de limite de séances — dans le panneau PromptyAI, un mode test permet de voir comment l’application se comporte avec un forfait complet

Travail conjoint de Bartlomiej (compteur et limites, SCRUM-1266) et Bohdan (abonnement, grâce, invite de mise à niveau — SCRUM-756, SCRUM-1366, SCRUM-1391, SCRUM-1392).

3. 📝 Fusion à trois sources pour les notes — thérapeute, IA et transcription dans une seule vue

C’est l’un des plus grands changements architecturaux en coulisses, mais l’effet sur le travail quotidien est très visible : chaque champ de notes (Notes, résumé de séance, sections de conceptualisation) se souvient désormais séparément de ce que le thérapeute a écrit, de ce que l’IA a généré, et de ce qui provient du dictaphone / de la transcription.

  • Notes à trois sources — la vue des notes affiche trois sources côte à côte : votre texte, les suggestions de l’IA, et la transcription automatique, et vous choisissez ce qu’il faut conserver
  • Résumé de séance à deux sources + fusion JSON — dans le résumé de séance, vous fusionnez votre travail avec l’analyse de l’IA en un seul document cohérent
  • Séparateur d’horodatage — lorsque vous modifiez manuellement un champ IA, le système laisse une trace visible du moment et de l’auteur de ce fragment
  • Marqueur [AI] dès la première génération — vos champs ne se mélangent pas avec les champs générés
  • SourceBadge — une pastille colorée avec une icône indiquant l’origine d’un fragment, au lieu d’un texte en MAJUSCULES
  • Remplacement de section IA au lieu d’ajout — lorsque vous demandez une régénération du résumé, l’IA remplace la section au lieu d’empiler une nouvelle copie en dessous

Conçu et livré par Bartek (SCRUM-1320, SCRUM-1368-1375). En coulisses : i18n complet en 8 langues et nouveaux contextes DDD.

4. 🔍 Analyses TCC — 9 rapports distincts à la demande

L’ancienne « génération d’analyse TCC » monolithique a été divisée en 9 éléments distincts que le thérapeute exécute quand il en a réellement besoin. Moins d’attente, plus de contrôle.

  • 9 analyses indépendantes — chacune générée séparément, à la demande
  • Roue crantée d’édition de requête — cliquez sur la roue crantée à côté de chaque analyse pour voir/modifier la requête que l’IA utilisera
  • Section ANALYSES TCC derrière le code PromptyAI — section disponible après saisie du code dans les Paramètres, pour les utilisateurs testant les nouvelles fonctionnalités

Les distorsions cognitives ont leur propre vue (signalé par Bartlomiej, SCRUM-1385) :

  • Vue de données au lieu d’un rapport IA — vous voyez des citations concrètes de la transcription étiquetées par l’IA, et non un récit généré à partir de celles-ci
  • Toutes les citations après expansion — pas de filtre de plage de dates, l’expansion révèle tout
  • Disponible dans le menu principal — sous Conceptualisation v2

L’ancienne requête COGNITIVE_DISTORTIONS_INVENTORY a été supprimée (SCRUM-1386).

5. 🌐 Profil public du thérapeute — refonte complète avec panneaux d’édition

Le profil public sous la marque aitherapy.support a été entièrement reconstruit.

  • 3 nouveaux panneaux d’édition — biographie, spécialisations, coordonnées, modifiées dans des panneaux latéraux élégants
  • Mode d’édition propriétaire — lorsque vous consultez votre propre profil en étant connecté, les boutons d’édition sont à portée de main
  • Années d’expérience — nouveau champ YearsOfExperience visible sur le profil public
  • Refonte des couleurs (rebrand) — palette sauge/lavande sous la marque aitherapy.support
  • Section « Votre confidentialité » supprimée — elle était redondante ; le RGPD figure dans le pied de page
  • Icônes Lucide — une typographie d’icônes moderne et épurée

En coulisses, un point de terminaison public GET /api/public/therapists a été ajouté - renvoyant les thérapeutes ayant des profils publics actifs. Base pour un annuaire de thérapeutes.

6. 🎥 Séances vidéo — PiP, échange de caméras, flou d’arrière-plan corrigé

La vidéo a reçu un ensemble de corrections que tout thérapeute menant des séances via l’application remarquera.

  • PiP / réduction — réduisez la salle vidéo en un mini-lecteur flottant et consultez vos notes dans un autre onglet sans rompre la connexion. Le micro et la caméra continuent de fonctionner
  • Échange de caméras — changez d’un clic qui est dans la vue principale et qui est en mini-vue
  • Reprise du PiP — en revenant de la réduction, vous sautez la salle d’attente (PreJoinLobby) et retournez directement dans la conversation
  • Audio par participant pour la diarisation — la transcription sépare les locuteurs même en mode PiP
  • Flou d’arrière-plan corrigé — le CSP bloquait MediaPipe WASM ; le flou fonctionne désormais en un clic
  • Interface de séance AITS plus épurée — l’assistant IA a disparu de la barre d’outils, moins de bruit visuel
  • Superposition PiP cliquable — en supprimant pointerEvents:none et overflow:hidden, les boutons du PiP réagissent aux clics
  • Bouton « Rejoindre la séance » — était masqué par une surcharge CSS, désormais visible
  • Fermeture obsolète (stale closure) dans handleMaximize — corrigée ; l’agrandissement du PiP ne génère plus d’erreur

7. 📐 Conceptualisation Beck v2 et ABC — PDF, bascule de version, édition des requêtes

  • PDF Beck et ABC v2 — mise en forme corrigée et inclusion automatique dans les documents de séance (signalé par Ewa, SCRUM-1297)
  • PDF Beck — sections avec bordure uniquement, spécialisations colorées, initiales épurées, flèche SVG entre les sections
  • Bascule ABC v1/v2 dans Conceptualisation v2 — choisissez quelle version ABC afficher
  • Roue crantée d’édition de requête dans ABC v2 — modifiez la requête IA dans l’onglet ABC v2
  • Export PDF pour les analyses IA et ABC par séance — les analyses individuelles sont exportées séparément
  • Pluralisation des libellés ABC en 8 langues — le tableau de conceptualisation a les bonnes formes plurielles
  • Correction des colonnes ABC vides — le backend renvoie les bons noms de propriétés au pluriel

8. 🧾 Factures et KSeF — sélection des paiements + machine à états

Le système de facturation a été refactorisé pour la conformité avec KSeF (système national polonais de facturation électronique).

  • Facture à partir des paiements sélectionnés — choisissez des paiements et le système crée une seule facture à partir d’eux (instantané + Payment FK)
  • Point d’entrée « Émettre une facture » dans la vue financière du thérapeute — accès rapide depuis le tableau de bord
  • Suppression d’un élément dans la fenêtre modale d’émission de facture — corrigez les erreurs à la volée
  • Séparation KSeF dev/prod — le bac à sable et la production fonctionnent avec des identifiants séparés
  • Machine à états de facture (SCRUM-1357 Bohdan) — Brouillon → Émise → Envoyée → Annulée, avec une contrainte en base de données sur les transitions illégales
  • AE KsefToken — jeton KSeF chiffré avec Always Encrypted

Travail conjoint de Bohdan (SCRUM-1357, SCRUM-1388).

9. 📅 Calendrier, séances récurrentes et lieux

Le calendrier hebdomadaire et récurrent a reçu des dizaines de petites améliorations visibles - la plupart signalées par Joanna et Ewa.

  • Séances à partir de 22h00 — étaient invisibles sur la grille hebdomadaire, désormais affichées jusqu’à la fin de la journée
  • Toutes les heures sur la grille de créneaux récurrents (SCRUM-874, Joanna)
  • Séance annulée dans les délais — ne s’affiche plus comme « Non payée » (SCRUM-918, Joanna)
  • Étiquette de récurrence à côté du créneau récurrent (SCRUM-919, Joanna) — vous voyez « hebdomadaire », « toutes les deux semaines » à côté de chaque séance répétitive
  • Masquage de l’intégration Zoom dans l’interface (SCRUM-789, Joanna) — Zoom n’est plus pris en charge comme canal vidéo
  • Popover de séance dans le calendrier — ne se cache plus hors écran
  • TherapistAvailability — sauvegarde automatique à chaque modification (délai de 800 ms), plus besoin de bouton d’enregistrement
  • AddSessionModal — option « créer une séance en dehors des heures de disponibilité » — les exceptions peuvent forcer un créneau
  • Statut « Absence » (No-show) (NoShow=5) — nouveau statut, paramétrable même à partir d’une séance terminée ou annulée
  • RecurringSessionsCalendar — tuiles récapitulatives au-dessus de la légende et de la grille

Les lieux du thérapeute ont reçu des canaux de rendez-vous en ligne par lieu :

  • Mode sur place (Onsite) — champs adresse et ville pour les lieux en présentiel
  • Commutateur sur place/en ligne au lieu d’une case à cocher — choix de mode plus clair
  • Canal en ligne par lieu — différents lieux peuvent avoir différents canaux (AITS, Google Meet, lien externe), propagé automatiquement aux séances
  • Salles de rendez-vous permanentes par patient — chaque patient dispose d’un lien de salle AITS permanent et d’un lien externe séparé visible dans les paramètres du patient
  • Suppression de lieu — corrigée (disparaissait de la base de données mais restait sur la liste de l’interface)

Et enfin le type de rendez-vous dans les séances récurrentes — propagation corrigée de MeetingType et MeetingLink depuis la configuration de la série récurrente vers chaque séance générée et vers les e-mails de rappel (SCRUM-902, Ewa).

10. 📱 Application mobile — thème sombre, boîte de réception AdHoc, finitions

L’application mobile est passée à la version 1.5.0 (build 18) avec une multitude de changements visibles par l’utilisateur et quelques ajustements de signature App Store / Play Store.

  • Thème sombre — mode sombre complet avec des en-têtes de groupe lisibles (SCRUM-1089, Ewa + SCRUM-815)
  • Rappels configurables — choisissez quand vous voulez recevoir une notification de séance
  • Rappel mobile 15 min — rappel 15 minutes avant la séance + avertissement lorsque les notifications système sont désactivées (SCRUM-815, Bohdan)
  • État vide pour la liste des séances — au lieu d’un écran vide, un accueil plus riche (SCRUM-1094, Ewa)
  • Bandeau d’actualisation automatique — lorsque l’application détecte une mise à jour, elle affiche un bandeau d’actualisation invitant
  • Boîte de réception AdHoc + AssignPatient + démarrage rapide dans MAUI (SCRUM-1289, Bohdan)
  • Démarrage rapide mobile PWA pour les séances ad hoc (SCRUM-1286, Bohdan)
  • Vue web réactive pour téléphone — inchangée sur ordinateur, sur téléphone la mise en page s’adapte à l’écran étroit
  • Gestionnaire de lien profond (deep-link) sur iOS — utilise BindingContext, enregistrement du schéma d’URL
  • Chaînes de justification NSLocation iOS — correction d’ITMS-90683 (l’App Store rejetait les builds sans ces chaînes)
  • AAB Android — étape jarsigner explicite
  • Matériel App Store Connect et Google Play — pack complet plus un audit WCAG 2.2

11. 🔐 Sécurité : SOC 2 / HIPAA, MFA, pseudonymisation IA complète

En coulisses, sous la couche produit, nous avons mené un chantier complet de durcissement SOC 2 et HIPAA ainsi qu’un audit DDD avec cinq livrables concrets.

  • Revérification MFA pour les opérations critiques — pour les actions sensibles (changement de mot de passe, export de données), vous reconfirmez avec la MFA
  • Codes de secours pour la MFA — codes d’urgence si vous perdez votre téléphone
  • IAnonymizedLlmGateway (SCRUM-1353, Bohdan) — tous les appels au modèle IA passent désormais par une passerelle de pseudonymisation. Les noms, dates, lieux sont remplacés par des pseudonymes avant de quitter l’application ; l’IA ne reçoit que la version anonymisée
  • Pseudonymisation des notifications e-mail/SMS (SCRUM-1354) — les modèles de messages ne divulguent pas non plus de données patients à l’envoi
  • Jetons OAuth Google/Zoom chiffrés avec Always Encrypted (SCRUM-1355) — les jetons d’accès aux intégrations sont chiffrés au niveau des colonnes
  • Drapeau Patient.PendingConsent (SCRUM-1356) — les patients sans consentement actif reçoivent un flux d’application + un badge frontend
  • Machine à états de facture (SCRUM-1357) — les statuts de facture sont immuables dans les directions invalides, appliqué au niveau de la base de données
  • Immutabilité de l’audit + instantané utilisateur dans 3 tables d’audit — le journal des actions ne peut être modifié a posteriori
  • DeanonymizationAuditLog — chaque utilisation de données patients après désanonymisation est journalisée avec l’e-mail et le nom d’affichage de l’utilisateur qui l’a effectuée
  • Secrets codés en dur supprimés — toutes les clés et mots de passe de appsettings.json déplacés vers Azure Key Vault
  • Always Encrypted pour toutes les données textuelles utilisateur (ADR-0018) — orientation architecturale approuvée ; d’autres tables migreront à la prochaine version
  • Analyse des écarts de conformité ISO/CEI — 95 écarts cartographiés sur 9 normes, avec un plan de remédiation

Adossé à un audit DDD complet (Sessions 1-8, Phases 1-6) — restructuration des contextes de domaine, documentation d’architecture, ADR, diagrammes mermaid et tests, playbooks, intégration Confluence.

12. 👤 Portail patient — analyses dans Objectifs, matériel, meilleur aperçu

  • Conceptualisation de Beck dans l’onglet « Objectifs » du patient — lorsque vous publiez la conceptualisation, le patient la voit dans son portail
  • Publication des analyses vers le portail patient + préférences de notification (SCRUM-1338, Bartlomiej) — contrôlez ce que le patient reçoit et quand
  • Aperçu PDF du portailiframe au lieu de embed, le CSP autorise blob: (les PDF se chargent)
  • Aperçu du portail patient depuis la vue du thérapeute — voyez ce que voit le patient (habillage dans un conteneur, tableau de bord 1:1)
  • Documents de séance dans Azure Blob Storage — SessionMaterial comme blob, plus de système de fichiers local
  • Section consentement / documents + source d’inscription dans les paramètres patient
  • Unicité globale de l’e-mail patient (SCRUM-898) — un deuxième patient avec le même e-mail reçoit une erreur 409 + la fenêtre modale se ferme (SCRUM-898, Ewa)
  • Semeur de modèles de notification pour SK, CA, RU, UK, LT (SCRUM-883, Joanna) — envoi multilingue complet
  • Repli du résolveur vers le défaut de la plateforme — lorsqu’un thérapeute n’a pas remplacé le modèle, le modèle multilingue par défaut est envoyé (SCRUM-883)

13. 🎙️ Transcription — enregistrement fiable, ajout, temps réel avec diarisation

  • Ajout à une transcription existante — continuez d’enregistrer dans la même séance ; les segments s’ajoutent (l’intention survit à un rechargement de page)
  • Audio par participant pour la diarisation — la transcription vidéo sépare les locuteurs sur des pistes indépendantes
  • La transcription survit au PiP — la réduction de la salle n’interrompt pas l’enregistrement
  • Langue de transcription issue des paramètres de séance — le STT utilise la langue que vous avez définie pour le patient
  • Actualisation automatique de la transcription au focus / au changement de visibilité / au retour depuis la vidéo
  • Confirmation à l’arrêt de l’enregistrement < 2 s — protection contre un fichier WAV vide dû à un clic accidentel
  • Badge « Envoi en cours » dans la liste des séances — vous voyez quand un enregistrement est en téléversement
  • Temps réel avec diarisation en séance vidéo — ne démarrait pas auparavant ; fonctionne désormais
  • Sauvegarde OPFS + Opus 48 kbps — l’enregistrement est aussi sauvegardé localement dans OPFS en secours, paramètres audio unifiés
  • Téléversement audio direct via SAS (SCRUM-1276, Bohdan) — l’audio va directement vers Azure via une URL SAS, en contournant le backend
  • m4a natif vers Azure Speech — le m4a est traité nativement, sans conversion
  • Détection du format par magic bytes (SCRUM-1311, Bohdan) — lorsque Content-Type=application/octet-stream, le format est détecté à partir du contenu du fichier
  • Hub sans texte en base de données — le hub temps réel SignalR ne conserve plus de texte en base ; finishPending utilise un POST multipart comme MAUI
  • Correction SignalR 1006 — suppression de skipNegotiation pour qu’Azure SignalR fonctionne + ajustement du keep-alive
  • Marqueur [AI] dès la première génération + recherche fiable du marqueur

14. 💬 Notifications, paramètres patient, petits ajustements UX

  • NotificationTemplatesAdmin — bascule HTML/Texte dans l’éditeur d’e-mail
  • NotificationSettings — l’aperçu de l’e-mail affiche le HTML avec un repli
  • PromptEditModal — reconstruit : onglets, sélecteur de modèle, noms de version requis
  • Réinitialisation du drapeau Hide_dev_ui à la déconnexion — les drapeaux développeur ne persistent pas entre les sessions
  • Patiente de test Ann Fauler — équivalent anglais 1:1 de la polonaise Anna Pełnialska pour les démonstrations en anglais uniquement
  • Bascule du mode présentation de l’interface développeur — passage rapide en mode présentation
  • Signalement de bug — pièces jointes Jira + étiquette du rapporteur et bouton « Envoyer » centré
  • Boucle de rafraîchissement d’authentification corrigée — annulation des requêtes et retour à la connexion après une erreur 401
  • Bandeau « Le serveur démarre » — lors d’un démarrage à froid (scale-to-zero), nous affichons un avis au lieu d’une page vide
  • Échelle d’évaluation de séance — auto-réflexion au lieu de la notation de qualité + avertissement (SCRUM-1005, Joanna)
  • Couleur du bouton « Réduire » changée en violet cobalt (SCRUM-1307, Ewa)
  • Couleur de l’étiquette « Transcription » passée du rouge au vert (SCRUM-1304, Ewa)
  • « Enregistrer maintenant » → « Enregistrer une séance AdHoc » — nom de bouton plus précis
  • Bac à sable avec ruban vert dans le coin supérieur gauche + préfixe [SANDBOX] dans le titre — pour éviter la confusion entre environnements, plus un clonage reproductible PROD → Sandbox (Azure IaC et scripts)

✅ Liste de contrôle QA — que vérifier après le déploiement

FonctionnalitéVérification
Séance ad hoc — Enregistrement rapideCliquez sur Enregistrement rapide dans le tableau de bord ou la PWA — l’enregistrement démarre immédiatement, la séance atterrit dans la boîte de réception AdHoc
AssignPatient dans la boîte de réception AdHocOuvrez un enregistrement ad hoc — vous pouvez l’assigner à un patient existant ou en créer un nouveau
Limite de forfaitLe tableau de bord affiche le compteur de séances du mois en cours et combien il en reste dans le forfait
Période de grâce après un paiement échouéSimulateur d’abonnement dans PromptyAI — forcez un échec de paiement, vous obtenez un accès au compte seul pendant 14 jours
Fusion des notes à trois sourcesDans les détails de séance, le champ Notes affiche trois sources côte à côte (thérapeute / IA / transcription) ; vous pouvez choisir ce qu’il faut conserver
9 analyses TCCL’onglet des analyses TCC affiche 9 éléments distincts ; chacun généré à la demande ; chacun a une roue crantée d’édition de requête
Profil public — panneauxOuvrez votre propre profil public en étant connecté — les panneaux d’édition biographie, spécialisation, contact sont visibles
PiP vidéoPendant une séance vidéo, cliquez sur réduire — la fenêtre se réduit en mini-lecteur, le micro fonctionne toujours, vous revenez sans salle d’attente
Flou d’arrière-planDans la salle d’attente vidéo, activez le flou d’arrière-plan — fonctionne immédiatement, sans erreurs CSP
PDF de conceptualisation BeckGénérez le PDF de conceptualisation — apparaît aussi dans les documents de séance
Bascule ABC v1/v2Dans la conceptualisation v2, vous pouvez basculer la source ABC entre la version 1 et la version 2
Facture à partir des paiements sélectionnésSélectionnez plusieurs paiements et cliquez sur « Émettre une facture » — une seule facture est produite à partir de l’instantané
Séance récurrente avec Google MeetLa deuxième et la troisième séance de la série ont Google Meet correctement configuré et l’e-mail contient le bon lien
Séances à partir de 22h00Le calendrier hebdomadaire affiche les séances programmées à 22h00 et après
Statut « Absence »Dans une séance terminée / annulée, vous pouvez changer le statut en « Absence »
Thème sombre mobileDans l’application mobile, passez au thème sombre — les en-têtes de groupe sont lisibles
Boîte de réception AdHoc sur mobileLe mobile affiche la boîte de réception ad hoc et permet d’assigner un patient
Revérification MFALors du changement de mot de passe, l’application redemande la MFA
Pseudonymisation IADans les journaux, vous voyez les données patients arriver à l’IA sous forme de pseudonymes
Documents de séance en blobTéléversez un fichier dans les documents de séance — il atterrit dans Azure Blob Storage, pas sur le disque local
Unicité globale de l’e-mail patientAjoutez un deuxième patient avec le même e-mail — vous obtenez une erreur 409 et la fenêtre modale se ferme
Bandeau « Le serveur démarre »Après une période d’inactivité prolongée, l’entrée dans l’application affiche le bandeau au lieu d’une page vide

🛠️ Ce que nous avons corrigé — en petits caractères

En plus des grandes fonctionnalités, environ 80 signalements de testeurs et d’utilisateurs ont été résolus. Points marquants :

  • La superposition PiP n’était pas cliquable — corrigé
  • Fermeture obsolète dans handleMaximize — l’agrandissement du PiP ne génère plus d’erreur
  • Le PiP conserve la connexion — auparavant room.disconnect() se déclenchait lors de la transition plein écran↔PiP
  • Le bouton « Rejoindre la séance » était masqué par une surcharge CSS — révélé
  • Deuxième séance AITS pour le même patient (SCRUM-1319, Ewa) — suppression de l’index UNIQUE sur Session.VideoInviteToken
  • La numérotation des séances en conceptualisation ignore les séances annulées (SCRUM-1267, Bohdan)
  • Accès sécurisé (null-safe) à Payment dans GetSessionDetailsAsync (SCRUM-1268, Bohdan)
  • Collision de séance de test entre Anna Pełnialska et Jan à 14h00 — corrigée dans le seeder
  • Ralentissement du tableau de bord — mappage null-safe dans GetTodaySessionsAsync et GetSessionDetailsAsync
  • Actualisation automatique après la fin de l’enregistrement au micro — fonctionne
  • Le repli par lot (batch) n’écrase plus le texte des enregistrements précédents et ne bloque plus l’interface avec un statut « En traitement »
  • Langue de transcription issue des paramètres de séance — le STT respecte la préférence du patient
  • CSP — autorisation de *.clarity.ms, blob: dans connect-src, analytique dans script-src
  • Boucle de rafraîchissement d’authentification — annulation des requêtes après une erreur 401 et retour à la connexion
  • CSP MediaPipe WASM — le flou d’arrière-plan fonctionne
  • Ruban DEV/SANDBOX également sur le FQDN Azure, pas seulement sur le domaine personnalisé
  • Faux toast « Échec de la transcription » à l’entrée en séance — supprimé
  • Toast au lieu d’un bandeau rouge en cas d’échec de transcription + suppression du bouton « Rééchantillonner »
  • Le temps réel avec diarisation en séance vidéo — démarre correctement
  • Diffusion IA — un AbortController par gestionnaire au lieu d’un AbortController partagé (BodyStreamBuffer was aborted)
  • Nginx sans root et Azure Container Apps — plusieurs itérations pour que cela fonctionne
  • Verrou distribué (sp_getapplock) — les migrations au démarrage n’entrent plus en conflit lors de déploiements parallèles
  • DbUpdateConcurrencyException dans le collecteur de transcription par lot (SCRUM-1313, Bohdan)
  • BlobNotFound comme état attendu (SCRUM-1314, Bohdan)
  • Charges utiles non-JSON du webhook Stripe (scanners / robots) — traitées silencieusement (SCRUM-1315, Bohdan)
  • Détection du format audio par magic bytes (SCRUM-1311, Bohdan)
  • Téléversement audio résilient + Content-Type défensif (SCRUM-1293, Bohdan)
  • Migration FK ActiveEmbeddingModelId → ON DELETE NO ACTION
  • Déploiement du client dev — CACHE_BUST=github.sha force la reconstruction du frontend

C’est la version la plus vaste et la plus dense de ce printemps. Si une fonctionnalité vous semble familière, c’est parce qu’elle était votre demande ou votre ticket. Merci pour chaque signalement et chaque capture d’écran.

Article préparé par l’équipe Therapy Support

Therapy Support · Commencez dès aujourd'hui

Reprenez du temps pour vous
et vos Patients

Vous êtes thérapeute TCC ?
Découvrez comment la plateforme soutient votre travail quotidien.
Des résumés de séance qui organisent le matériel clinique. Une administration qui ne gêne pas.