Tableau : la fraîcheur de chaque système, au pied de la barre latérale (t_63da7542) #1731
Loading…
Reference in a new issue
No description provided.
Delete branch "hermes/fraicheur-systemes-badge"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ce que la carte change
GET /api/releves(route dereleves.py, carte t_6c90882a, fusionnée en #1728) donne la fraîcheur de chaquesystème que le tableau relève. Le front ne lisait la date que d'un seul (
/etat) : pour voir lequel était enretard, il fallait ouvrir chaque onglet. Cette carte affiche la liste entière dans le cadre.
BadgeReleve(nouvelle base) : une ligne par système — « YouTube · il y a 2 min », discrète à l'heure(
--text-secondary), rouge (--feedback-error-text) en retard ou en échec, « Signaler à Mika » sous le seulrelevé YouTube ;
forme="point"rend la pastille de la base seule, avec l'état et l'âge au lecteur d'écran.BarreLaterale: un badge par entrée de la route au pied de la barre ; en rail, un point par système.BarreBas: les mêmes badges dans la feuille « Plus » du téléphone (la barre latérale cède la place sous 760 px).Cadre.svelte: lit la route au chargement et après chaque collecte, et passe la liste et l'instant duserveur aux deux barres — les âges suivent l'horloge du serveur, pas celle du poste.
PastilleReleve), comme avant.Rien n'est écrit en dur : la liste des systèmes, leur rythme et la règle du retard vivent dans
releves.py.Le front ne fait que les afficher, dans l'ordre reçu.
Preuves
npx vitest run: 367 tests verts, 43 fichiers (badge-releve.test.js: texte, couleurs, retard, échec,jamais relevé, sans rythme, le signalement ;
cadre.test.js: l'ordre reçu, le repli, la lecture de la route).npx vite build:dist/index.html+dist/app.js(48 ms).test_charte_ui.py(257 classes au socle, aucune couleur en dur) ettest_charte_svelte.pyverts._tableau/test_navigateur_fraicheur.py(nouveau banc Chromium, la vraie page + la vraie build + un faux/api/releves) : à 1440 x 900 en clair et en sombre, à 900 x 900 en rail et à 390 x 844 sur téléphone, il mesureles couleurs calculées (rouge pour le seul système en retard, gris discret pour les autres), l'ordre des six
systèmes, l'âge de chacun, le bouton de signalement sur le relevé YouTube en retard, le pied qui ne déborde pas,
le point du rail (état et âge dans l'
aria-label), la feuille « Plus » ouverte par un vrai clic, le repli quand laroute répond 404, et zéro emoji.
_tableau/lancer-tests.py --tout: 189 bancs verts._tableau/front/homogeneite.py: 0 nouvel écart, 0 capture changée (44 relevés).Captures (page d'essai,
rendu-fige.py+ faux/api/releves)Bureau sombre : le pied de la barre latérale, six lignes, la seule en retard en rouge.
Bureau sombre, YouTube en retard : « Signaler à Mika » sous la ligne YouTube, et elle seule rouge.
Rail : six points, un seul rouge.
Téléphone : la feuille « Plus » ouverte, les mêmes six lignes.
Les cadres rouges dans les captures (« Semaine injoignable », etc.) sont la page qui dit elle-même que ses propres
routes de données ne répondent pas : le banc ne sert que
/api/releveset la build. Le pied de la barre, lui, nese lit que sur les relevés de la route.
Vérifications faites à la main
homogeneite.pyprises surorigin/mainpuis surcette branche ne diffèrent d'aucun pixel au-delà de ±3/255 (et deux passages du même code diffèrent déjà de
13 fichiers sur 44 par bruit d'antialiasing) : la route muette garde exactement le rendu d'avant.
youtubeà l'heure, les cinq autres « inconnu » faute derelevé lisible ici) — c'est ce que le pied affiche.
Fusionnée automatiquement par
fusion-auto(forge) : CI verte, sans conflit.