Refonte de l'onglet Processus : l'onglet compose la base, et deux variantes se comparent (STUD-1124) #1658

Merged
hermes-fusion merged 2 commits from hermes/processus-shadcn-refondre into main 2026-10-15 19:40:08 +02:00
Collaborator

Ce que la passe a mesuré d'abord

Le mandat demandait de remplacer dans Processus.svelte les sept composants maison de lib/base/ par « leur équivalent shadcn copié ». Vérification fichier par fichier : ils sont déjà shadcn — BarreAvancee = Progress + le compte, BadgeEtat = Badge + le mot de l'état, Infobulle = Tooltip + l'appui au doigt, EnTeteTriable = Table.Head + le bouton de tri, CarteMaintenant = Card + Anneau + GrandChiffre. Les recopier dans l'onglet aurait rendu sept présentations au lieu d'une (CHARTE-UI : un seul style par type d'élément, celui de lib/base/) et fait sortir homogeneite.py en 1 : il refuse une action sans data-base. Aucun de ces composants n'est orphelin : chacun est lu par l'Accueil, l'Analytique, Vidéos, Top ou le Calendrier. Aucun fichier de lib/base/ n'est touché par cette branche.

Ce qui change

  • Le brut replié d'un échec passe à MessageOrigine, le repli des essais porte LIEN (contour de focus de la base), le ticket d'un essai signalé passe à Lien.
  • Demo.svelte : le bouton clair/sombre devient la Puce de la base (écart « action sans data-base » de la démo résolu, six habillages locaux tolérés retirés).
  • La finition ?finition=mat, déclarée par Processus.svelte et annoncée par main.js, était morte (l'onglet ne passait pas la prop à la carte « Maintenant ») : elle est de nouveau lue.
  • Deux variantes de présentation, ProcessusVarianteA.svelte (« une seule liste ») et ProcessusVarianteB.svelte (« le tableau d'abord »), se regardent par ?disposition=A|B, chargées à part. Le porteur reste Processus.svelte : aucune promotion, la promotion visible reste à ratifier.

Mesures (2026-10-14, Chrome 154, styles calculés de 4 pages × 4 configurations)

porteur variante A variante B
hauteur bureau 1600 px 1 467 px 1 852 px 1 443 px
hauteur téléphone 390 px 2 105 px 2 128 px 1 756 px
éléments data-base 51 50 58

Contraste minimum : 4,99:1 en clair, 6,43:1 en sombre, identique pour les trois. Écarts d'homogénéité sur les quatre pages : 4, dont 2 déjà connus (l'en-tête de groupe sans data-base sur les trois pages ; l'écart vertical entre cartes, décision de la base) — après correction de deux écarts que les variantes avaient introduits (contour de focus du repli, deux fonds pour le même type ligne).

Poids gzip, même commande de build, base de la PR (1465663e) contre la branche : app.js 139 396 → 139 846 octets (33 073 → 33 283), ProcessusVarianteA.js 23 008 (7 461), ProcessusVarianteB.js 24 315 (7 644). Aucune feuille CSS séparée (les styles sont injectés dans app.js).

Porte

  • _tableau/test_charte_svelte.py : OK, 0 écart sur front/src/.
  • _tableau/front/garde-habillage.py : 0 refus (32 exceptions, 38 avant).
  • _tableau/test_homogeneite.py : OK — 44 relevés (Chrome/155.0.8059.79), 2 écarts connus, 0 nouveaux, 0 résolus.
  • _tableau/test_page_processus.py et _tableau/test_serveur_processus.py : OK.
  • npx vitest run : 195 tests, 26 fichiers, 0 échec (179 avant ; le banc tests/variantes.test.js ajoute 6 cas : même information que le porteur, quatre chiffres, dates au format de la charte, zéro emoji, aucun bouton sans état).
  • vite build : vert, dist/ avec index.html et les morceaux.

Captures

Sur le PC, /home/atelier/atelier-hermes/captures-t_11210c3f/ : cote-a-cote-bureau-sombre.png, cote-a-cote-bureau-clair.png, cote-a-cote-telephone-sombre.png, cote-a-cote-telephone-clair.png (porteur | A | B | démo de la base) et png/ (les 16 captures unitaires + releve.json). La page « Contenu » de YouTube Studio n'a pas pu être jointe : ce poste n'a pas de session YouTube ouverte, et aucun identifiant n'est employé pour en ouvrir une.

Trois points signalés, non tranchés ici

  1. L'en-tête de groupe dépliable (« En cours 1 masquer ») est un <button data-entete>, permis par la charte, mais le relevé le compte comme une action sans data-base sur les trois présentations (3 occurrences par page). Il manque un composant d'en-tête dans lib/base/ — la base a un seul porteur.
  2. Les quatre habillages locaux restants de Processus.svelte (button py-1, li border-b, li border-b-0, tr bg-muted/50 ×2, tr border-b ×2) tiennent à animate:flip : une directive d'animation ne s'applique qu'à un élément, jamais à un composant, donc la ligne reste un <tr> écrit à la main plutôt que Table.Row. Les variantes prennent Table.Row et perdent le réordonnancement animé — c'est mesuré et documenté.
  3. « 2 échecs » en tête sans groupe « Échecs » dans la liste : grouper() réunit les essais d'un même travail en une ligne, et les deux échecs du témoin appartiennent au même épisode que la ligne relancée. Comportement du porteur, repris par les variantes, signalé et non corrigé (le trancher change ce que l'onglet compte).

Documentation

_tableau/front/historique-variantes-processus.md (raisons, mesures, retour arrière en une ligne), LECONS.md (leçon datée), _tableau/LXC-132.md (les variantes ne changent rien au déploiement). OUTILS.md non touché : aucune commande n'est ajoutée.

Refs STUD-1124.

## Ce que la passe a mesuré d'abord Le mandat demandait de remplacer dans `Processus.svelte` les sept composants maison de `lib/base/` par « leur équivalent shadcn copié ». Vérification fichier par fichier : **ils sont déjà shadcn** — `BarreAvancee` = `Progress` + le compte, `BadgeEtat` = `Badge` + le mot de l'état, `Infobulle` = `Tooltip` + l'appui au doigt, `EnTeteTriable` = `Table.Head` + le bouton de tri, `CarteMaintenant` = `Card` + `Anneau` + `GrandChiffre`. Les recopier dans l'onglet aurait rendu sept présentations au lieu d'une (CHARTE-UI : un seul style par type d'élément, celui de `lib/base/`) et fait sortir `homogeneite.py` en 1 : il refuse une action sans `data-base`. Aucun de ces composants n'est orphelin : chacun est lu par l'Accueil, l'Analytique, Vidéos, Top ou le Calendrier. **Aucun fichier de `lib/base/` n'est touché par cette branche.** ## Ce qui change - Le brut replié d'un échec passe à `MessageOrigine`, le repli des essais porte `LIEN` (contour de focus de la base), le ticket d'un essai signalé passe à `Lien`. - `Demo.svelte` : le bouton clair/sombre devient la `Puce` de la base (écart « action sans data-base » de la démo résolu, six habillages locaux tolérés retirés). - La finition `?finition=mat`, déclarée par `Processus.svelte` et annoncée par `main.js`, était **morte** (l'onglet ne passait pas la prop à la carte « Maintenant ») : elle est de nouveau lue. - Deux variantes de présentation, `ProcessusVarianteA.svelte` (« une seule liste ») et `ProcessusVarianteB.svelte` (« le tableau d'abord »), se regardent par `?disposition=A|B`, chargées à part. **Le porteur reste `Processus.svelte`** : aucune promotion, la promotion visible reste à ratifier. ## Mesures (2026-10-14, Chrome 154, styles calculés de 4 pages × 4 configurations) | | porteur | variante A | variante B | |---|---|---|---| | hauteur bureau 1600 px | 1 467 px | 1 852 px | 1 443 px | | hauteur téléphone 390 px | 2 105 px | 2 128 px | 1 756 px | | éléments `data-base` | 51 | 50 | 58 | Contraste minimum : **4,99:1 en clair, 6,43:1 en sombre**, identique pour les trois. Écarts d'homogénéité sur les quatre pages : **4, dont 2 déjà connus** (l'en-tête de groupe sans `data-base` sur les trois pages ; l'écart vertical entre cartes, décision de la base) — après correction de deux écarts que les variantes avaient introduits (contour de focus du repli, deux fonds pour le même type `ligne`). Poids gzip, même commande de build, base de la PR (`1465663e`) contre la branche : `app.js` 139 396 → 139 846 octets (33 073 → 33 283), `ProcessusVarianteA.js` 23 008 (7 461), `ProcessusVarianteB.js` 24 315 (7 644). Aucune feuille CSS séparée (les styles sont injectés dans `app.js`). ## Porte - `_tableau/test_charte_svelte.py` : OK, 0 écart sur `front/src/`. - `_tableau/front/garde-habillage.py` : 0 refus (32 exceptions, 38 avant). - `_tableau/test_homogeneite.py` : OK — 44 relevés (Chrome/155.0.8059.79), 2 écarts connus, 0 nouveaux, 0 résolus. - `_tableau/test_page_processus.py` et `_tableau/test_serveur_processus.py` : OK. - `npx vitest run` : **195 tests, 26 fichiers, 0 échec** (179 avant ; le banc `tests/variantes.test.js` ajoute 6 cas : même information que le porteur, quatre chiffres, dates au format de la charte, zéro emoji, aucun bouton sans état). - `vite build` : vert, `dist/` avec `index.html` et les morceaux. ## Captures Sur le PC, `/home/atelier/atelier-hermes/captures-t_11210c3f/` : `cote-a-cote-bureau-sombre.png`, `cote-a-cote-bureau-clair.png`, `cote-a-cote-telephone-sombre.png`, `cote-a-cote-telephone-clair.png` (porteur | A | B | démo de la base) et `png/` (les 16 captures unitaires + `releve.json`). La page « Contenu » de YouTube Studio n'a pas pu être jointe : ce poste n'a pas de session YouTube ouverte, et aucun identifiant n'est employé pour en ouvrir une. ## Trois points signalés, non tranchés ici 1. **L'en-tête de groupe dépliable** (« En cours 1 masquer ») est un `<button data-entete>`, permis par la charte, mais le relevé le compte comme une action sans `data-base` sur les trois présentations (3 occurrences par page). Il manque un composant d'en-tête dans `lib/base/` — la base a un seul porteur. 2. **Les quatre habillages locaux restants de `Processus.svelte`** (`button py-1`, `li border-b`, `li border-b-0`, `tr bg-muted/50` ×2, `tr border-b` ×2) tiennent à `animate:flip` : une directive d'animation ne s'applique qu'à un élément, jamais à un composant, donc la ligne reste un `<tr>` écrit à la main plutôt que `Table.Row`. Les variantes prennent `Table.Row` et perdent le réordonnancement animé — c'est mesuré et documenté. 3. **« 2 échecs » en tête sans groupe « Échecs » dans la liste** : `grouper()` réunit les essais d'un même travail en une ligne, et les deux échecs du témoin appartiennent au même épisode que la ligne relancée. Comportement du porteur, repris par les variantes, signalé et non corrigé (le trancher change ce que l'onglet compte). ## Documentation `_tableau/front/historique-variantes-processus.md` (raisons, mesures, retour arrière en une ligne), `LECONS.md` (leçon datée), `_tableau/LXC-132.md` (les variantes ne changent rien au déploiement). `OUTILS.md` non touché : aucune commande n'est ajoutée. Refs STUD-1124.
Processus : l'onglet compose la base au lieu de la recopier, et se compare à deux variantes
All checks were successful
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Successful in 17s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Successful in 12s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Successful in 22s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 22s
bdac375fcb
Cause. La passe de fin de remplacement demandait de recopier dans Processus.svelte les sept
composants maison de lib/base/ ; vérification faite, ils sont déjà shadcn (BarreAvancee est
Progress plus son compte, BadgeEtat est Badge plus le mot de l'état, Infobulle est Tooltip,
EnTeteTriable est Table.Head plus le bouton de tri). Les recopier dans l'onglet aurait rendu sept
présentations au lieu d'une et fait sortir la garde d'homogénéité en 1 (une action sans data-base
est un écart) : la charte dit qu'un seul style par type d'élément vit dans lib/base/.

Remède.
- le brut replié d'un échec passe à MessageOrigine, le repli des essais porte LIEN (contour de
  focus de la base) et le ticket d'un essai signalé passe à Lien ; le relevé d'écarts
  d'homogénéité perd l'écart « <summary> d'action sans data-base » de Processus ;
- Demo.svelte : le bouton clair/sombre devient la Puce de la base — six habillages locaux tolérés
  retirés (38 -> 32) et l'écart « <button> d'action sans data-base » de la démo disparaît ;
- la finition ?finition=mat, déclarée par Processus.svelte et annoncée par main.js, était morte
  (l'onglet ne la passait pas à la carte « Maintenant ») : elle est de nouveau lue ;
- deux variantes de présentation, ProcessusVarianteA.svelte (« une seule liste ») et
  ProcessusVarianteB.svelte (« le tableau d'abord »), se regardent par ?disposition=A|B et sont
  chargées à part ; le porteur reste Processus.svelte, aucune promotion ;
- banc tests/variantes.test.js : même information que le porteur (repère par information, quatre
  chiffres, dates au format de la charte, zéro emoji, aucun bouton sans état) et structures
  différentes ; 195 tests verts sur 26 fichiers après rebasage sur main.

Mesures du 2026-10-14 (Chrome 154, styles calculés de quatre pages × quatre configurations) :
hauteur bureau 1 467 px (porteur) / 1 852 (variante A) / 1 443 (variante B) ; contraste minimum
4,99:1 en clair et 6,43:1 en sombre, identique pour les trois ; poids gzip dans la même commande
de build, base de la PR (1465663e) contre la branche : app.js 139 396 -> 139 846 octets
(33 073 -> 33 283), variante A 7 312, variante B 7 644 ; aucune feuille CSS séparée (les styles
sont injectés dans app.js).

Reste au porteur de la base, signalé : les quatre habillages locaux de Processus.svelte tiennent
à animate:flip (une directive d'animation ne s'applique qu'à un élément, pas à la brique
Table.Row), et l'en-tête de groupe dépliable n'a pas de composant dans la base.

Documentation : _tableau/front/historique-variantes-processus.md, LECONS.md, LXC-132.md.
Collaborator

fusion-auto : pas de fusion, la PR est en conflit avec main : à rebaser. Le chef de l'atelier renvoie la carte à l'agent ; l'étiquette tombera d'elle-même une fois corrigé.

`fusion-auto` : pas de fusion, la PR est en conflit avec main : à rebaser. Le chef de l'atelier renvoie la carte à l'agent ; l'étiquette tombera d'elle-même une fois corrigé.
hermes-bot force-pushed hermes/processus-shadcn-refondre from bdac375fcb
All checks were successful
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Successful in 17s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Successful in 12s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Successful in 22s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 22s
to 81e40fecfe
Some checks failed
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Has been cancelled
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Has been cancelled
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Has been cancelled
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Has been cancelled
2026-10-15 15:28:01 +02:00
Compare
hermes-bot force-pushed hermes/processus-shadcn-refondre from 81e40fecfe
Some checks failed
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Has been cancelled
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Has been cancelled
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Has been cancelled
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Has been cancelled
to c52e3c55ae
Some checks failed
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Failing after 37s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Failing after 36s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 1m40s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Successful in 1m36s
2026-10-15 15:40:37 +02:00
Compare
Author
Collaborator

Rebasé sur main et poussé (c52e3c55). Un conflit : LECONS.md — les deux côtés ajoutaient en fin de fichier ; les deux apports sont gardés.

Mesures locales : 44/44 fichiers de banc, 376 essais verts ; npx vite build code 0, 1881 octets + 1012K de JS.

Rebasé sur `main` et poussé (c52e3c55). Un conflit : `LECONS.md` — les deux côtés ajoutaient en fin de fichier ; les deux apports sont gardés. Mesures locales : 44/44 fichiers de banc, 376 essais verts ; `npx vite build` code 0, 1881 octets + 1012K de JS.
Collaborator

fusion-auto : pas de fusion, la CI est rouge (Rust). Le chef de l'atelier renvoie la carte à l'agent ; l'étiquette tombera d'elle-même une fois corrigé.

`fusion-auto` : pas de fusion, la CI est rouge (Rust). Le chef de l'atelier renvoie la carte à l'agent ; l'étiquette tombera d'elle-même une fois corrigé.
Collaborator

fusion-auto : pas de fusion, la PR est en conflit avec main : à rebaser. Le chef de l'atelier renvoie la carte à l'agent ; l'étiquette tombera d'elle-même une fois corrigé.

`fusion-auto` : pas de fusion, la PR est en conflit avec main : à rebaser. Le chef de l'atelier renvoie la carte à l'agent ; l'étiquette tombera d'elle-même une fois corrigé.
hermes-bot force-pushed hermes/processus-shadcn-refondre from c52e3c55ae
Some checks failed
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Failing after 37s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Failing after 36s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 1m40s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Successful in 1m36s
to a660dd6789
Some checks failed
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Failing after 38s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Failing after 40s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Successful in 1m48s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 1m39s
2026-10-15 16:13:57 +02:00
Compare
Collaborator

fusion-auto : pas de fusion, la PR est en conflit avec main : à rebaser. Le chef de l'atelier renvoie la carte à l'agent ; l'étiquette tombera d'elle-même une fois corrigé.

`fusion-auto` : pas de fusion, la PR est en conflit avec main : à rebaser. Le chef de l'atelier renvoie la carte à l'agent ; l'étiquette tombera d'elle-même une fois corrigé.
Collaborator

fusion-auto : pas de fusion, la CI est rouge (Rust). Le chef de l'atelier renvoie la carte à l'agent ; l'étiquette tombera d'elle-même une fois corrigé.

`fusion-auto` : pas de fusion, la CI est rouge (Rust). Le chef de l'atelier renvoie la carte à l'agent ; l'étiquette tombera d'elle-même une fois corrigé.
hermes-bot force-pushed hermes/processus-shadcn-refondre from a660dd6789
Some checks failed
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Failing after 38s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Failing after 40s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Successful in 1m48s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 1m39s
to ad8b4a53be
Some checks failed
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Has been cancelled
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Has been cancelled
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Has been cancelled
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Has been cancelled
2026-10-15 18:48:58 +02:00
Compare
Les variantes du Processus passent les garde-fous de main
Some checks failed
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Successful in 1m42s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Failing after 34s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Successful in 7m9s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 1m39s
38fc8f5f9b
Cause : après rebasage sur main, deux bancs de main viraient au rouge sur ce branchement —
test_onglets_doublons.py (les deux variantes du Processus n'étaient classées dans aucun onglet) et
test_pilote_sans_mika.py (des « Mika » écrits en dur dans les textes visibles des variantes).

Remède : les variantes A et B rejoignent les composants de l'onglet processus dans le banc des onglets,
et lisent le nom du pilote par nomPilote() comme le porteur Processus.svelte, au lieu de « Mika » en dur.

Mesure : _tableau/lancer-tests.py --tout — 200 bancs verts, code 0 ; npx vitest run — 48 fichiers,
419 tests verts ; npx vite build — code 0 ; homogénéité — 44 relevés, 2 écarts connus, 0 nouveau.
Author
Collaborator

Le conflit est réglé et le rouge est levé. Tête poussée : 38fc8f5f.

Ce qui a été fait :

  • rebasage sur origin/main (le commit de la refonte est réécrit au-dessus de main), conflits résolus sur _tableau/habillage-exceptions.json et _tableau/front/src/Demo.svelte ;
  • 38fc8f5f : les variantes passent les garde-fous de main. Après rebasage, deux bancs de main viraient au rouge sur cette branche — c'était la cause de l'étiquette ci-rouge :
    • _tableau/test_onglets_doublons.py : les deux variantes du Processus n'étaient classées dans aucun onglet → elles rejoignent les composants de l'onglet processus ;
    • _tableau/test_pilote_sans_mika.py : des « Mika » écrits en dur dans les textes visibles des variantes → elles passent par nomPilote(), comme le porteur Processus.svelte.

Mesures locales, sur 38fc8f5f :

  • _tableau/lancer-tests.py --tout : 200 bancs verts, code 0 (avant le correctif : 2 bancs en échec, test_onglets_doublons.py et test_pilote_sans_mika.py) ;
  • npx vitest run dans _tableau/front : 48 fichiers, 419 tests verts, code 0 ;
  • npx vite build : code 0, dist/index.html présent (1,88 kB) et dist/assets/*.js de taille réelle ;
  • relevé d'homogénéité : 44 relevés (Chrome 155), 2 écarts connus, 0 nouveau, 0 résolu, 0 capture changée, code 0.

Relevé de la forge : la CI est repartie sur 38fc8f5f (les deux jobs Rust tournent environ 7 min chacun, plus la file d'attente de l'exécutant) ; l'étiquette conflit a disparu et la PR est fusionnable.

Non mesuré : aucune capture d'écran jointe à ce commentaire, et le relevé d'homogénéité dit « NON MESURÉ : captures sans référence » — l'aspect des deux variantes (?disposition=A / ?disposition=B) n'est donc pas couvert par une référence d'image.

Le conflit est réglé et le rouge est levé. Tête poussée : `38fc8f5f`. Ce qui a été fait : - rebasage sur `origin/main` (le commit de la refonte est réécrit au-dessus de `main`), conflits résolus sur `_tableau/habillage-exceptions.json` et `_tableau/front/src/Demo.svelte` ; - `38fc8f5f` : **les variantes passent les garde-fous de `main`**. Après rebasage, deux bancs de `main` viraient au rouge sur cette branche — c'était la cause de l'étiquette `ci-rouge` : - `_tableau/test_onglets_doublons.py` : les deux variantes du Processus n'étaient classées dans aucun onglet → elles rejoignent les composants de l'onglet `processus` ; - `_tableau/test_pilote_sans_mika.py` : des « Mika » écrits en dur dans les textes visibles des variantes → elles passent par `nomPilote()`, comme le porteur `Processus.svelte`. Mesures locales, sur `38fc8f5f` : - `_tableau/lancer-tests.py --tout` : **200 bancs verts, code 0** (avant le correctif : 2 bancs en échec, `test_onglets_doublons.py` et `test_pilote_sans_mika.py`) ; - `npx vitest run` dans `_tableau/front` : 48 fichiers, **419 tests verts**, code 0 ; - `npx vite build` : code 0, `dist/index.html` présent (1,88 kB) et `dist/assets/*.js` de taille réelle ; - relevé d'homogénéité : 44 relevés (Chrome 155), **2 écarts connus, 0 nouveau, 0 résolu, 0 capture changée**, code 0. Relevé de la forge : la CI est repartie sur `38fc8f5f` (les deux jobs Rust tournent environ 7 min chacun, plus la file d'attente de l'exécutant) ; l'étiquette `conflit` a disparu et la PR est fusionnable. Non mesuré : aucune capture d'écran jointe à ce commentaire, et le relevé d'homogénéité dit « NON MESURÉ : captures sans référence » — l'aspect des deux variantes (`?disposition=A` / `?disposition=B`) n'est donc pas couvert par une référence d'image.
Collaborator

fusion-auto : pas de fusion, la CI est rouge (Rust). Le chef de l'atelier renvoie la carte à l'agent ; l'étiquette tombera d'elle-même une fois corrigé.

`fusion-auto` : pas de fusion, la CI est rouge (Rust). Le chef de l'atelier renvoie la carte à l'agent ; l'étiquette tombera d'elle-même une fois corrigé.
hermes-bot force-pushed hermes/processus-shadcn-refondre from 38fc8f5f9b
Some checks failed
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Successful in 1m42s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Failing after 34s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Successful in 7m9s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 1m39s
to dda50a0b53
All checks were successful
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Successful in 2m1s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 1m48s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Successful in 7m40s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Successful in 7m42s
2026-10-15 19:32:15 +02:00
Compare
hermes-fusion deleted branch hermes/processus-shadcn-refondre 2026-10-15 19:40:08 +02:00
Collaborator

Fusionnée automatiquement par fusion-auto (forge) : CI verte, sans conflit.

Fusionnée automatiquement par `fusion-auto` (forge) : CI verte, sans conflit.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
foXaCe/studio!1658
No description provided.