Processus : la jauge de stockage, alertes visibles à 75 % et 90 % (STUD-1238) #1670

Merged
hermes-fusion merged 1 commit from hermes/jauge-stockage-svelte into main 2026-10-14 23:30:05 +02:00
Collaborator

Objectif (STUD-1238). Montrer la jauge de stockage du service du 132 dans l'onglet Processus, alertes visibles sans clic à 75 % et 90 %, et rendre la section réutilisable par l'Accueil sur la même clé stockage.

Ce que ça change. Trois fichiers neufs et 3 lignes dans l'onglet :

  • _tableau/front/src/lib/stockage.js : la liste plate lignesStockage (volumes puis pools du contrat t_cf4a09cb), une décimale de pourcentage, les Go, la croissance en Ko/sem. ou « stable », « Plein dans N semaines » ou « stable », la ligne de résumé du repli.
  • _tableau/front/src/lib/composants/Stockage.svelte : les bandeaux d'alerte dehors, au-dessus du repli (avertissement orange ≥ 75 %, danger rouge ≥ 90 %, avec nom, machine et pourcentage), puis le repli « Stockage » et une jauge par volume et par pool. Sans donnée : « Jauge de stockage indisponible » plutôt qu'une erreur ; les mesures manquées restent dites.
  • _tableau/front/src/Processus.svelte : <Stockage stockage={etat.stockage ?? etat.donnees?.stockage ?? null} {maintenant} />, après « Tâches programmées ». 557 lignes (plafond de la carte : 600).
  • _tableau/front/tests/stockage.test.js : 7 cas neufs.

BandeauAlerte et le ton avertissement. La base n'a que deux tons (erreur, ok) : il lui manque l'avertissement (orange). lib/base/ n'a qu'un seul porteur, donc cette carte n'y écrit pas ; l'alerte d'avertissement est dessinée dans lib/composants/Stockage.svelte avec les jetons de la charte et les mêmes classes que le bandeau de la base. À l'attention du porteur de la base : ajouter à BandeauAlerte un ton avertissement (border-transparent bg-warning-bg, surtitre text-warning-text), comme le proposes lib/stockage.js (TONS.avertissement) ; la carte pourra alors l'employer au lieu de son propre dessin.

Preuves (2026-10-14).

  • npx vitest run : 26 fichiers, 196 cas, 0 échec (189 avant).
  • npx vite build : dist/index.html + 13 JS > 5 Ko, 908 623 octets.
  • Gardes : python3 _tableau/test_charte_svelte.py OK, python3 _tableau/test_charte_ui.py OK (257 classes au socle, 0 locale), python3 _tableau/front/garde-habillage.py 0 refus.
  • Page regardée dans Chromium sans tête (front/apercu.py + relevé figé, clair et sombre, 1440 px et 390 px) : 2 alertes visibles sans clic dans les deux thèmes et les deux largeurs ; 4 jauges et 4 barres après un vrai clic ; barres mesurées bleue #065fd4, orange #7c2900, rouge #c30027 en clair (et #3ea6ff / #ffcc4d / #ff8a80 en sombre) ; 74,9 % n'alerte pas ; aucun débordement à 390 px ; aucun emoji. Captures et relevé : ~/atelier-hermes/captures-t_7ac5f618/.

Ne fusionne pas : la CI pc-studio doit être verte et la relecture faite (carte t_2befab17).

