STUD-1157 — onglet Processus : la section « Erreurs de la page et des services » #1650

Merged
hermes-fusion merged 1 commit from hermes/stud-1157-ui-erreurs into main 2026-10-15 12:15:04 +02:00
Collaborator

Onglet Processus : la section repliée « Erreurs de la page et des services » (STUD-1157).

Ce que ça fait

  • ErreursPage.svelte (nouveau) lit GET /api/erreurs-page toutes les 10 s tant que la section est affichée et montre les 24 dernières heures, regroupées par message, avec leur compte (« 12 fois ») et leur dernière occurrence (« à 20 h 40 · il y a 37 min »), l'onglet et la version du front.
  • Le bandeau « Dernier échec » prend la plus récente des deux sources : l'erreur de la page quand elle est postérieure au dernier échec de processus non pris en charge (lib/erreurs-page.js, bandeauDernierEchec).
  • « Signaler à Mika » sur chaque message, par le circuit de l'onglet (nom erreurs-page, clé : nom + heure de la dernière occurrence).
  • Le message du navigateur est lu en français par le traducteur du studio (lib/causes.js, sept règles page-*) ; le brut (message tel quel, puis la pile) reste dépliable sous la phrase (MessageOrigine), comme la charte §3 bis le demande.

Fichiers

  • _tableau/front/src/ErreursPage.svelte (nouveau), src/lib/erreurs-page.js (nouveau), src/Processus.svelte (section + bandeau), src/lib/causes.js (règles page-*), front/apercu.py (sert /api/erreurs-page), front/tests/api-erreurs-page.json, front/tests/erreurs-page.test.js, front/tests/causes.test.js.
  • _tableau/serveur_processus.py : le nom erreurs-page est accepté au signalement (sans quoi le serveur rend 409 « processus invalide », mesuré) ; _tableau/test_serveur_processus.py couvre le cas et son doublon.
  • _tableau/test_100_svelte_rust.py : route:/api/erreurs-page déclarée comme manque (route servie par le service Rust, PR #1642 ouverte, non fusionnée).
  • _tableau/CHARTE-UI.md : section datée qui décrit la section et ses bancs.

Preuves

  • npx vitest run : 23 fichiers, 181 tests, 0 échec.
  • node ./node_modules/vite/bin/vite.js build : code 0, dist/index.html et dist/app.js (148 216 octets).
  • python3 _tableau/lancer-tests.py --sans-couverture : 156 bancs verts, 0 rouge, code 0.
  • Gardes de charte : front/garde-habillage.py (0 refus), test_charte_ui.py, test_charte_svelte.py, test_apercu_front.py, test_garde_couches.py — tous verts.
  • Page d'essai (front/apercu.py sur la build, 127.0.0.1:18097) : verifier-page.py → « page bonne, onglet monté » ; DOM rendu : titre, « 3 messages, 26 erreurs sur 24 h », trois lignes avec compte, dernière occurrence, « Signaler à Mika » et « voir le message d'origine » ; bandeau « Dernier échec » sur l'erreur la plus récente.
  • Captures bureau 1440 et téléphone 390, clair et sombre : section présente dans les quatre, débordement horizontal 0 px ; regardées (titre, précision, colonnes, lignes, boutons, repli).

Non mesuré

  • Le trajet d'une vraie erreur JS jusqu'au journal (banc de bout en bout t_3ec43777) et le relais POST/GET du serveur Python (carte t_3dd7c9c0) : sans lui, la section dit honnêtement « relevé injoignable (HTTP 404) » dans la page servie par Python.
  • La rotation du journal du 132 (cas unitaires côté Rust).

Fusion réservée à l'opérateur (fusion-auto après l'étiquette relu).

