Skip to content

Releases: govpf/mes-demarches

05 juin 2026

06 Jun 01:56
8426d34

Choose a tag to compare

Améliorations et correctifs

Polynésie

Technique

  • Correction d'un crash (500) à la suppression d'une pièce jointe : nil check sur @attachment dans AttachmentsController#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

Divers

  • chore: 3eme, ETQ opérateur j'aimerais que la tache de migration des siret non fetchée passe (demarche-numerique#12350)

Technique

29 mai 2026

29 May 22:57
e2ad9ed

Choose a tag to compare

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_json DN / Commune au déploiement (tâches PopulateNumeroDnValueJSON et PopulateCommunePolynesieValueJSON, 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_domain ignoré, aucune fuite vers *.numerique.gouv.fr
  • Correctif Users::DossiersController#identite : vérifie la présence de for_tiers dans les paramètres

Intégration de la release upstream 2025-11-18-01

Instructeur

API

Technique

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

API

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

Intégration de la release upstream 2025-11-19-02

Divers

Technique

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

Intégration de la release upstream 2025-11-20-03

Technique

25 mai 2026 — intégration upstream 2025-11

26 May 01:29
314aeb9

Choose a tag to compare

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 : columns n'est désormais demandé que sur PieceJustificativeChamp (colonnes OCR des RIB) et ReferentielDePolynesieChamp (é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_preferences qui aligne les valeurs par défaut PostgreSQL des nouvelles colonnes de préférences mail sur le comportement PF (#7fa1336)
  • Augmentation du seuil query_count des specs N+1 pour absorber les spécificités PF post-migration email (#38f313b)
  • Ajustement des specs deletion_email et regénération du schema.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

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

Intégration de la release upstream 2025-11-17-02

Technique

⚠️ 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 les ProcedurePresentation existantes (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 depuis assign_tos vers instructeurs_procedures (refactor upstream). À lancer après la migration de schéma 20251104131811_add_email_preferences_to_instructeurs_procedure (auto au déploiement). Sans elle, les instructeurs perdent leurs préférences personnalisées.
  • Maintenance::T20251112backfillChampSiretExternalStateWithEtablissementButNoValueOrExternalIdTask — corrige les Champs::SiretChamp qui ont un etablissement_id mais ni value ni external_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 colonne pro_connect_restriction à procedures (upstream)
  • 20251106145255_remove_follows_pieces_jointes_at : supprime la colonne pieces_jointes_seen_at de follows (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

25 May 18:47

Choose a tag to compare

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_type stocké, 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.rb qui peuple formule_deps sur les TypeDeChamp formule existants (#445)
  • Migration des 5 consommateurs (Champ, DossierFormulaRefreshConcern, ProcedureRevision, cron RefreshClockDependentFormulasJob) vers le nouveau format ; suppression des anciens flags clock_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œuds Negation (#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_ENTRE et ANNEES_ENTRE symétriques sur les valeurs négatives (cf. JOURS_ENTRE(d2, d1) = -JOURS_ENTRE(d1, d2)) (#443)
  • Skill upstream-integration documenté et 5 agents upstream-* archivés
  • Skill md_release : collecte automatique des Maintenance Tasks Issue B (à lancer manuellement post-déploiement)

Migrations

  • BackfillFormuleDeps (20260522174323) : peuple options['formule_deps'] (Hash structuré) sur chaque TypeDeChamp formule existant. Compute inline (regex), update_column pour skipper les callbacks. down non réversible.

21 mai 2026

21 May 18:59

Choose a tag to compare

Améliorations et correctifs

Polynésie

Administrateur

  • fix(manager) : la suppression d'un type de champ ne plante plus quand draft.remove_type_de_champ retourne nil — 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 nil dans 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 avec ArgumentError: wrong number of arguments (given 3, expected 2) dans format_in_2_columns (#422)

Usager

  • fix(liste déroulante liée) : la sélection d'une valeur secondaire ne lève plus NoMethodError quand 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_formulas est supprimé au profit d'appels explicites dossier.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ésout ActiveRecord::RecordNotUnique au clonage de dossiers contenant des formules (MES-DEMARCHES-350, 28 occurrences) et bouche les trous de cascade sur data / value_json / external_id (#434)
  • fix(activestorage) : Aws::S3::Errors::NotFound est désormais traduit en ActiveStorage::FileNotFoundError dans le scanner antivirus, ce qui permet au discard_on du VirusScannerJob de prendre le relais quand un blob a été supprimé entre la mise en queue et l'exécution du job (#429)

07 mai 2026

08 May 03:03

Choose a tag to compare

Améliorations et correctifs

Polynésie

Administrateur

  • fix(lexpol): le lien JOPF (lexpol_arrete_lien) est désormais correctement récupéré pour les Arrêté en CM et Arrêté en PR (et plus seulement pour Arrê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

01 May 03:23
9aa0513

Choose a tag to compare

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

Intégration de la release upstream 2025-11-06-01

Instructeur

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

Technique

28 avril 2026

29 Apr 04:40
02cdc88

Choose a tag to compare

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

Intégration de la release upstream 2025-10-28-02

Technique

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

Technique

Intégration de la release upstream 2025-10-31-02

Technique

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

Divers

Technique

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

Intégration de la release upstream 2025-11-03-03

Instructeur

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

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_expanded aux présentations de procédures (upstream 2025-11-03-03)
  • AddSeenByRecipientAtToCommentaires : ajoute la colonne seen_by_recipient_at aux 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

22 Apr 03:49

Choose a tag to compare

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

Technique

Intégration de la release upstream 2025-10-27-01

Administrateur

Instructeur

Usager

Technique

Intégration de la release upstream 2025-10-27-02

Technique

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

16 Apr 03:00

Choose a tag to compare

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

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

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

Intégration de la release upstream 2025-10-21-02

Administrateur

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

Migrations

Schéma

  • AddRobotsIndexableOnProcedure : ajout du champ robots_indexable sur 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