**Objectif (STUD-1238).** Montrer la jauge de stockage du service du 132 dans l'onglet Processus, alertes visibles sans clic à 75 % et 90 %, et rendre la section réutilisable par l'Accueil sur la même clé `stockage`. **Ce que ça change.** Trois fichiers neufs et 3 lignes dans l'onglet : - `_tableau/front/src/lib/stockage.js` : la liste plate `lignesStockage` (volumes puis pools du contrat `t_cf4a09cb`), une décimale de pourcentage, les Go, la croissance en Ko/sem. ou « stable », « Plein dans N semaines » ou « stable », la ligne de résumé du repli. - `_tableau/front/src/lib/composants/Stockage.svelte` : les bandeaux d'alerte **dehors**, au-dessus du repli (avertissement orange ≥ 75 %, danger rouge ≥ 90 %, avec nom, machine et pourcentage), puis le repli « Stockage » et une jauge par volume et par pool. Sans donnée : « Jauge de stockage indisponible » plutôt qu'une erreur ; les mesures manquées restent dites. - `_tableau/front/src/Processus.svelte` : `<Stockage stockage={etat.stockage ?? etat.donnees?.stockage ?? null} {maintenant} />`, après « Tâches programmées ». 557 lignes (plafond de la carte : 600). - `_tableau/front/tests/stockage.test.js` : 7 cas neufs. **`BandeauAlerte` et le ton avertissement.** La base n'a que deux tons (`erreur`, `ok`) : il lui manque l'avertissement (orange). `lib/base/` n'a qu'un seul porteur, donc cette carte n'y écrit pas ; l'alerte d'avertissement est dessinée dans `lib/composants/Stockage.svelte` avec les jetons de la charte et les mêmes classes que le bandeau de la base. **À l'attention du porteur de la base** : ajouter à `BandeauAlerte` un ton `avertissement` (`border-transparent bg-warning-bg`, surtitre `text-warning-text`), comme le proposes `lib/stockage.js` (`TONS.avertissement`) ; la carte pourra alors l'employer au lieu de son propre dessin. **Preuves (2026-10-14).** - `npx vitest run` : 26 fichiers, **196 cas, 0 échec** (189 avant). - `npx vite build` : `dist/index.html` + 13 JS > 5 Ko, 908 623 octets. - Gardes : `python3 _tableau/test_charte_svelte.py` OK, `python3 _tableau/test_charte_ui.py` OK (257 classes au socle, 0 locale), `python3 _tableau/front/garde-habillage.py` 0 refus. - Page regardée dans Chromium sans tête (`front/apercu.py` + relevé figé, clair et sombre, 1440 px et 390 px) : 2 alertes visibles sans clic dans les deux thèmes et les deux largeurs ; 4 jauges et 4 barres après un vrai clic ; barres mesurées bleue `#065fd4`, orange `#7c2900`, rouge `#c30027` en clair (et `#3ea6ff` / `#ffcc4d` / `#ff8a80` en sombre) ; 74,9 % n'alerte pas ; aucun débordement à 390 px ; aucun emoji. Captures et relevé : `~/atelier-hermes/captures-t_7ac5f618/`. Ne fusionne pas : la CI `pc-studio` doit être verte et la relecture faite (carte `t_2befab17`).
Processus : la jauge de stockage, alertes visibles à 75 % et 90 % (STUD-1238)
All checks were successful
Tests du tableau (Rust + Svelte) / Rust (_tableau/rust) (push) Successful in 15s
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 17s
Tests du tableau (Rust + Svelte) / Front Svelte (_tableau/front) (pull_request) Successful in 12s
7e40a0d7b4
Le service du 132 met un bloc `stockage` en tête de `/api/processus` (carte rust `t_cf4a09cb` : `releve`,
`seuils`, `volumes[]`, `pools[]` — chacun avec `pourcent`, `utilise_ko`, `total_ko`, `croissance_semaine_ko`,
`plein_dans_semaines`, `niveau` —, `alertes[]`, `erreurs[]`). L'onglet ne le montrait pas : rien ne disait
qu'un volume approche du plein, alors que la panne du 14/10 (aucune place sur le partagé) ne se voyait qu'en
lisant le journal du collecteur.

D'où : une section « Stockage » (Repli) après « Tâches programmées », une jauge par volume puis par pool
(nom, machine et point de montage, barre utilisée/total, pourcentage à une décimale, utilisé/total en Go,
croissance hebdomadaire en Ko/sem. ou « stable », « Plein dans N semaines » ou « stable »). Les alertes sont
dehors, au-dessus du repli : elles se voient sans clic, en orange à partir de 75 % et en rouge à partir de
90 %, avec le nom, la machine et le pourcentage. Sans donnée (collecteur muet ou mesure en panne), la section
écrit « jauge indisponible » plutôt qu'une erreur, et les mesures manquées restent dites dans le repli.

Le fichier de l'onglet reste sous le plafond de la carte (557 lignes, plafond 600) : la section vit dans
`lib/composants/Stockage.svelte`, réutilisable par l'Accueil sur la même clé `stockage` (les données sont déjà
dans `/api/processus`, aucun appel de plus).

`lib/base/BandeauAlerte.svelte` n'a que deux tons (`erreur`, `ok`) : il lui manque l'avertissement (orange).
`lib/base/` n'ayant qu'un seul porteur, cette carte n'y écrit pas — l'alerte d'avertissement est dessinée
dans `lib/composants/Stockage.svelte` avec les jetons de la charte, dans les mêmes classes que le bandeau de
la base, et le ton à ajouter est signalé à son porteur.