Onglet Processus : la section repliée « Erreurs de la page et des services » (STUD-1157). **Ce que ça fait** - `ErreursPage.svelte` (nouveau) lit `GET /api/erreurs-page` toutes les 10 s tant que la section est affichée et montre les 24 dernières heures, regroupées par message, avec leur compte (« 12 fois ») et leur dernière occurrence (« à 20 h 40 · il y a 37 min »), l'onglet et la version du front. - Le bandeau « Dernier échec » prend la plus récente des deux sources : l'erreur de la page quand elle est postérieure au dernier échec de processus non pris en charge (`lib/erreurs-page.js`, `bandeauDernierEchec`). - « Signaler à Mika » sur chaque message, par le circuit de l'onglet (`nom` `erreurs-page`, clé : nom + heure de la dernière occurrence). - Le message du navigateur est lu en français par le traducteur du studio (`lib/causes.js`, sept règles `page-*`) ; le brut (message tel quel, puis la pile) reste dépliable sous la phrase (`MessageOrigine`), comme la charte §3 bis le demande. **Fichiers** - `_tableau/front/src/ErreursPage.svelte` (nouveau), `src/lib/erreurs-page.js` (nouveau), `src/Processus.svelte` (section + bandeau), `src/lib/causes.js` (règles page-*), `front/apercu.py` (sert `/api/erreurs-page`), `front/tests/api-erreurs-page.json`, `front/tests/erreurs-page.test.js`, `front/tests/causes.test.js`. - `_tableau/serveur_processus.py` : le nom `erreurs-page` est accepté au signalement (sans quoi le serveur rend 409 « processus invalide », mesuré) ; `_tableau/test_serveur_processus.py` couvre le cas et son doublon. - `_tableau/test_100_svelte_rust.py` : `route:/api/erreurs-page` déclarée comme manque (route servie par le service Rust, PR #1642 ouverte, non fusionnée). - `_tableau/CHARTE-UI.md` : section datée qui décrit la section et ses bancs. **Preuves** - `npx vitest run` : 23 fichiers, 181 tests, 0 échec. - `node ./node_modules/vite/bin/vite.js build` : code 0, `dist/index.html` et `dist/app.js` (148 216 octets). - `python3 _tableau/lancer-tests.py --sans-couverture` : 156 bancs verts, 0 rouge, code 0. - Gardes de charte : `front/garde-habillage.py` (0 refus), `test_charte_ui.py`, `test_charte_svelte.py`, `test_apercu_front.py`, `test_garde_couches.py` — tous verts. - Page d'essai (`front/apercu.py` sur la build, 127.0.0.1:18097) : `verifier-page.py` → « page bonne, onglet monté » ; DOM rendu : titre, « 3 messages, 26 erreurs sur 24 h », trois lignes avec compte, dernière occurrence, « Signaler à Mika » et « voir le message d'origine » ; bandeau « Dernier échec » sur l'erreur la plus récente. - Captures bureau 1440 et téléphone 390, clair et sombre : section présente dans les quatre, débordement horizontal 0 px ; regardées (titre, précision, colonnes, lignes, boutons, repli). **Non mesuré** - Le trajet d'une vraie erreur JS jusqu'au journal (banc de bout en bout t_3ec43777) et le relais POST/GET du serveur Python (carte t_3dd7c9c0) : sans lui, la section dit honnêtement « relevé injoignable (HTTP 404) » dans la page servie par Python. - La rotation du journal du 132 (cas unitaires côté Rust). Fusion réservée à l'opérateur (`fusion-auto` après l'étiquette `relu`).
Onglet Processus : la section « Erreurs de la page et des services » (STUD-1157)
All checks were successful
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Successful in 16s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Successful in 11s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Successful in 14s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 12s
b462f48030
Le front lisait /api/processus et rien des erreurs de la page : la question de
l'opérateur (« il y a des logs derrière pour voir les problèmes ? ») n'avait pas
de réponse dans l'onglet. La section repliée montre les 24 dernières heures,
regroupées par message avec leur compte et leur dernière occurrence, et le
bandeau « Dernier échec » prend la plus récente des deux sources : l'erreur de
la page quand elle est postérieure au dernier échec de processus non pris en
charge. « Signaler à Mika » sur chaque message, par le circuit de l'onglet.

Le message du navigateur est lu en français par le traducteur du studio
(règles page-*) ; le brut (message et pile) reste dépliable sous la phrase,
comme la charte §3 bis le demande. L'aperçu du front sert /api/erreurs-page
pour que la page d'essai montre la section, et serveur_processus.py accepte le
nom `erreurs-page` au signalement (409 « processus invalide » mesuré sinon).
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/stud-1157-ui-erreurs from b462f48030
All checks were successful
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Successful in 16s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Successful in 11s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Successful in 14s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 12s
to 05461aa566
All checks were successful
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 1m31s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (push) Successful in 1m40s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (pull_request) Successful in 8m9s
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Successful in 8m17s
2026-10-15 12:06:08 +02:00
Compare
hermes-fusion deleted branch hermes/stud-1157-ui-erreurs 2026-10-15 12:15:05 +02:00
Collaborator

Fusionnée automatiquement par fusion-auto (forge) : CI verte (Rust et Front Svelte), PR relue (étiquette relu), sans conflit.

Fusionnée automatiquement par `fusion-auto` (forge) : CI verte (Rust et Front Svelte), PR relue (étiquette `relu`), 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!1650
No description provided.