- validate.ts : `cleanSingletons()` retire SingletonLock/Cookie/Socket avant
polyfill:e2e (et à la rotation) → fiabilise polyfill:e2e (fini le faux rouge
ProcessSingleton). @multibrowser lancé en `@multibrowser and not @wip`.
- e2e-multibrowser : le scénario réactif « Un participant apparaît réactivement »
passe @wip, commentaire d'en-tête expliquant la LIMITE : en wallet-partagé A et B
partagent UNE identité NG → B voit l'événement de A comme possédé → son
owner-materializer écrit le doc de A → StorageError. PAS un bug produit (prod =
wallets distincts). Vrai fix = isolation distinct-wallets (chantier T02.d/g).
Réserve : ce scénario était vert (517045c) ; à re-vérifier lors de l'isolation
distinct-wallets (peut masquer une interaction phase-B).
Baseline validate visé : vert sauf ce @multibrowser documenté.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
`bun run validate` finissait en timeout (@data complet >14min). Désormais : par
défaut un SOUS-ENSEMBLE CLÉ de 8 scénarios @data (les couvertures des bugs terrain :
inscription, désinscription, isolation, reconnexion, créateur, compteur, auth×2) en
une invocation → finit en ~8m30. Flag `--full` pour toute la suite @data (budget
élargi 35min). Rotation profil avant @data/@multibrowser, matrice + exit non-zéro.
Baseline actuel : 8/8 @data clé VERTS (les fixes watchShape/optimiste/reconnexion/
anti-fork tiennent) ; polyfill:unit 123 ; rouges = SingletonLock (infra) + un
@multibrowser (limite wallet-partagé A/B).
Note : gate pre-push rapide (tsc+build+polyfill unit) ajouté dans .git/hooks/pre-push
(local, non versionné — pour partage : script tracké + install, suivi).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fondation « l'agent valide tout d'un coup » (audit couverture, levier C1). Enchaîne
et agrège : polyfill unit + polyfill e2e réel + Festipod @data + @multibrowser
(profils frais/rotation), matrice finale + exit non-zéro si rouge, passe @wip
informative.
Baseline établi (premier run réel) : polyfill unit 120 ✅, polyfill e2e 42/42 ✅
(broker réel), @multibrowser 1 rouge (limite wallet-partagé A/B), @data 4 rouges
dont 2 régressions phase B confirmées. → a trouvé les problèmes tout seul.
À TUNER (suivi) : le budget @data (~14min) est trop court → la suite complète est
tuée par timeout ; augmenter le budget OU exécuter un sous-ensemble clé rapide.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>