Skip to content

État global du projet

Audit de référence : QForm Builder Community 0.1.33, après publication npm de 0.1.32. Le correctif de clôture aligne le calcul auto-fit sur la boîte de contenu Quasar, maintient les overlays sous la toolbar et stabilise le scénario QSelect quand l’attribut d’adaptateur est transféré vers l’input natif.

La version 0.1.31 migre la baseline testée vers FormKit 2.1.0, borne les peers à la série 2.x et modernise les panneaux gauche/droit sans modifier l’API publique. Le guide utilisateur illustré FR/EN reste intégré. Les quatre baselines de panneaux avancés affectées par l’auto-fit sont régénérées et la matrice locale passe 24/24 ; cette archive demeure candidate tant que les 12 baselines et les 12 captures documentaires n’ont pas été inspectées et validées sur le poste Windows 11 de référence.

QForm Builder est désormais un produit Community candidat à la release candidate. La couverture fonctionnelle, les migrations, le harness Chromium, le contrat des douze baselines visuelles et l’accessibilité automatisée sont en place ; les baselines de non-régression restent à réintégrer ; les captures éditoriales du guide disposent de références bootstrap régénérables. La version 0.1.17 ajoute l’industrialisation multi-OS, un budget de bundle, un artifact npm vérifié et une application Nuxt hôte SSR distincte. La version 0.1.18 fiabilise le serveur Playwright local et formalise le bootstrap des baselines. La version 0.1.19 ajoute un garde de complétude qui refuse les workspaces constitués d’un overlay sans base complète. La version 0.1.20 gèle la surface candidate de l’API publique avec un manifeste machine-readable et un scénario consommateur TypeScript. La version 0.1.21 ajoute un registre de preuves de release, un contrôle de cohérence du lockfile et une vérification stricte des artefacts avant promotion. La version 0.1.22 reconnecte le modèle FormKit d’aperçu au registre réactif canonique afin que le panneau Informations, les conditions et le v-model:values hôte suivent chaque saisie. La version 0.1.23 fiabilise la transition du panneau droit entre Propriétés et Informations sans réinitialiser le formulaire. La version 0.1.24 rend la sélection du canvas indépendante de l’empilement interne des contrôles Quasar, y compris après QColor. La version 0.1.25 supprime la réinitialisation implicite après soumission et conserve les valeurs multi-étapes dans le panneau Informations et le modèle hôte. La version 0.1.26 stabilise le port Playwright entre le runner, le serveur Nuxt et les workers sous Windows, puis corrige le scan UI i18n des chemins de lecteur. La version 0.1.27 automatise la production du guide illustré bilingue et sépare explicitement les captures éditoriales des baselines de non-régression. La version 0.1.28 corrige la fixture typée et empêche une génération interrompue de supprimer les captures déjà publiées. La version 0.1.29 agrandit uniquement le contexte de capture de la timeline sans modifier l’UI publique. La version 0.1.31 migre vers FormKit 2.1.0 et introduit le polish visuel des deux drawers, avec acceptation Windows obligatoire avant publication.

DomaineAvancement estiméConclusion
Phase 1 — contrat public et layer npm100 %Clôturée
Phase 2 — couverture fonctionnelle100 %Clôturée
Phase 2 — durcissement industriel99,9 %Matrice CI, host RC, contrat public et lockfile reproductible intégrés ; PNG et première exécution distante verte à confirmer
Phase 3 — différenciation NFZ / Zod / Studio20 %Démarrée par les modèles
Préparation d’une 1.0.0 Community99 %Revue humaine, passages CI distants et publication RC restants

Ces pourcentages sont des estimations de pilotage internes. Ils mesurent la couverture du périmètre documenté, pas un score de qualité universel.

Phase 1 — clôturée

Le layer fournit : packaging npm borné, API publique typée, catalogue et panneaux extensibles, multi-instance, import/export sécurisé, documentation FR/EN, exemple Feathers/NFZ et API impérative du builder.

Phase 2 — couverture fonctionnelle clôturée

Sont disponibles :

  • champs Quasar/FormKit et conteneurs imbriqués ;
  • colonnes responsives et simulation des viewports ;
  • steps/pages avec validation bloquante ;
  • conditions récursives et simulateur explicable ;
  • validation typée, regex contrôlées et règles croisées ;
  • historique visible, restauration et raccourcis ;
  • arbre récursif avec drag-and-drop et prévention des cycles ;
  • Theme Builder partagé Builder/Viewer ;
  • thèmes clair/sombre cohérents ;
  • modèles Community et registre public ;
  • import/export complet et migrations versionnées ;
  • navigation clavier du catalogue, du canvas et de l’arborescence ;
  • annonces live, restitution du focus et audit axe WCAG A/AA automatisé ;
  • modes lecture seule et désactivé couverts par les tests navigateur.

