Releases: govpf/mes-demarches
Releases · govpf/mes-demarches
05 juin 2026
Améliorations et correctifs
Polynésie
Technique
- Correction d'un crash (500) à la suppression d'une pièce jointe : nil check sur
@attachmentdansAttachmentsController#destroy(#475) - Correction d'un crash d'affichage : nil guard sur le référentiel dans
ReferentielComponent(#474) - Correction des 500 sur les URL de fichiers via l'API GraphQL : ne plus passer
host:àFile#url(S3 présigné) (#ceecad1) - Playground GraphQL : forcer le format HTML pour éviter une erreur de rendu (#473)
- Backfill SIRET : restauration de la version raw-SQL (anti-timeout) perdue lors d'un merge devpf (#009a1e9)
Intégration de la release upstream 2025-11-25-01
Instructeur
- ETQ Instructeur, je veux pouvoir appliquer ma configuration de filtres sur tous les onglets à la fois (demarche-numerique#12343)
- ETQ Instructeur je ne veux plus d'erreur sur les filtres sur les liste déroulantes liées (demarche-numerique#12371)
Usager
- ETQ usager j'ai des emails automatiques dans la langue que j'ai choisie (demarche-numerique#12352)
- ETQ Usager, je veux que la couleur du lien d'une alerte soit de la même couleur que le texte (demarche-numerique#12366)
Divers
- chore: 3eme, ETQ opérateur j'aimerais que la tache de migration des siret non fetchée passe (demarche-numerique#12350)
Technique
- ETQ Tech - fix : je ne veux pas de string vide en base pour les filtres (demarche-numerique#12353)
29 mai 2026
Améliorations et correctifs
Polynésie
Administrateur
- Champ formule : agrégation sur blocs répétables avec la notation
{Bloc/Sous-champ}— somme, comptage et autres agrégats sur les lignes d'un bloc (#455) - Champ formule : nouveaux alias français —
NB,COMPTE,RACINE,PLANCHER,PLAFOND,MEDIANE,JOINDRE - Champ formule : une formule dans un bloc peut désormais référencer un autre sous-champ du même bloc
- Champ formule : l'autocomplétion suggère les sous-chemins
{Bloc/Sous-champ}ainsi que les sous-champs DN et Commune
Instructeur
- Champ formule : recalcul automatique en cascade des agrégats lors de l'ajout ou la suppression de lignes d'un bloc répétable
Technique
- Champs DN et Commune de Polynésie : sous-champs exposés en
value_json(JSONPathColumn), exploitables dans les formules et l'API GraphQL (#452) - Backfill automatique des
value_jsonDN / Commune au déploiement (tâchesPopulateNumeroDnValueJSONetPopulateCommunePolynesieValueJSON,run_on_first_deploy) - Champ formule : correction des messages d'erreur de validation (syntaxe, section, intervalle) (#454)
- Emails : adaptation PF de la migration de domaine upstream — liens et expéditeur restent toujours sur le domaine PF,
preferred_domainignoré, aucune fuite vers*.numerique.gouv.fr - Correctif
Users::DossiersController#identite: vérifie la présence defor_tiersdans les paramètres
Intégration de la release upstream 2025-11-18-01
Instructeur
- ETQ Instructeur je veux une meilleur UX sur les filtres (demarche-numerique#12315)
- ETQ Instructeur je veux ordonner les filtres (demarche-numerique#12336)
API
- ETQ que consommateur graphql, je veux savoir l'état de l'antivirus sur une pj (demarche-numerique#12321)
Technique
- Tech: bump herb (demarche-numerique#12334)
- ETQ Tech, je veux des messages d'erreurs différenciés dans sentry pour l'api adresse (demarche-numerique#12338)
Intégration de la release upstream 2025-11-19-01
Administrateur
- ETQ admin, je vois les infos complémentaires remontées pour les champs Adresse et Commune (demarche-numerique#12335)
- ETQ admin ou instructeur, je veux pouvoir me débloquer si j'ai connecté mon compte Démarches Simplifiées au mauvais compte RDV Service Public (demarche-numerique#12330)
Usager
- ETQ Usager, je ne veux pas rester bloqué sur le champ adresse avec une erreur (demarche-numerique#12329)
API
- ETQ intégrateur API j'ai accès à l'attestation de refus d'un dossier (demarche-numerique#12314)
Divers
- Fix - sentry: je ne veux pas d'erreur pour des requetes turbo_stream sans params (demarche-numerique#12339)
- ETQ DS - je veux informer du bon délai restant avant suppression définitive d'un dossier (demarche-numerique#12337)
- ETQ Agent, lorsque j'utilise pro connect sur demarche(s).numerique, je reste sur le mm domaine apres la redirection (demarche-numerique#12341)
- chore: ETQ opérateur j'aimerais que la tache de migration des siret non fetchée passe (demarche-numerique#12340)
Technique
- chore: ETQ tech, je dispose d'un composant générique de stepper (demarche-numerique#12332)
- Tech (migration domaine 2/n): enregistre toujours le preferred_domain à la connexion (demarche-numerique#11833)
Intégration de la release upstream 2025-11-19-02
Divers
- chore: ETQ opérateur j'aimerais que la tache de migration des siret non fetchée passe (demarche-numerique#12345)
Technique
- Tech: les urls de l'API Graphql utilisent le même host que la requête (demarche-numerique#12346)
Intégration de la release upstream 2025-11-20-01
Cette version déploie le changement de nom.
Instructeur
- ETQ Instructeur, lorsque je recois le jeton de connexion par mail, je peux utiliser l'ancien site (demarche-numerique#12349)
Technique
- Tech (migration domaine 3/n): change le nom du site et force les emails à générer des liens et être envoyé depuis demarche.numerique (demarche-numerique#12348)
- Tech (migration domaine 4/n): page tampon de redirection demarches.numerique => demarche.numerique (demarche-numerique#12344)
- Tech: fix application name sur page transitoire (demarche-numerique#12354)
Intégration de la release upstream 2025-11-20-02
Usager
- ETQ usager, nouveau nom de site dans le logo + améliore rendu dans les emails (demarche-numerique#12355)
- ETQ usager, par d'erreur sur la page tampon demarches.numerique si on n'est pas connecté (demarche-numerique#12356)
Intégration de la release upstream 2025-11-20-03
Technique
- Tech: configure toutes nos adresses d'émission d'email auto présentes et passées (demarche-numerique#12358)
25 mai 2026 — intégration upstream 2025-11
Améliorations et correctifs
Polynésie
Instructeur
- Vos préférences de notifications email sont conservées telles quelles malgré la refonte technique de leur stockage : les notifications instantanées restent activées par défaut, et vous pouvez toujours désactiver l'avertissement de suppression de dossier (#f27a99d, #4ff3677, #f09cafe)
API
- Query GraphQL par défaut (
ds-query-v2) allégée :columnsn'est désormais demandé que surPieceJustificativeChamp(colonnes OCR des RIB) etReferentielDePolynesieChamp(éclatement référentiel), au lieu de tous les types — sortie n8n drastiquement réduite, debug plus lisible (#450)
Technique
- Migration de schéma
20260525123737_change_default_values_for_instructeurs_procedure_email_preferencesqui aligne les valeurs par défaut PostgreSQL des nouvelles colonnes de préférences mail sur le comportement PF (#7fa1336) - Augmentation du seuil
query_countdes specs N+1 pour absorber les spécificités PF post-migration email (#38f313b) - Ajustement des specs
deletion_emailet regénération duschema.rb(#fe926ea, #01cecf6)
Intégration de la release upstream 2025-11-10-01
Instructeur
- Filtres de dossiers : nouvelle interface plus simple pour ajouter et personnaliser les filtres sur vos listes de dossiers (demarche-numerique#12225)
- Performance : affichage plus rapide de la page d'un dossier et de la galerie de pièces jointes (demarche-numerique#12307)
- Champ SIRET : la valeur saisie reste lisible même si la récupération automatique des données entreprise rencontre une erreur partielle (demarche-numerique#12317)
- Dossiers expirés automatiquement : meilleur traitement dans les listes — indication visuelle plus claire, et restauration automatique si l'administrateur augmente la durée de conservation de la procédure (demarche-numerique#12310)
Usager
- Si vous vous reconnectez dans un autre onglet pendant que vous remplissez un formulaire, le soumettre ne provoque plus d'erreur technique : vous êtes redirigé sur votre formulaire avec un message d'erreur explicite (demarche-numerique#12262)
Technique
- Préparation du transfert des préférences email vers la table
instructeurs_procedures(demarche-numerique#12304) - Nettoyage de code mort lié aux notifications de pièces jointes dans la galerie (demarche-numerique#12300)
- Suppression de la configuration PRO_CONNECT_GOUV dédiée (demarche-numerique#12309)
Intégration de la release upstream 2025-11-17-01
Administrateur
- Listes liées (drop-down dépendant) : quand vous supprimez une option de premier niveau, les sous-options choisies par l'usager se réinitialisent automatiquement lorsqu'il modifie son dossier — évite de laisser des valeurs incohérentes (demarche-numerique#12324)
Instructeur
- Décision sur un dossier : la prévisualisation de l'attestation d'acceptation ou de refus est désormais mieux mise en avant dans l'écran de décision (demarche-numerique#12318)
- Filtres de dossiers : les boutons radio se sélectionnent maintenant correctement dès le premier clic (demarche-numerique#12322)
- Identité d'un dossier : l'établissement reste visible dans l'onglet Identité même si certaines données sont incomplètes (demarche-numerique#12323)
- Connexion par lien email : si le lien que vous avez reçu est expiré, vous pouvez maintenant demander un nouveau lien directement depuis la page d'erreur (demarche-numerique#12325)
Usager
- Téléchargement PDF du dossier : les espaces insécables ne s'affichent plus comme du texte brut
dans le PDF généré (demarche-numerique#12312)
Technique
- Suppression de la colonne
pieces_jointes_seen_atde la tablefollows(demarche-numerique#12311)
Intégration de la release upstream 2025-11-17-02
Technique
- Préparation au blocage ProConnect d'accès à une démarche — phase 1/3 (demarche-numerique#12305)
- Réduction des erreurs lors des appels à l'API Adresse (demarche-numerique#12327)
- Migration du nom de domaine — étape 1 : force la configuration mailer et amorce le renommage (demarche-numerique#12333)
⚠️ Actions manuelles post-déploiement
Après le déploiement, lancer manuellement les Maintenance Tasks suivantes depuis l'interface d'administration (/admin/maintenance_tasks) :
-
Maintenance::T20251017SetDefaultFiltersForAllProcedurePresentationsTask— initialise les filtres par défaut sur toutes lesProcedurePresentationexistantes (nouvelle fonctionnalité « personnaliser ses filtres » de la release 2025-11-10-01). Sans elle, les instructeurs ne verront aucun filtre par défaut sur leurs procédures existantes. -
Maintenance::T20251104migrateEmailPreferencesFromAssignTosToInstructeursProceduresTask— transfère les préférences email depuisassign_tosversinstructeurs_procedures(refactor upstream). À lancer après la migration de schéma20251104131811_add_email_preferences_to_instructeurs_procedure(auto au déploiement). Sans elle, les instructeurs perdent leurs préférences personnalisées. -
Maintenance::T20251112backfillChampSiretExternalStateWithEtablissementButNoValueOrExternalIdTask— corrige lesChamps::SiretChampqui ont unetablissement_idmais nivalueniexternal_id(bad data). Fait que les SIRET cassés redeviennent lisibles côté API et instructeur.
Note : T20251105BackfillProConnectRestrictionTask (de la release 2025-11-17-02) a run_on_first_deploy actif → s'exécute automatiquement, rien à faire.
Ne pas oublier : ces tâches sont commentées # run_on_first_deploy et ne s'exécutent donc PAS automatiquement au déploiement.
Migrations
20251104131811_add_email_preferences_to_instructeurs_procedure: ajoute les colonnes de préférences mail àinstructeurs_procedures(upstream)20251104184609_add_pro_connect_restriction_to_procedures: ajoute la colonnepro_connect_restrictionàprocedures(upstream)20251106145255_remove_follows_pieces_jointes_at: supprime la colonnepieces_jointes_seen_atdefollows(upstream)20260525123737_change_default_values_for_instructeurs_procedure_email_preferences: aligne les défauts PostgreSQL des nouvelles colonnes de préférences mail sur le comportement PF (notifications instantanées activées, désactivation possible de la notif de suppression)
25 mai 2026
Améliorations et correctifs
Polynésie
Administrateur
- Éditeur formule : la validation côté serveur affiche désormais un toast rouge persistant quand l'expression est rejetée (ex : fonction inexistante), au lieu du faux positif "✅ Sauvegardé" précédent (#449)
- Champ formule : rendu type-aware via
formule_output_typestocké, supprime le sniffing par regex qui transformait à tort des chaînes commençant par une date ISO en balise<time>(#442) - DSL formule : nouvelles fonctions de date —
JOURS_ENTRE,SEMAINES_ENTRE,MOIS_ENTRE,ANNEES_ENTRE,DUREE_SEMAINES(#443) - DSL formule : nouvelles fonctions d'arrondi/conversion —
ARRONDI_INF(floor),ARRONDI_SUP(ceil),ENTIER(truncation vers zéro) (#449) - Prompt IA d'aide à la rédaction de formule : documente les nouvelles fonctions avec exemples positifs et négatifs (#443, #449)
Usager
- Formules dépendant de l'identité (
{individual_first_name},{individual_last_name},{entreprise_*}) se recalculent désormais automatiquement quand l'usager modifie son identité ou son SIRET (#447) - Préservation des entiers entre formules chaînées :
CONCATENER("00", {formule_arrondi}, "000")produit désormais"004000"au lieu de"004.0000"quand la formule source retourne un entier (#449) - Cascade transitive entre formules : modifier un champ source recalcule en chaîne toutes les formules qui en dépendent, même indirectement (#446)
- Recalcul des formules basées sur les timestamps d'état du dossier (
{dossier_en_instruction_at}etc.) au moment des transitions (#446)
API
- GraphiQL Playground v5 : le dropdown du bouton Play (basculer entre Execute Query, Subscription, etc.) est à nouveau cliquable
Technique
- Graphe de dépendances formule unifié dans
options['formule_deps'](Hash structuréchamps/has_clock/has_state/has_identite), remplaçant les anciens flags booléens séparés (#444) - Migration backfill
20260522174323_backfill_formule_deps.rbqui peupleformule_depssur les TypeDeChamp formule existants (#445) - Migration des 5 consommateurs (
Champ,DossierFormulaRefreshConcern,ProcedureRevision, cronRefreshClockDependentFormulasJob) vers le nouveau format ; suppression des anciens flagsclock_dependent,state_dependent,dependent_stable_ids(#446) - Détection des fonctions d'horloge via AST Dentaku (au lieu d'une regex sur l'expression brute) — évite les faux positifs sur des littéraux string contenant
AGE,AUJOURDHUI, etc. Gère les nœudsNegation(#444) - 4 scénarios système Capybara de non-régression sur le champ formule (cascade, transition d'état, identité, affichage type-aware) (#448)
SEMAINES_ENTREetANNEES_ENTREsymétriques sur les valeurs négatives (cf.JOURS_ENTRE(d2, d1) = -JOURS_ENTRE(d1, d2)) (#443)- Skill
upstream-integrationdocumenté et 5 agentsupstream-*archivés - Skill
md_release: collecte automatique des Maintenance Tasks Issue B (à lancer manuellement post-déploiement)
Migrations
BackfillFormuleDeps(20260522174323) : peupleoptions['formule_deps'](Hash structuré) sur chaqueTypeDeChampformule existant. Compute inline (regex),update_columnpour skipper les callbacks.downnon réversible.
21 mai 2026
Améliorations et correctifs
Polynésie
Administrateur
- fix(manager) : la suppression d'un type de champ ne plante plus quand
draft.remove_type_de_champretournenil— le préchargement de la révision est désormais protégé par un nil check (#439) - fix(manager) : l'ajout d'un administrateur/instructeur ne lève plus
NoMethodError: undefined method 'email' for nildans les messages d'alerte — on utilise l'email du super admin courant (#349)
Instructeur
- fix(pdf) : un PDF de pièce justificative malformé (HexaPDF::MalformedPDFError) ne renvoie plus une erreur 500 lors du téléchargement avec QR-code — le PDF original est servi en fallback et l'incident est loggé en Sentry pour analyse (#388)
- fix(pdf) : la génération du PDF récapitulatif d'un dossier (
GET /dossiers/:id.pdf) ne plante plus avecArgumentError: wrong number of arguments (given 3, expected 2)dansformat_in_2_columns(#422)
Usager
- fix(liste déroulante liée) : la sélection d'une valeur secondaire ne lève plus
NoMethodErrorquand la valeur primaire n'a pas d'options secondaires associées (#421)
Technique
- refactor(formules) : la cascade de recalcul des champs formules devient explicite. Le callback
after_save :refresh_dependent_formulasest supprimé au profit d'appels explicitesdossier.refresh_formulas_after(champ)dans les controllers (user/instructeur/PJ/RNA), mutations GraphQL d'annotation, services external_data (SIRET, RNA, référentiel, API entreprise), ajout/suppression de lignes de bloc répétable, et mise à jour SIRET dossier-level. RésoutActiveRecord::RecordNotUniqueau clonage de dossiers contenant des formules (MES-DEMARCHES-350, 28 occurrences) et bouche les trous de cascade surdata/value_json/external_id(#434) - fix(activestorage) :
Aws::S3::Errors::NotFoundest désormais traduit enActiveStorage::FileNotFoundErrordans le scanner antivirus, ce qui permet audiscard_onduVirusScannerJobde prendre le relais quand un blob a été supprimé entre la mise en queue et l'exécution du job (#429)
07 mai 2026
Améliorations et correctifs
Polynésie
Administrateur
- fix(lexpol): le lien JOPF (
lexpol_arrete_lien) est désormais correctement récupéré pour lesArrêté en CMetArrêté en PR(et plus seulement pourArrêtéstrict) (#6043c1c) - fix: l'écran de clonage d'une démarche ne plante plus sur le bouton « Annuler » lorsque le zonage est désactivé (#b48248d)
Instructeur
- fix(mailer) : les liens et expéditeurs des mails « Connexion sécurisée » et de leur renouvellement quotidien ne fuient plus vers
demarches.numerique.gouv.fr— 100 % de ces messages partaient avec un From et des liens pointant vers le domaine upstream, ce qui cassait la connexion sécurisée de tous les instructeurs et administrateurs (#78aefa3)
Usager
- fix(attestation v2) : en mode libre, le logo de l'attestation occupe désormais toute la largeur disponible et la qualité du rendu PDF est nettement améliorée (variant Active Storage 1200px, ~300 DPI) (#6f511e0, #615efbd)
Technique
- chore(rubocop) : trailing commas (autocorrect) sur le spec lexpol (#3edec6e)
30 avril 2026
Améliorations et correctifs
Polynésie
Administrateur
- ETQ Administrateur, la grille des dossiers gagne en cohérence (base 3, suppression du
:half) avec des largeurs spécifiques pour les formules (:third) et les SIRET (:full) (#a191271, #0a7c43c) - ETQ Administrateur, la largeur des pièces jointes s'adapte automatiquement dans la grille avec un saut de ligne (#394)
Technique
- fix(annotations): early return quand tous les champs sont bloqués par un visa (#364)
- fix(rebase): autoriser l'écriture système des formules en main sur dossier en_construction (#393)
- fix(sentry): nil guard sur public_id dans private_champ_for_update (#364)
- fix(sentry): corrige l'index hors-borne lors du téléchargement de pièce justificative (#417)
- fix(sentry): garde contre un instructeur nil dans reset_link_sent (#417)
- chore: nouvelle règle rubocop pour les fichiers PF (#cf91b06)
Intégration de la release upstream 2025-11-05-01
Administrateur
- ETQ administrateur lorsque je clone une démarche, les tampons d'attestation des groupes instructeurs sont conservés (demarche-numerique#12297)
Usager
- ETQ Usager, je suis averti que je dois soumettre les modifications d'un dossier en construction (demarche-numerique#12298)
API
- fix(graphql): use new types on demand (demarche-numerique#12302)
Intégration de la release upstream 2025-11-06-01
Instructeur
- ETQ Instructeur: les vignettes des pjs de l'onglet demande sont plus petites (demarche-numerique#12296)
API
- ETQ utilisateur de l'api, je ne veux pas que ça plante si un champ entier contient une valeur supérieur à max int (demarche-numerique#12295)
Divers
- Fix flaky test, wait for button before clicking it (demarche-numerique#12303)
Technique
- Tech: supprime un ancien callback agent_connect maintenant obsolète (demarche-numerique#12292)
- Tech: migration des
.herbenerb, adaptation et reconfiguration des linters (demarche-numerique#12301) - Tech: active trailing commas pour les hash et array multilines (demarche-numerique#12306)
28 avril 2026
Améliorations et correctifs
Polynésie
Administrateur
- ETQ Administrateur, je peux activer une vue en grille des dossiers pour les instructeurs (via Flipper) et la configurer par formulaire (#334)
- ETQ Administrateur rédigeant une formule, je dispose d'un bouton qui copie dans le presse-papier une documentation auto-générée pour déléguer la rédaction à une IA généraliste (#6253c71)
- ETQ Administrateur, je dispose de fonctions de date dans les formules : AUJOURDHUI, MAINTENANT, JOUR, MOIS, ANNEE, JOURSEM, AGE, EST_PASSEE, EST_FUTURE, DUREE_* (#02c87d7)
- ETQ Administrateur, les formules dépendant du temps (AGE, AUJOURDHUI…) ou d'un changement d'état du dossier sont recalculées automatiquement chaque nuit (#c1ba898)
Instructeur
- ETQ Instructeur, je peux basculer entre l'affichage en grille et l'affichage mono-colonne des champs d'un dossier (#334)
Technique
- fix(formule): corrections d'affichage et de comportement du moteur de formules (badge "modification à déposer", cascade de recalcul, lecture buffer/main, dédoublonnage variables Dentaku, propagation row_id, etc.) (#08be472)
- fix(referentiel-pf): API.fetch_row prend 1 argument, lookup direct par row_id, bypass other, préservation du referentiel_id à la publication, silence du faux positif Sentry (#62de1ee, #26d357d, #738d659)
- fix(admin-tdc): restaure l'option character_limit (textarea) et supprime le doublon formatted (#65b1b74)
- feat(siret): ajoute des specs et de la doc, optimise les appels lors de plusieurs établissements (#e0a1984)
Intégration de la release upstream 2025-10-28-01
Technique
- Tech: génère des urls avec l'host vers le domaine du contexte de génération (demarche-numerique#12245)
- ETQ Tech - perf : je veux charger le minimum de dossiers pour l'affichage du détail des notifications (demarche-numerique#12251)
- ETQ Tech, on simplifie le code en utilisant la machine à état des champs externes (demarche-numerique#12236)
- Tech: remove forks 🎉 (demarche-numerique#12146)
Intégration de la release upstream 2025-10-28-02
Technique
- Tech: permet l'utilisation de pro connect sur demarche et demarches.numerique.gouv.fr (demarche-numerique#12257)
- Tech: arrete de relancer des jobs cadastres avec des geo_area manquantes (demarche-numerique#12256)
Intégration de la release upstream 2025-10-31-01
Instructeur
- correctif: ETQ usager/instructeurs, je souhaite que la mise en page du copier/coller de la valeur d'un champ ne soit pas en vracs ac les types de champ nombre (demarche-numerique#12258)
- ETQ usager / instructeur - Ajout d'un indicateur de lecture du message dans la messagerie (demarche-numerique#12227)
- correctif: ETQ instructeurs, je n'accede qu'aux exports avec les même groupes d'instructeurs que moi (demarche-numerique#12260)
- correctif: ETQ instructeur, quand je clique sur le titre d'une démarche, je ne souhaite pas être renvoyé vers la vue instructeur de celle ci, sans quoi j'ai un 403 (demarche-numerique#12270)
Usager
- ETQ Usager malvoyant, je veux que la prise de focus des tags cliquables soit visible (demarche-numerique#12265)
- ETQ Usager malvoyant, je veux que les bandeaux d'alertes soient suffisamment contrastés en mode sombre (demarche-numerique#12263)
Divers
- Perf: accélère l'analyse des ribs en plaçant leur analyse d'image en
default(demarche-numerique#12259) - ETQ Opérateur, je peux prévenir d'altération sur un dossier (demarche-numerique#12268)
Technique
- Tech: bump view components 3 => 4 (demarche-numerique#12252)
- Tech: dans bin/update maintenance tasks on deploy se jouent indépendamment de sidekiq (demarche-numerique#12240)
- tech: ETQ DS, j'aimerais utiliser la nouvelle architecture pour requeter les API Entreprise (demarche-numerique#12178)
- Tech: la tache d'annulation d'auto destruction des pjs ne plante pas si un attachment.record est absent (demarche-numerique#12269)
Intégration de la release upstream 2025-10-31-02
Technique
- Tech: ajoute une tache pour récupérer des champs.etablissement manquants (demarche-numerique#12272)
Intégration de la release upstream 2025-10-31-03
Technique
- tech: on s'est fait ban par API entreprise 🤡 (j'etais pas loin 😎 ). Je propose de stasher les jobs dans une queue pour ne pas se refaire ban asap (demarche-numerique#12275)
Intégration de la release upstream 2025-11-01-01
Rollback vers la version précédant 2025-10-31-03.
Intégration de la release upstream 2025-11-03-01
Instructeur
- ETQ Instructeur : je veux identifier une demande de correction annulée (demarche-numerique#12267)
Divers
- Fixe la margin bottom sur les confirmations de lecture (demarche-numerique#12278)
Technique
- tech: on s'est fait ban par API entreprise 🤡 (j'etais pas loin 😎 ). Je propose de stasher les jobs dans une queue pour ne pas se refaire ban asap (demarche-numerique#12275)
- tech: on reprend les echanges av API entreprise (demarche-numerique#12276)
- Tech: desactive temporaire le test de verification de signature (demarche-numerique#12279)
- tech: correctif sur la gestion des errs pour les retours d'API siret (demarche-numerique#12273)
- Tech: correction de l'appel en mode dégradé de l'api entreprise avec des sirets avec des espaces (demarche-numerique#12277)
Intégration de la release upstream 2025-11-03-02
Usager
- ETQ Usager, je veux que le format attendu d'un numéro de SIRET soit précisé dans l'étiquette du champ (demarche-numerique#12264)
- ETQ Usager malvoyant, je veux que les bouton de suppression soient suffisamment contrastés en mode sombre (demarche-numerique#12282)
Technique
- Tech: modifie la tache de récupération des établissements pour qu'elle espace de 20s ses appels a api entreprise (demarche-numerique#12284)
- Tech: supprime les vieilles routes de callback FC (demarche-numerique#12255)
- Tech: auth l'admin avant de récupérer ses tokens dans le controller API tokens (demarche-numerique#12283)
Intégration de la release upstream 2025-11-03-03
Instructeur
- ETQ Instructeur je veux pouvoir modifier les filtres de mes dossiers (demarche-numerique#12068)
Usager
- ETQ Usager, je veux que le message d'avertissement soit adapté lorsque j'ai atteint le nombre de caractères recommandés (demarche-numerique#12285)
API
- fix(graphql): champs should have correct type (demarche-numerique#12281)
Technique
- Tech: modification de la tache de notification pour prendre en compte le délai sur les champs siret (demarche-numerique#12286)
Migrations
Schéma de base de données
- AddFiltersExpandedToProcedurePresentation : ajoute la colonne
filters_expandedaux présentations de procédures (upstream 2025-11-03-03) - AddSeenByRecipientAtToCommentaires : ajoute la colonne
seen_by_recipient_ataux commentaires pour l'indicateur de lecture (upstream 2025-10-31-01) - AddIndexOnCommentairesSeenByRecipientAt : index pour la colonne précédente (upstream 2025-10-31-01)
- AddDossierLayoutPreferenceToInstructeurs : ajoute la préférence d'affichage des dossiers (grille / mono-colonne) à l'instructeur (PF — grid instructeur)
Maintenance tasks
- T20251029backfillChampSiretExternalStateTask : backfill des champs SIRET vers la nouvelle machine à états (upstream)
- T20251030warnOfPossibleAlterationTask : prévient d'une altération possible sur un dossier (upstream)
- T20251031backfillMissingEtablissementTask : récupère les établissements manquants (upstream)
21 avril 2026
Améliorations et correctifs
Polynésie
Administrateur
- ETQ administrateur, je peux déléguer à une IA généraliste externe la rédaction d'une formule Dentaku via un bouton qui copie dans le presse-papier une documentation auto-générée (variables disponibles, fonctions autorisées, limitations, format de réponse attendu) (#4ffe52650c)
- ETQ administrateur, j'ai accès à de nouvelles fonctions de date dans les formules : AUJOURDHUI(), MAINTENANT(), JOUR(d), MOIS(d), ANNEE(d), JOURSEM(d), AGE(d), EST_PASSEE(d), EST_FUTURE(d), DUREE_ANNEES/MOIS/JOURS(n), avec arithmétique native sur Date/DateTime (#02c87d7804)
- ETQ administrateur, l'éditeur de formule est plus ergonomique : messages d'erreur traduits en français, plus d'ajout de
}en double lors de l'autocomplétion, message explicite quand la formule est vide ou ne peut pas être calculée (#80b61a709b) - ETQ administrateur, le popup d'autocomplétion des références dans l'éditeur de formule s'affiche correctement (styles) et la sélection d'une suggestion au clic fonctionne à nouveau (#bac9daff83)
- ETQ administrateur, la sauvegarde d'une formule n'a plus lieu au fil de la frappe (qui provoquait des erreurs sur des expressions en cours de saisie) mais uniquement au blur du champ (#e4814a6331, #51e2e8cbe6)
Instructeur
- ETQ instructeur, les formules dépendant du temps (AGE, AUJOURDHUI, EST_PASSEE, EST_FUTURE) et celles dépendant des timestamps d'état du dossier (dépôt, passage en instruction, traitement) sont recalculées automatiquement : un job cron quotidien rafraîchit les formules temporelles des brouillons et des annotations privées, et un hook synchrone met à jour les formules dès qu'un état du dossier change (#c1ba8988a0)
Technique
- Typage booléen préservé de bout en bout : les références nues à un champ case à cocher / oui-non ou à une formule booléenne retournent bien "true"/"false" et non "0"/"1", avec inférence du type de sortie basée sur le champ référencé (#8253f84a80, #102372bc59)
- Les champs formule sont créés et calculés lors du rebase d'un dossier après ajout d'un champ formule à une démarche publiée (avec filet de sécurité côté project_champ pour les dossiers rebasés avant le fix) (#d4eb754e64)
- L'API GraphQL expose l'expression d'un FormuleChampDescriptor avec les libellés des champs référencés (
{Montant HT} * 2) au lieu des stable_ids internes (#c6c7f50843) - Corrections de style (RescueEnsureAlignment, prettier) et ajustement du spec .pays suite à l'intégration upstream (#f926ad083e, #2017474ace, #95d78d7bb0)
Intégration de la release upstream 2025-10-23-01
Instructeur
- ETQ instructeur, affichage plus rapide du détail des notifications quand on en a des centaines/milliers (demarche-numerique#12237)
Usager
- Mise à jour de la liste des pays, retire les DOM (demarche-numerique#12229)
Technique
- Tech: réduit le nombre de queries SQL en ajoutant / supprimant une PJ (demarche-numerique#12202)
- Correctif : détruit l'attestation template v1 à la publication de l'attestation template v2 (demarche-numerique#12209)
Intégration de la release upstream 2025-10-27-01
Administrateur
- ETQ admin je peux réactiver une démarche sur laquelle j'ai fait des modifications (demarche-numerique#12232)
- ETQ Administrateur, je veux mieux comprendre les restrictions sur les changements de type de champ (demarche-numerique#12244)
- ETQ administrateur, je veux pouvoir configurer le champ carte avec un référentiel RPG (demarche-numerique#12233)
- ETQ admin, pointe Mon Avis => Je Donne Mon Avis vers le nouveau domaine (demarche-numerique#12242)
Instructeur
- ETQ instructeur, je continue de voir les pays qui avaient été saisis en tant que DOM (demarche-numerique#12248, demarche-numerique#12250)
Usager
- Fix typo: 'best cast scenario' → 'best case scenario' (demarche-numerique#12241)
Technique
- Correctif : plus d'ids des procédures pouvant être ordonnées dans l'url order_positions_instructeur_procedures (demarche-numerique#12243)
- Technique : mise à jour de la librairie lightgallery (demarche-numerique#12238)
- Correctif : mise a jour du champ expired_at a la mise a jour d'un dossier brouillon (demarche-numerique#12235)
Intégration de la release upstream 2025-10-27-02
Technique
- Tech: contourne timeout dans la maintenance task de migration de DOM du champ pays (demarche-numerique#12254)
- Tech: importe les clés GPG de l'équipe + initialisation du tag avec ma propre clé (demarche-numerique#12246)
Migrations
- T20251017destroyAttestationTemplatesV1WhenV2PublishedTask : détruit les attestations templates v1 lorsque les v2 sont publiées
- T20251023MigrateChampsPaysAfterApiGeoUpdateTask : migre les champs Pays après la mise à jour de la liste des pays APIGeo (retrait des DOM)
15 avril 2026
Améliorations et correctifs
Polynésie
Administrateur
- Les champs formule référençant des champs texte retournent désormais la valeur textuelle brute au lieu de la convertir silencieusement en 0. Nouvelle fonction
VALEUR()disponible pour la conversion explicite texte→nombre quand nécessaire (416050c) - La modification de l'expression d'un champ formule déclenche maintenant l'avertissement de republication, comme pour tout autre changement d'option de champ (f61143a)
- La preview de démarche recalcule systématiquement les formules à la lecture pour refléter les modifications en cours (nouveau champ, expression modifiée, source changée). Correction du crash « Type De Champ X not found in Revision Y » sur un champ formule supprimé (e1b3db1)
- Les erreurs de validation des formules (syntaxe invalide, fonction inconnue) sont maintenant détectées à la sauvegarde et affichées inline sous le champ, au lieu d'un flash vide en haut de page (c925e9d)
- Spécifications préparatoires pour les formules d'initialisation (valeur par défaut dynamique) sur les champs réguliers (32f4c9e)
Technique
- chore(deps): bump rack-session 2.1.1 → 2.1.2 — correctif CVE-2026-39324 (forge de session sans secret). L'application utilise ActionDispatch::Session::CookieStore et n'était pas exposée en pratique (78f25f7)
- Adaptation de la migration forks-to-streams upstream : correction de la destruction des buffers utilisateur pendant la migration (a528253)
- Désactivation des tests flaky de migration forks-to-streams en CI (eaf9bce)
- Corrections de spécifications pour compatibilité upstream (1e9a34a, 3529908, 61466e8)
Intégration de la release upstream 2025-10-20-01
Administrateur
- ETQ Admin mes badges de cartes sont harmonisés (demarche-numerique#12200)
- ETQ administrateur, retirer la derniere ligne d'un conditionnel ne devrait pas me bloquer pour en ajouter une (demarche-numerique#12208)
Usager
- amélioration: ETQ usager, les champs referentiel configurable ont des comboxbox pouvant atteindre jusqu'a 1k element (aligné ac la limit du back) (demarche-numerique#12199)
- ETQ Usager, j'ai un meilleur wording pour m'expliquer que ma pj est en cours d'analyse (demarche-numerique#12201)
- ETQ usager, je n'ai pas de rupture dans mon parcours de création de dossier pré-rempli si je passe par une connexion pro-connect (demarche-numerique#12205)
- ETQ Usager utilisant des ribs, j'ai à nouveau mes pièces jointes analysées (demarche-numerique#12210)
Technique
- ETQ Tech : je veux supprimer la FF sur la synthèse des badges de notification (demarche-numerique#12128)
- Tech: corrections sur la mécanique des champs externes (demarche-numerique#12213)
Intégration de la release upstream 2025-10-21-01
Attention instances : cette version déploie une maintenance task qui migre la structure des dossiers en construction pour passer du système de forks vers les streams. Voir les notes de déploiement ci-dessous.
Administrateur
- ETQ admin, ma démarche est indexable par les moteurs de recherche, mais je peux le désactiver depuis la tuile "Présentation" (demarche-numerique#12145)
- secu: ETQ admin je ne peux pas injecter de code malicieux dans le code du bouton JeDonneMonAvis (demarche-numerique#12216)
Usager
- ETQ Usager, je veux avoir une erreur si un champ Adresse Commune ou Carte ne fonctionne pas correctement (demarche-numerique#12186)
Technique
- Correctif : mise à jour du champ expired_at du dossier après envoi des notices de proximité d'expiration (demarche-numerique#12211)
- ETQ ds, je souhaite qu'un instructeur ne puisse pas usurper le compte d'un expert invité (demarche-numerique#12219)
- ETQ Tech, je ne veux plus de filtres avec opérateur IN, l'opérateur MATCH est équivalent (demarche-numerique#12174)
- Tech: ignore les gems dans les stacktraces de sentry pour avoir une vision app only/full trace (demarche-numerique#12223)
- feat(dossier): enable streams for all (demarche-numerique#11711)
- Fix: corrige la variable pour la MT destroyDossierNotificationForAttenteAvisTask (demarche-numerique#12215)
- fix(streams): test should pass without feature flag (demarche-numerique#12222)
- fix(champs): on stream reset destroy champs with cascade (demarche-numerique#12217)
- refactor(champ): champ.project should set type_de_champ (demarche-numerique#12221)
- chore(deps-dev): bump playwright from 1.55.0 to 1.55.1 (demarche-numerique#12226)
- chore(npm): update js dependencies (demarche-numerique#12228)
Intégration de la release upstream 2025-10-21-02
Administrateur
- ETQ admin, petite correction visuelle sur le toggle opendata (demarche-numerique#12231)
Usager
- ETQ Usager, je suis toujours averti, mm avec les streams, que les invités ne peuvent pas déposer de modification (demarche-numerique#12170)
API
- Fix timeout value for adresse api (demarche-numerique#12234)
Migrations
Schéma
- AddRobotsIndexableOnProcedure : ajout du champ
robots_indexablesur la table procedures
Maintenance tasks
- T20241113migrateForksToStreamsTask : migration des dossiers en construction du système forks vers les streams (peut prendre plusieurs heures). Le patch upstream de correction (destruction des buffers) est inclus dans cette release.
- T20251010migrateInOperatorToMatchTask : migration des filtres avec opérateur IN vers l'opérateur MATCH