Mesures (2026-10-14) : `npx vitest run` 26 fichiers, 196 cas, 0 échec (7 cas neufs : 74,9 % / 76 % / 91 %,
aucune donnée) ; `npx vite build` : `dist/index.html` et 13 JS > 5 Ko, 908 623 octets ; `test_charte_svelte.py`,
`test_charte_ui.py` et `garde-habillage.py` verts (0 refus). Page regardée dans Chromium sans tête (clair et
sombre, 1440 px et 390 px) : 2 alertes visibles sans clic, 4 jauges et 4 barres au clic, barres bleue, orange
et rouge mesurées, aucune troncature, aucun emoji.
Author
Collaborator

Relu, conforme. Branche hermes/jauge-stockage-svelte, tête 7e40a0d7 (base origin/main 3b006a30) : les commandes sont rejouées par moi dans un worktree propre, rien n'est repris du compte rendu de la carte.

Le diff. git diff --stat origin/main... : 4 fichiers, 300 insertions, 0 suppression — Processus.svelte (+3 lignes, le seul montage), lib/composants/Stockage.svelte (85), lib/stockage.js (93), tests/stockage.test.js (119). Tous sous le plafond de 600. main a avancé depuis la base (fusions #1660, #1664) mais ne touche ni Processus.svelte ni src/lib/ : la fusion reste propre. Non fusionnée, non déployée.

Les bancs. npx vitest run : 26 fichiers, 196 cas, 0 échec. npm run build : dist/index.html + 13 JS > 5 Ko, 908 623 octets. cargo test --release --locked : 15 test result: ok, CODE=0. test_charte_ui.py : OK (257 classes au socle, 0 locale, aucune couleur en dur). test_charte_svelte.py : OK. front/garde-habillage.py : 38 occurrences, 38 admises, 0 refus. CI Forgejo sur la tête 7e40a0d7 : combiné success, 4/4.

La page, regardée dans un vrai Chromium (aperçu de la build du worktree, protocole DevTools, heure figée) sur neuf vues : 1440×1000 et 390×844 en sombre et en clair, 360×740 sous le seuil, 1440×1000 aux seuils exacts, 390×844 mesure manquée, 1440×1000 sans bloc.

  • Alertes visibles sans aucun clic : 2/2 à 1440 px et à 390 px, dans les deux thèmes. Fonds calculés : clair rgb(255,234,207) / rgb(255,221,228) bordé rgb(242,163,176) ; sombre rgb(58,42,0) / rgb(58,20,19) bordé rgb(92,43,41) — les jetons de la charte.
  • Seuils exacts : 74,9 % → aucune alerte ; 75,0 % → avertissement ; 89,9 % → avertissement ; 90,0 % → danger.
  • Repli ouvert par un vrai clic souris : « Stockage — 4 volumes suivis, 2 en alerte, relevé à 22 h 44 », 4 jauges et 4 barres, les alertes restent visibles ; barres clair rgb(6,95,212) / rgb(124,41,0) / rgb(195,0,39), sombre rgb(62,166,255) / rgb(255,204,77) / rgb(255,138,128).
  • Mesure manquée : aucune jauge dessinée, la raison reste dans la ligne (« Mesure manquée : statvfs /mnt/shared : Permission denied »), « 1 mesure manquée » au résumé. Sans bloc : « Jauge de stockage indisponible ». Aucun échec avalé, aucun pourcentage inventé.
  • 0 emoji, aucun débordement horizontal à 1440, 390 et 360 px.

Ce que je signale, sans bloquer.

  • Porteur de l'onglet : #1658 (STUD-1124, la refonte, qui touche Processus.svelte) et #1650 y touchent aussi ; les deux branches branche/claude-*-jauge-stockage (STUD-1240, sans PR) portent une jauge aux mêmes chemins (lib/composants/Stockage.svelte, lib/stockage.js) avec un autre contrat (alerte/critique). Hotspot à ordonner : _tableau/front/src/lib/composants/Stockage.svelte et _tableau/front/src/lib/stockage.js.
  • lib/base/BandeauAlerte.svelte n'a que erreur et ok ; le ton avertissement est redessiné ici dans lib/composants/ avec les mêmes classes, comme le dit le corps de la PR. À verser à la base quand son porteur le voudra.
  • Non mesuré : le service du 132 n'est pas fusionné (#1654, en conflit) ; sur le 132 la section dit encore « jauge indisponible ».

Preuves : ~/atelier-hermes/relecture-t_2befab17/ (RAPPORT.md, releve.json, neuf PNG, rust-test.log).

**Relu, conforme.** Branche `hermes/jauge-stockage-svelte`, tête `7e40a0d7` (base `origin/main` `3b006a30`) : les commandes sont rejouées par moi dans un worktree propre, rien n'est repris du compte rendu de la carte. **Le diff.** `git diff --stat origin/main...` : 4 fichiers, 300 insertions, **0 suppression** — `Processus.svelte` (+3 lignes, le seul montage), `lib/composants/Stockage.svelte` (85), `lib/stockage.js` (93), `tests/stockage.test.js` (119). Tous sous le plafond de 600. `main` a avancé depuis la base (fusions #1660, #1664) mais ne touche ni `Processus.svelte` ni `src/lib/` : la fusion reste propre. Non fusionnée, non déployée. **Les bancs.** `npx vitest run` : 26 fichiers, **196 cas, 0 échec**. `npm run build` : `dist/index.html` + 13 JS > 5 Ko, 908 623 octets. `cargo test --release --locked` : 15 `test result: ok`, CODE=0. `test_charte_ui.py` : OK (257 classes au socle, 0 locale, aucune couleur en dur). `test_charte_svelte.py` : OK. `front/garde-habillage.py` : 38 occurrences, 38 admises, **0 refus**. CI Forgejo sur la tête `7e40a0d7` : combiné **success**, 4/4. **La page, regardée dans un vrai Chromium** (aperçu de la build du worktree, protocole DevTools, heure figée) sur neuf vues : 1440×1000 et 390×844 en sombre et en clair, 360×740 sous le seuil, 1440×1000 aux seuils exacts, 390×844 mesure manquée, 1440×1000 sans bloc. - Alertes **visibles sans aucun clic** : 2/2 à 1440 px **et** à 390 px, dans les deux thèmes. Fonds calculés : clair `rgb(255,234,207)` / `rgb(255,221,228)` bordé `rgb(242,163,176)` ; sombre `rgb(58,42,0)` / `rgb(58,20,19)` bordé `rgb(92,43,41)` — les jetons de la charte. - **Seuils exacts** : 74,9 % → aucune alerte ; **75,0 % → avertissement** ; 89,9 % → avertissement ; **90,0 % → danger**. - Repli ouvert par un vrai clic souris : « Stockage — 4 volumes suivis, 2 en alerte, relevé à 22 h 44 », 4 jauges et 4 barres, les alertes restent visibles ; barres clair `rgb(6,95,212)` / `rgb(124,41,0)` / `rgb(195,0,39)`, sombre `rgb(62,166,255)` / `rgb(255,204,77)` / `rgb(255,138,128)`. - Mesure manquée : aucune jauge dessinée, la raison reste dans la ligne (« Mesure manquée : statvfs /mnt/shared : Permission denied »), « 1 mesure manquée » au résumé. Sans bloc : « Jauge de stockage indisponible ». Aucun échec avalé, aucun pourcentage inventé. - 0 emoji, aucun débordement horizontal à 1440, 390 et 360 px. **Ce que je signale, sans bloquer.** - *Porteur de l'onglet :* #1658 (STUD-1124, la refonte, qui touche `Processus.svelte`) et #1650 y touchent aussi ; les deux branches `branche/claude-*-jauge-stockage` (STUD-1240, sans PR) portent une jauge aux **mêmes chemins** (`lib/composants/Stockage.svelte`, `lib/stockage.js`) avec un autre contrat (`alerte`/`critique`). Hotspot à ordonner : `_tableau/front/src/lib/composants/Stockage.svelte` et `_tableau/front/src/lib/stockage.js`. - `lib/base/BandeauAlerte.svelte` n'a que `erreur` et `ok` ; le ton avertissement est redessiné ici dans `lib/composants/` avec les mêmes classes, comme le dit le corps de la PR. À verser à la base quand son porteur le voudra. - Non mesuré : le service du 132 n'est pas fusionné (#1654, en conflit) ; sur le 132 la section dit encore « jauge indisponible ». Preuves : `~/atelier-hermes/relecture-t_2befab17/` (RAPPORT.md, `releve.json`, neuf PNG, `rust-test.log`).
hermes-fusion deleted branch hermes/jauge-stockage-svelte 2026-10-14 23:30: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!1670
No description provided.