Les patchs 0.1.12 à 0.1.16 ont fermé les dettes de thème avancé, persistance, harness Chromium, baselines visuelles et accessibilité. Le patch 0.1.17 ajoute la matrice réelle typecheck + build Nuxt/Nitro + VitePress + Playwright Chromium sur Linux et Windows, le build d’une application Nuxt hôte SSR, le contrôle des artifacts npm et les budgets de chunks/polices. Le patch 0.1.18 empêche la réutilisation silencieuse d’un serveur local étranger et découple la qualité statique de l’initialisation des captures. Le patch 0.1.19 rend explicite la frontière archive complète/overlay et vérifie les scripts, tests, fixtures et docs avant toute gate. Le patch 0.1.20 publie public-api.manifest.json, exporte les contrats de props/événements et compile un consommateur externe de tous les sous-chemins publics. Le patch 0.1.21 transforme la promotion RC en processus vérifiable : lockfile direct, douze baselines, tarball SHA-256, revue manuelle et registre de preuves de release. Le patch 0.1.22 ferme la régression de remplacement d’objet sur le modèle FormKit, sans modifier le contrat public gelé. Le patch 0.1.23 supprime le reset FormKit destructif lors du changement de mode, remonte la vue du panneau droit et restaure la sélection d’édition. Le patch 0.1.24 ajoute une délégation capture pointerdown/click, un contrat de stacking du calque et une régression des contrôles interactifs placés après QColor. Le patch 0.1.25 retire le reset post-soumission, resynchronise le snapshot soumis avec le registre canonique et couvre la finalisation d’un stepper par Playwright. Le patch 0.1.26 remplace le calcul de port par PID dans la configuration par un wrapper qui propage une URL unique et utilise fileURLToPath() pour les scans Windows. Le patch 0.1.27 génère douze captures de documentation FR/EN, les hache dans un manifeste et les publie dans VitePress. Le patch 0.1.28 ajoute un staging isolé, une promotion complète FR/EN avec rollback et un budget de compilation à froid explicite. Le patch 0.1.29 ajoute une capture contextuelle centrée pour les dialogues compacts. Le patch 0.1.31 migre la baseline vers FormKit 2.1.0, ajoute un contrat de compatibilité 2.x et modernise les deux drawers sans modifier le contrat public.

Verrous restants avant la version 1.0

  1. Exécuter la nouvelle matrice GitHub Actions sur le dépôt réel et conserver plusieurs passages verts consécutifs avec bun install --frozen-lockfile.
  2. Compléter la revue humaine d’accessibilité avec NVDA, clavier seul, zoom 200 % et reflow ; documenter les éventuelles dérogations.
  3. Inspecter les rapports de bundle de la CI et poursuivre le découpage du Theme Builder/IconPicker si les chunks se rapprochent du budget.
  4. Publier la release candidate 1.0.0-rc.1, l’intégrer dans une application métier réelle distincte, puis corriger uniquement les régressions compatibles avant 1.0.0.

Le contrat de migration/version des schémas et thèmes persistés n’est plus un bloqueur fonctionnel. Les futures évolutions doivent passer par le registre public de migrations.

Phase 3 — prochain palier produit

L’ordre recommandé reste :

  1. adaptateur public Zod → FormBuilder schema ;
  2. validation serveur et persistance Feathers/NFZ ;
  3. mapping d’un formulaire vers un service CRUD ;
  4. packs métier versionnés ;
  5. génération assistée avec validation stricte et confirmation humaine ;
  6. mode canvas/headless destiné aux dashboards NFZ existants.

Décision de pilotage

Le projet a terminé la Phase 2 fonctionnelle et son principal durcissement industriel. Le contrat public est désormais gelé en statut candidat. Le prochain jalon est la release candidate 1.0.0-rc.1. Le lockfile reproductible est désormais acquis ; restent une première exécution verte de la matrice CI et un registre de preuves de release validant les artifacts et l’accessibilité.

QForm Builder — layer Nuxt 4, Quasar et FormKit pour formulaires dynamiques.