Repository navigation
fix(ci,#19180): merge_dwell -- un run timed_out sur main est un rouge - #19192
Conversation
`_main_red_motif` ne retenait que les conclusions `success`/`failure`. Un `timed_out` (ou `startup_failure`) etait saute comme un `cancelled`, et l'organe remontait jusqu'au vert precedent : main declare vert alors que son dernier verdict etait rouge. Les deux conclusions rejoignent `MAIN_RED_CONCLUSIONS`. Le motif de derogation les nomme ; celui d'un `failure` garde sa forme. Tests : rouge avant le correctif (2 echecs), vert apres ; controle negatif `cancelled` puis `success` toujours vert (#19069 inchange). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
G-VAR-2 light cap reached (advisory, non bloquant). |
|
Trivial-diff advisory (#15740, non bloquant). |
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
Path-collision (organ #13359/#13615)Cette PR #19192 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
[ADJOINT PREFLIGHT] |
Grain: MED/guard — lane myia-ai-01:CoursIA — prev: MED/guard #19147
Le défaut
_main_red_motif(scripts/ci/merge_dwell.py) lit les dix derniers runs conclus du workflow surveillé surmain. Il retient le premier dont la conclusion vautsuccessoufailure. Les runscancelledetskippedsont sautés à raison (#19069) : ils n'ont pas de verdict. Maistimed_outetstartup_failureétaient sautés de la même façon, alors qu'ils sont des rouges : le workflow n'a pas rendu de vert.Conséquence : avec un dernier run
timed_outprécédé d'unsuccess, l'organe remontait jusqu'au vert et déclaraitmainvert. La dérogation de planchermerge-dwell-waivedrestait fermée sur unmainrouge.Le correctif
MAIN_RED_CONCLUSIONS = ("failure", "timed_out", "startup_failure"); les verdicts sont ces trois conclusions plussuccess.failure(« en echec (timed_out) »). Celui d'unfailuregarde sa forme : un test l'épingle mot pour mot.Validation
pytest -k 19180→ 2 échecs (timed_out,startup_failure), 2 succès (contrôle négatif et motif inchangé).pytest scripts/tests/test_merge_dwell.py scripts/tests/test_dwell_rule_matches_organ.py scripts/tests/test_pr_gate.py→ 215 passed.cancelledpuissuccessdonne toujours « vert », le comportement merge_dwell: un run cancelled masque le verdict de main (derogation muette apres une passe de merge) #19069 ne change pas.success/failureà mettre à jour.Périmètre
Deux fichiers : l'organe et ses tests. Aucun workflow, aucune règle.
Closes #19180
🤖 Generated with Claude Code