Après WP0–WP8, Fil capturait déjà. Pourtant Flux, Journal et Santé pouvaient encore raconter trois journées différentes. Le plan prioritaire du 15 septembre 2026 a choisi de fiabiliser d’abord la cohérence interne, puis la qualité amont — et de livrer fil@0.4.0 avec des preuves datées, pas une narration de roadmap.
La décision : P0 avant Pulse
Le dernier handoff captation proposait Pulse en premier. La revue du code a inversé l’ordre : des défauts correctibles dans Fil (périmètres Git divergents, budget avant tri, repliés inaccessibles, dispersion calculée sur le bruit) passaient avant l’ajout ou le nettoyage de sources.
Ordre retenu :
| Ordre | Lot | Intent |
|---|---|---|
| 1–3 | P0-A / B / C | Même instantané · classement consultable · bilans interprétables |
| 4–5 | P1-A / B | Qualité Pulse · couverture historique Chronos |
| 6 | P1-C | Parcours d’usage + livraison 0.4.0 |
| 7+ | P2 | Digests et extensions — après preuves P0/P1 |
Ce qui clochait (constats vérifiés dans le code)
P0-A — périmètres divergents. FilApp transmettait repoPaths à Flux, pas à Journal ni au bandeau Santé. Sans variables Git serveur, un commit visible dans Flux pouvait manquer ailleurs. captureFlows partageait le code de collecte, pas un instantané : deux appels successifs n’étaient pas la même lecture. Une source jamais interrogée (blog live hors collecte) pouvait paraître « vide observée ».
P0-B — budget avant tri. applySourceBudget précédait le tri de pagination : les meilleurs scores n’étaient pas garantis parmi les conservés. Une recherche ne retrouvait pas un item déjà retiré. « Voir plus » ne dépassait pas vraiment le Top-20.
P0-C — bilans ambigus. Dispersion Flux comptait le bruit ; le Journal l’excluait. Minutes API vs rollups incohérents. Journal court ou plafond Chronos 1000 événements sans état de couverture → risque de conclure à tort « journée vide ».
Livraison P0 : un instantané, un ordre, une couverture
| Correctif | Effet |
|---|---|
| Collecte client partagée | Même snapshotId, mêmes repoPaths, même date de lecture pour Flux / Journal / Santé |
| Panne après succès | Données conservées, lecture périmée signalée |
| Source non interrogée | Distinguée d’une archive silencieuse observée |
| Pipeline Flux | filtre → focus/score → tri → budget → pagination ; surplus et pages accessibles |
| Dispersion | horloge de l’instantané ; travail / échanges seulement |
| Journal | sept jours calendaires ; couverture partielle Chronos / Pulse / Git exposée |
Preuve P0 (handoff plan prioritaire)
| Contrôle | Résultat déclaré |
|---|---|
npm test | 247/247 PASS |
npm run build | PASS |
npx eslint src tests | PASS |
tests/capture.browser.mjs | PASS sur :4478, mobile et panne upstream inclus |
Livraison P1 : qualité amont + curseur Chronos
| Lot | Mesure / livrable (sources handoff) |
|---|---|
P1-A Pulse 1f9b393 | window=6h honoré ; volume observé 500 → 98 actes ; historique intact |
P1-B Chronos 30456cd | Curseur (at,id) ; 1005 événements sans perte/doublon (côté Chronos) |
| Fil | Jusqu’à 20 pages / période ; serveur ancien → couverture partielle annoncée |
| Tests Fil après P1 | 249/249 PASS · build · lint |
Preuve P1-C (validation d’usage)
| Contrôle | Résultat déclaré |
|---|---|
| Scénario navigateur | PASS sur :4478 · 161 items · journal cohérent · panne upstream sans erreur JS · mobile 390 px |
Smoke post-npm start | page HTTP 200 · /api/flows?days=7 → 72 items · snapshotId présent |
| Couverture affichée | chronos:partial,pulse:partial — attendu tant que Chronos ancien / Pulse borné |
Package et tag documentés dans STATUS : fil@0.4.0 · tag local v0.4.0.
Ce qui attend encore (P2 et hors séquence)
- Digests
fil.journal.v1de jours clos (après couverture vérifiable). - Blog / Telegram dans la chaîne
FlowItem(ponts Inbox distincts aujourd’hui). - Scores Carte / Inbox, focus persistant — extensions, pas bloqueurs P0.
- IdeaPit, sync multi-appareils, MCP produit — hors séquence prioritaire.
Le plan rappelle aussi : les chiffres « 201 / 245 items de bruit » sont une ancienne mesure captation ; à reprendre sur un échantillon frais avant citation permanente.
Non exécuté dans ce billet
- Rejeu
npm test/ build / Playwright au moment de la rédaction éditoriale. - Certification runtime live de Pulse / Chronos / VFGate au moment de la publication.
- Déploiement du curseur Chronos dans toutes les branches workspace (dépendance hors Fil).
- Digests figés (non livrés).
Une phrase pour la suite
Fiabiliser la même vérité entre Flux, Journal et Santé valait mieux qu’une source de plus : le plan prioritaire l’a prouvé en chiffres, et la suite digests / bruit Pulse à la source ne reprend qu’après cette base.
Sources : docs/PLAN-PRIORITAIRE-2026-09-15.md, handoffs/2026-09-15-handoff-plan-prioritaire.md, STATUS.md, DERNIERE-INFO.md. Miroir : Chronowflow/docs/devblog/.