Le défaut
La jambe Scripts Tests (CPU) dépasse son plafond de durée (~20-21 min) et se fait annuler. Elle n'échoue pas sur une assertion : elle est cancelled. Comme elle alimente le PR gate requis, son annulation fait échouer le gate de toute PR qui la croise — sur main, donc pour toutes les lanes à la fois.
Ce n'est pas un défaut de code d'une PR. C'est un défaut de capacité de la base, et aucune lane ne peut le réparer depuis sa propre PR.
Mesures (firsthand, par les lanes — pas une intuition de coordinateur)
myia-po-2027:CoursIA a re-mesuré chaque check-run non vert de ses 8 PRs en lisant l'annotation, jamais le nom du check. Résultat : aucun défaut de code, deux classes mécaniques seulement.
| Classe |
PRs |
Signature |
| Famine CI — annulation de runner |
#15665, #15657, #15799 |
PR gate FAIL — "checks that never concluded: Scripts Tests (CPU) (cancelled)" |
| Famine CI — même cause, autre jambe |
#15660 |
"ICT tests/ (56) (cancelled)" |
| DWELL — plancher 120 min, levée automatique |
#15812 (levé 21:48:11Z), #15820 (levé 21:44:39Z) |
aucun geste requis |
| Verts |
#15613, #15705 |
#15705 ne porte plus qu'un HOLD G-VAR-2, affaire de review |
Le gate se diagnostique lui-même : son annotation dit littéralement « this is not a code failure ».
myia-po-2025 a mesuré le même plafond indépendamment, sur #15757 : « CANCELLED une seconde fois au plafond ~21 min, sans assertion échouée », et conclut que la réparation utile est un partitionnement / timeout structurel de Scripts Tests (CPU), hors PR notebook.
Corroboré en outre sur #15440, #15833, #15840 — le picker nomme lui-même la classe « ROUGE IMPUTÉ À LA BASE ».
Pourquoi ça remonte au coordinateur
Deux règles convergent :
proactive-coordination.md R5 — un rouge non réparable par la lane (garde cassée sur main) sort du champ de vision de la lane et s'écrit en commentaire, il ne se corrige pas sur sa PR.
coordinator-discipline.md R0 — un check rouge bloque la candidate, jamais la lane ; quand le débit de digestion baisse, la remise en capacité est une piste que le coordinateur ouvre en parallèle, sans réduire les dispatchs.
Quatre PRs d'une seule lane sont bloquées simultanément par cette cause. L'effet est un faux signal de lane en difficulté alors que la lane produit correctement.
Réparation demandée
Partitionner Scripts Tests (CPU) (ou lui donner un timeout structurel explicite) de sorte qu'aucune tranche n'approche le plafond d'annulation. Deux garde-fous à poser dans le même geste :
- Un dépassement de plafond doit être discernable d'un échec d'assertion dans le rollup. Aujourd'hui les deux se présentent comme un
PR gate rouge, ce qui fait porter à des lanes un rouge qui ne leur appartient pas — c'est ce qui a coûté trois cycles de réparation à po-2027.
- Contrôle positif obligatoire : démontrer que la jambe partitionnée rougissait bien AVANT sur le cas mesuré. Un fix qui ne prouve pas qu'il corrigeait quelque chose n'a rien prouvé.
Critères d'acceptation
Note de méthode
Les mesures de cette issue viennent intégralement des lanes myia-po-2027:CoursIA et myia-po-2025. Elles étaient déjà faites, correctes, et attendaient dans une inbox — l'ouverture de cette issue est le routage qui leur manquait, pas une nouvelle enquête.
Le défaut
La jambe
Scripts Tests (CPU)dépasse son plafond de durée (~20-21 min) et se fait annuler. Elle n'échoue pas sur une assertion : elle est cancelled. Comme elle alimente lePR gaterequis, son annulation fait échouer le gate de toute PR qui la croise — surmain, donc pour toutes les lanes à la fois.Ce n'est pas un défaut de code d'une PR. C'est un défaut de capacité de la base, et aucune lane ne peut le réparer depuis sa propre PR.
Mesures (firsthand, par les lanes — pas une intuition de coordinateur)
myia-po-2027:CoursIAa re-mesuré chaque check-run non vert de ses 8 PRs en lisant l'annotation, jamais le nom du check. Résultat : aucun défaut de code, deux classes mécaniques seulement.PR gate FAIL — "checks that never concluded: Scripts Tests (CPU) (cancelled)""ICT tests/ (56) (cancelled)"Le gate se diagnostique lui-même : son annotation dit littéralement « this is not a code failure ».
myia-po-2025a mesuré le même plafond indépendamment, sur #15757 : « CANCELLED une seconde fois au plafond ~21 min, sans assertion échouée », et conclut que la réparation utile est un partitionnement / timeout structurel deScripts Tests (CPU), hors PR notebook.Corroboré en outre sur #15440, #15833, #15840 — le picker nomme lui-même la classe « ROUGE IMPUTÉ À LA BASE ».
Pourquoi ça remonte au coordinateur
Deux règles convergent :
proactive-coordination.mdR5 — un rouge non réparable par la lane (garde cassée surmain) sort du champ de vision de la lane et s'écrit en commentaire, il ne se corrige pas sur sa PR.coordinator-discipline.mdR0 — un check rouge bloque la candidate, jamais la lane ; quand le débit de digestion baisse, la remise en capacité est une piste que le coordinateur ouvre en parallèle, sans réduire les dispatchs.Quatre PRs d'une seule lane sont bloquées simultanément par cette cause. L'effet est un faux signal de lane en difficulté alors que la lane produit correctement.
Réparation demandée
Partitionner
Scripts Tests (CPU)(ou lui donner un timeout structurel explicite) de sorte qu'aucune tranche n'approche le plafond d'annulation. Deux garde-fous à poser dans le même geste :PR gaterouge, ce qui fait porter à des lanes un rouge qui ne leur appartient pas — c'est ce qui a coûté trois cycles de réparation à po-2027.Critères d'acceptation
Scripts Tests (CPU)ne produit plus decancelledpar dépassement de plafond surmain, mesuré sur au moins deux runs consécutifs.PR gate.Note de méthode
Les mesures de cette issue viennent intégralement des lanes
myia-po-2027:CoursIAetmyia-po-2025. Elles étaient déjà faites, correctes, et attendaient dans une inbox — l'ouverture de cette issue est le routage qui leur manquait, pas une nouvelle enquête.