Skip to content

fix(web): l'écran recharge le catalogue quand l'import bouge, pas seulement son compte - #61

Merged
lostmind84 merged 1 commit into
mainfrom
fix/l-ecran-recharge-le-catalogue-a-compte-egal
Sep 4, 2026
Merged

fix(web): l'écran recharge le catalogue quand l'import bouge, pas seulement son compte#61
lostmind84 merged 1 commit into
mainfrom
fix/l-ecran-recharge-le-catalogue-a-compte-egal

Conversation

@lostmind84

Copy link
Copy Markdown
Owner

Le défaut

Deux postes en production ont montré des prix vieux de plusieurs jours, avec des étiquettes justes : le catalogue arrivait, le Hub basculait, l'étiquette d'un produit repricé portait le nouveau prix, et la grille gardait l'ancien jusqu'à un F5.

La cause

L'écran client ne redemandait le catalogue que sur deux signaux du flux d'état, catalog_count et presentation_digest (§11.2). Un export aux mêmes produits pesables et à des prix nouveaux ne fait bouger ni l'un ni l'autre : le navigateur compare, et garde sa grille. Ni une reconnexion du flux ni le temps ne rechargent le catalogue.

Le correctif

Le flux porte catalog_updated_at, l'instant de l'import appliqué, la chaîne que la barre basse affiche déjà en « Catalogue du … » (ADR-053). Le navigateur recharge quand elle diffère de celle du catalogue qu'il tient. Même mécanisme que l'empreinte de présentation, aucun ADR rouvert. Le renommage de catégorie reste ouvert, nommé dans catalog.go.

Vérification

  • Deux bancs rouges avant : web/test/session.test.ts (1 requête reçue là où 2 sont dues), TestTheStateStreamNamesTheCatalogInService (le champ n'existait pas). Golden state.json : une ligne.
  • Dans le conteneur : make test vert (vet, -race, sans cgo, boundary, deps), 1 023 tests front sur 38 fichiers, svelte-check et eslint à zéro, budget tenu, internal/web/dist régénéré.

Hors correctif

.serena/ rejoint .gitignore. openscale doctor nomme un data\logs\openscale.log que rien n'écrit : dérive n° 7 dans SUIVI.md, non corrigée ici.

…lement son compte

Deux postes en production ont montré des prix vieux de plusieurs jours,
avec des étiquettes justes. Le catalogue arrivait, le Hub basculait,
l'étiquette d'un produit repricé portait le nouveau prix, et la grille
gardait l'ancien jusqu'à un F5.

Cause lue dans le code et non devinée : l'écran client ne redemandait le
catalogue que sur deux signaux du flux d'état, catalog_count et
presentation_digest. Un export de nuit aux mêmes produits pesables et à
des prix nouveaux publie bien un état neuf, mais ne fait bouger ni le
compte ni l'empreinte : le navigateur le compare, et garde sa grille. Ni
une reconnexion du flux ni le temps ne rechargent le catalogue. Le code
connaissait une variante de ce trou, le renommage d'une catégorie, notée
« still open » dans catalog.go, sans voir celle-ci.

Le flux porte désormais catalog_updated_at, l'instant de l'import
appliqué, la chaîne même que la barre basse affiche en « Catalogue du … »
(ADR-053). Le navigateur recharge quand elle diffère de celle du catalogue
qu'il tient : une troisième comparaison, du même mécanisme que l'empreinte
de présentation, aucun ADR rouvert. Le renommage de catégorie reste
ouvert, nommé au même endroit.

Deux bancs rouges avant le correctif : session.test.ts (1 requête reçue
là où 2 sont dues) et TestTheStateStreamNamesTheCatalogInService (le champ
n'existait pas). Le golden state.json bouge d'une ligne. Vérifié dans le
conteneur : make test vert (vet, -race, sans cgo, boundary, deps), 1 023
tests front sur 38 fichiers, svelte-check et eslint à zéro, budget tenu,
internal/web/dist régénéré.

Au passage, .serena/ rejoint .gitignore, et openscale doctor nomme un
data\logs\openscale.log que rien n'écrit : relevé en dérive n° 7 de
SUIVI.md, non corrigé ici.
@lostmind84
lostmind84 merged commit 09f2d79 into main Sep 4, 2026
8 checks passed
@lostmind84
lostmind84 deleted the fix/l-ecran-recharge-le-catalogue-a-compte-egal branch September 4, 2026 14:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant