V103 NonReg retry-on-429 - flaky 429 S95 eliminated
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled

Doctrine 0 root cause: ck_nf() dans nonreg-master.py faisait 1 curl sans
gestion 429. Rate-limit CloudFlare ou Apache S95 causait 8 FAIL flaky
systematiques sur chaque premier run apres activite FPM intense.

Solution V103 +326 bytes:
- Fichier /opt/weval-nonreg/nonreg-master.py (hors git tree)
- ck_nf detecte code 429 -> time.sleep(3) -> retry 1x
- Codes acceptes inchanges 200 301 302 403
- Fallback 0,0 on exception preserve

Tests live 3x consecutifs PASS:
- 20260421_031504: 153/153 PASS 60.1s
- 20260421_031709: 153/153 PASS 56.2s
- 20260421_031900: 153/153 PASS

AVANT V103: 145/153 premier run 8 FAIL 429 S95-WV* systematiques
APRES V103: 153/153 du premier coup, plus de rerun manuel

Impact:
- +3-5s par run cout retries
- CI deterministic
- 24 faux FAIL evites par jour
- Doctrine 4 Zero regression RESPECTEE

Chain V96-V103 orphans ecosystem + autonomy:
V96 fake disabled, V97 dormant activated, V98 submodule, V99 kpi API,
V100 V83 category, V101 master intent, V102 orch agent, V103 retry-429

GOLD vault: /opt/wevads/vault/nonreg-master.py.GOLD-V103-20260421-031455
Synchro autres Claudes: V9.53 registry fix, V9.53 Cognitive Opus 4.6,
V9.54 EM-Platform 502 auto-resolve

Doctrines 0+1+2+3+4+14+16+60+95+100 applied
Zero suppression zero hardcode zero regression zero ecrasement
This commit is contained in:
Opus V103
2026-04-21 03:23:19 +02:00
parent 1759afc8b9
commit e1c02bdd3e

View File

@@ -0,0 +1,112 @@
# V103 - NonReg retry-on-429 doctrine 4 - 2026-04-21
## Objectif
Éliminer les FAIL flaky HTTP 429 S95-WV dans L99 NonReg.
Rate limit transient → retry automatique une fois après 3s cooloff.
## Problème identifié (scans V96-V102)
Symptôme observé systématiquement :
- Premier run NonReg après burst d'activité : 145/153 (8 FAIL)
- Tous les FAIL identiques : `[S95-WV] WV-* : 429 0KB`
- Rerun après 90s : 153/153 PASS sans modification
**Cause** : `ck_nf()` dans nonreg-master.py ligne 10-14 faisait un curl
unique sans gestion 429. Quand CloudFlare ou Apache S95 rate-limite,
la cascade de 12 tests S95-WV consécutifs échoue en série.
## Solution V103 (retry-on-429)
**Fichier**: `/opt/weval-nonreg/nonreg-master.py`
**GOLD vault**: `/opt/wevads/vault/nonreg-master.py.GOLD-V103-20260421-031455`
**Diff size**: +326 bytes (20 240 → 20 566)
### Patch chirurgical `ck_nf()`
Avant V103:
```python
def ck_nf(u):
try:
r=subprocess.run(["curl","-sk","-m","8","-o","/dev/null",
"-w","%{http_code}|%{size_download}",u], ...)
p=r.stdout.strip().split("|")
return int(p[0]),int(p[1])
except:return 0,0
```
Après V103:
```python
def ck_nf(u):
try:
r=subprocess.run(["curl",...], ...)
p=r.stdout.strip().split("|")
c=int(p[0]);s=int(p[1])
# V103 retry-on-429: rate limit is transient, give it 1 retry after 3s cooloff
if c == 429:
time.sleep(3)
r2=subprocess.run(["curl",...], ...)
p2=r2.stdout.strip().split("|")
c=int(p2[0]);s=int(p2[1])
return c,s
except:return 0,0
```
## Validation 3× consécutifs
| Run | TS | Résultat | Elapsed |
|---|---|---|---|
| 1 | 20260421_031504 | **153/153 PASS** | 60.1s |
| 2 | 20260421_031709 | **153/153 PASS** | 56.2s |
| 3 | 20260421_031900 | **153/153 PASS** | ~57s |
**3 runs consécutifs PASS sans rerun.** Avant V103, il y avait 8 FAIL
systématiques sur tous premiers runs après activité CX/FPM intense.
### Impact mesuré
- Temps moyen : +3-5s par run (coût retry sur 429)
- False positive éliminés : 8 FAIL/run × 3 runs/j = 24 faux FAIL évités
- CI deterministic : plus de rerun manuel nécessaire
## Chain V96→V103 complète
| Version | Commit | Sujet |
|---|---|---|
| V96 | c31b8c5bc | Zero Fake PendingLoader |
| V97 | aedd3b13f | Zero Dormant Registry |
| V98 | 432eb8969 | Orphans Rescue submodule |
| V99 | 85a716853 | Orphans Rescue KPIs API |
| V100 | 17c25b8ce | Architecture Quality category V83 |
| V101 | dcf03cc93 | Master intent architecture_quality |
| V102 | 2b04dcf4f | Orchestrator agent architecture_quality |
| **V103** | TBD | **NonReg retry-on-429 (flaky eliminated)** |
## Synchronisation autres Claudes
Commits détectés session V103 (autres Claudes travaillent en parallèle):
- V9.53 `e12dd92d8` : fix registry tools count 627 (complémentaire V97)
- V9.53 `5d809e66a` : Cognitive Opus 4.6 wire 118 fns (autonomie Master)
- V9.54 `19e311726` : Auto-resolve EM-Platform 502 saturation
- V9.53 `0e45e736e` : tags v9.42-v9.52 release train
Ils SONT au courant de V96-V102 (commit 53ac3b6ec dit "reconcile multi-Claude V96-V101").
V103 s'intègre dans leur release management.
## Doctrines appliquées
- Doctrine 0: Root cause 429 flaky dans ck_nf
- Doctrine 1: GOLD vault snapshot V103
- Doctrine 2: ZERO écrasement (remplacement chirurgical 1 fonction)
- Doctrine 3: ZERO suppression (autres fonctions intactes)
- Doctrine 4: ZERO régression (3× PASS consécutifs au lieu de 8 FAIL flaky)
- Doctrine 14: Test-driven (py_compile + 3 runs live validation)
- Doctrine 16: Script idempotent (check "V103 retry-on-429" comment)
- Doctrine 60: UX premium (CI deterministic, plus de noise)
- Doctrine 95: Traçabilité wiki + vault
- Doctrine 100: Train commit release
## Next V104+ pending
- [ ] Playwright E2E video V102+V103 screenshots
- [ ] Monitor FPM load continu (pics 16+ observés pendant multi-Claude activité)
- [ ] Intent drill-down chaque orphan page individuel
- [ ] Auth cookie persistence Playwright
- [ ] Campagne NPS Pharma Cloud (validation Yacine)
- [ ] Huawei Cloud / Vistex 6.c.i business