Repository navigation
Conversation
…e ceux du run courant Le catalogue bascule sur un nouveau run environ 1 h avant la fin du job cone-members (cones: null pendant ce temps). Les derniers cônes validés de la session sont gardés pour le run suivant, sous garde-fous (run affiché juste avant, amorce ≤ 12 h plus tôt, validateCones rejoué contre leur run), avec une mention explicite, un rendu atténué en pointillés, et remplacés dès que les cônes du run courant sont validés. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
infoclimat-numeric | 116f163 | Commit Preview URL Branch Preview URL |
Oct 27 2026, 06:08 PM |
…cé au retrait et au retour arrière - P1 : DisplayedState.cones porte le document et le statut « run précédent » des cônes réellement montrés ; carte, onglet, mentions et infobulle les lisent au lieu de weatherAiCones. Slot B en chargement ou abandonné (timeout) : cônes A présentés avec leur calibration et leur mention. - P2 : LoadedRun.conesAwaited distingue l'attente explicite (cones: null) du retrait (champ absent) ; le retrait efface le repli et la mémoire. - P2 : lastCones invalidée à chaque bascule qui ne la garde pas (retour arrière, run non immédiatement précédent) et au retrait ou remplacement de l'entrée du run mémorisé. Tests : slot retardé/timeout, retrait du champ, retour arrière. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… slot affiché - Infobulle : échéances des cônes comptées depuis l'init_time de leur document (courant ou précédent), trajectoires depuis l'amorce du run affiché, jamais depuis le run sélectionné (A 00Z affiché, B 06Z sélectionné : +12 h, pas +6 h). - Onglet : section cônes (mention, calibration) et bascule gardées tant que des cônes sont affichés, même retirés du catalogue entre-temps. - Mentions : attribution et licence des cônes lues au commit (DisplayedState.cones.credits), plus dans le catalogue. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Constat
cone-membersmet ensuite environ 1 h à calculer les cônes, et pendant ce temps le catalogue (GET /api/weather-ai/products) renvoiecones: null.scripts/serving_weather_ai.py, lecture seule) :_cones_du_runne rattache les cônes chargés (CONES) au catalogue que sirun_idetsnapshot_idsont ceux du run servi.produit(),timeline()et_cones_data()renvoient 404 sinon. Les runs historiques (?run_id=) ne servent jamais de cônes (« public cones are served for the live run only »). Une visite à froid pendant la fenêtre ne peut donc pas obtenir les cônes du run précédent. Cette PR couvre ce qui est faisable côté maps : une mémoire de session.Comportement
lastCones).commitRun), si le nouveau run n'a pas encore ses cônes, ceux du run précédent sont conservés dansweatherAiCones.previous:calibration_statusde leur run ;withCatalogConespuissyncCones). Une fois ces cônes validés, ils remplacent les anciens et la mention disparaît.Garde-fous (
keepPreviousCones,cones.ts)PREVIOUS_CONES_MAX_AGE_MS). Une amorce inconnue fait tout tomber.validateConesest rejoué contre leur propre run (run_id,snapshot_id,calibration_statusdu catalogue de l'époque, mention exacte, limites d'échéance).previousséparé,doc: nullpour le run courant, et aucune info de cône ancien dans l'infobulle des trajectoires.fixture) et flagoff: rien n'est gardé.Limites
À faire côté portail (chom-poc-data, porté séparément)
Pour couvrir le chargement à froid, ajouter au catalogue un champ frère
cones_previous:Catalogue
GET /weather-ai/products(run en ligne seulement, pas sur?run_id=) :cones_previousvautnull, ou bien la même projection quecones(_cones_public:product_id,run_id,valid_time,sha256,snapshot_id,attribution,license_notice,experimental,calibration_status,mention,cones_catalog), avec en plusinit_time. Il n'est renseigné que si toutes les conditions suivantes sont réunies :conesvautnull(le run en ligne n'a pas de cônes validés) ;CONES) sont ceux du run immédiatement précédent dans l'historique servi ;cones_contract.load, SHA-256 et VersionId).Concrètement,
_cones_du_runreste inchangé, et un_cones_precedents(catalog)renvoieCONESquandentry.run_id != catalog.run_idet que les conditions 2 et 3 sont vraies.Données :
GET /weather-ai/products/global-cyclone-cones-public/data?valid_time=<amorce>&cones_run_id=<run_id précédent>sert ce document seulement quandcones_run_idcorrespond aucones_previouscourant, et répond 404 sinon. La réponse est identique à_cones_data. Variante possible : unproduct_iddistinct, mais garder le même schéma de document reste plus simple pour maps.Côté maps, une fois ce champ servi :
discoverProductslitcones_previouset remplitweatherAiCones.previousau chargement à froid, avec les mêmes garde-fous (petite PR de suivi).Staging
https://citarf-maps-cones-previous-run-infoclimat-numeric.infoclimat.workers.dev (version : https://a2ca2ce5-infoclimat-numeric.infoclimat.workers.dev)
Vérifications
npx vitest run src/lib/tests/weather-ai-*.test.ts: 175 tests verts, dont les nouveaux deweather-ai-previous-cones.test.ts(garde-fous, rendu, mentions, bascule de run de bout en bout : gardés, puis remplacés, puis refus du run courant).npm run check: 0 erreur.eslint .: OK.prettier --check: les seuls avertissements portent sur deux fichiers que cette PR ne touche pas (src/lib/variable-categories.ts,docs/superpowers/plans/2026-05-31-refonte-ui-shell.md) ; ils existaient déjà surmain..claude/rules/architecture.mdmis à jour (§ cônes).🤖 Generated with Claude Code