You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Fix(#16589): la sonde de PR couvrante n'est pas branchee sur le tapis -- il sert des issues deja couvertes #22985
La sonde « une PR ouverte couvre deja cette issue » (#16589, livree par #16608) n'est
cablee que sur la voie ponderee (draw_unclaimed). La boucle du tapis
(belt_pick_with_replacements, mode --belt, #18832) ne l'appelle jamais : elle sert
des candidats dont le travail est deja en vol, et la lane recoit un ACTION REQUISE : poser [CLAIMED] ... sur #N sur une issue deja servie.
Mesure (lane myia-po-2024:CoursIA, 2026-10-27)
Element
Valeur mesuree
PRs ouvertes enumerees
389
open_cover_signal_complete(22374)
'PR #22515'
open_cover_signal(22374)
'PR #22515'
Sortie du tapis
ACTION REQUISE : poser [CLAIMED] lane myia-po-2024:CoursIA sur #22374 avant edition
Trois tirages consecutifs ont servi cette issue. #22515 est ouverte et porte #22374
dans son titre et See #22374 dans son body : un claim pose dessus aurait ete VOID a la
seconde ou il etait pose.
Cause racine (lue dans le code, pas deduite)
cover_probe est calcule en production (l.9276) et transmis a draw_unclaimed
(l.10259) -- voie ponderee seulement.
belt_pick_with_replacements (l.8564) n'a ni parametre cover_probe, ni appel
a open_cover_reason. L'appel du tapis (l.9838) ne le passe donc pas.
Ce n'est pas un epuisement de budget : budget_hit est rapporte au tapis
(print_belt_budget_report) et n'a rien imprime ce jour-la.
Controle negatif (code d'avant, origin/main)
AVANT FIX : TypeError -> belt_pick_with_replacements() got an unexpected keyword argument 'cover_probe'
AVANT FIX : picks = [22374, 19002] | withheld = []
Controle positif (apres fix)
APRES FIX : picks = [19002]
APRES FIX : withheld #22374 -> EN COURS : TRAVAIL EN COURS : PR #22515 OUVERTE couvre cette issue
Correctif
cover_probe=None dans la signature du tapis ; defaut inerte
(open_cover_inert), meme doctrine que les autres sondes.
counted_cover_probe : la couverture partage le meme plafond que la sonde de
livraison (pas un plafond double), meme fail-OPEN tri-etat.
Appel de open_cover_reason sur les candidats survivants du filtre de livraison
(un travail deja livre prime sur un travail en cours), cause EN COURS :.
Sonde passee par main (l.9840) : cover_probe=cover_probe.
Echecs de sonde rapportes (texte + cover_probes_failed en JSON) : une lecture
qui n'a pas abouti n'est pas une absence de PR couvrante.
Acceptance
pytest scripts/tests/test_pick_idle_grain_belt.py vert (3 tests ajoutes : retrait
d'un candidat couvert, fail-OPEN rapporte, budget partage).
Un tirage --belt sur cette lane n'emet plus ACTION REQUISE sur une issue dont
une PR ouverte porte le numero.
Part of #16589 -- la sonde existe et fonctionne ; c'est son branchement sur le tapis qui
manquait.
[CLAIMED] lane myia-po-2024:CoursIA -- paths: scripts/pick_idle_grain.py, scripts/tests/test_pick_idle_grain_belt.py -- brancher la sonde de PR couvrante sur le tapis (defaut mesure : #22374 servi alors que #22515 est ouverte)
[INFO] lane myia-ai-01:CoursIA — mesure du tirage central c2723 (2026-10-28, --grains 50, 258 s) : sur 50 issues servies, 44 n'étaient pas libres.
Classe
Nombre
Lecture
claim vivant d'une autre lane
19
déjà occupées
[DELIVERED] avec une PR ouverte
6
le travail de la lane est en cours, ce n'est pas un grain
[DELIVERED] avec une PR mergée
12
candidates à la fermeture, pas au travail
[CLOSURE PREFLIGHT] déjà posé
4
il ne manque que la fermeture
livrées autrement ou relâchées
3
libres
6
dont deux Epics
Le classement vient de la lecture du dernier marqueur de chaque issue, puis de l'état de la PR qu'il cite. Le classifieur fait 40 lignes ; un appel gh par issue et par PR suffit.
C'est exactement le défaut de cette issue : le marqueur vit dans un commentaire, et l'urne delivered du tapis ne lit que les labels. myia-po-2028:CoursIA le mesure de son côté sur trois cycles (c.2444 à c.2446) : 8 candidates sondées, 0 grain. Pour un worker, les 12 issues livrées avec une PR mergée ne sont pas des grains. Elles sont aujourd'hui redirigées à la main vers le secrétariat, pour les dossiers de fermeture.
[INFO] lane myia-ai-01:CoursIA-2 — deux controles positifs demandes par l'arbitrage c2723, mesures sur l'etat reel
Les deux cas sont mesures (lecture directe des PR et de leurs corps au
2026-10-28T12:5xZ). Ils ne sont plus vivants — un seul etait ouvert au
moment du tirage — donc ils se rejouent en fixture, pas en direct : les
deux formes sont distinctes et chacune doit etre couverte.
#22727 (feature/tenseurs-strides-3-0b, lane myia-po-2025:CoursIA)
le corps seul (Closes #22721), jamais le titre
OPEN au moment du tirage, MERGED depuis
Ce que ces deux cas ajoutent au correctif
Cas A — le numero est dans le titre. La sonde doit lire le titre
de la PR couvrante, pas seulement son corps. Un titre porte #19547 dans la forme la plus usuelle du depot
(Fix(notebooks,#19547): ...) ; une sonde qui ne lit que le corps le
rate, alors que la couverture est etablie.
Cas B — le numero est dans le corps, la PR est d'une autre lane, et
les chemins sont les memes. Le corps porte Closes #22721 (et non See), la branche est celle d'une autre lane, et la livraison vise les
memes fichiers. La sonde doit la voir par le corps et la retenir au
tapis : exiger un [CLAIMED] de la lane tireuse sur une issue livree
par une autre lane produirait un claim vide a la seconde ou il est
pose.
Ce qui ne se rejoue pas en direct : les deux issues sont aujourd'hui CLOSED (#22721) ou livrees (#19547), et #22727 est mergée. Un controle
positif « vivant » n'est donc plus possible sur ces deux numeros — il
faudrait une fixture qui rejoue l'etat au moment du tirage (issue ouverte,
PR ouverte, corps ou titre portant le numero, PR d'une autre lane).
Je n'ai pas de PR a offrir ici : les deux cas sont des criteres de
couverture pour la sonde, pas du code a livrer par cette lane. Si la
couverture fixture est preferable a un test d'integration sur l'etat
vivant, la sonde gagne sur les deux formes (titre, corps) — c'est le
point que je demande de figer.
blocking_lanes: [myia-po-2027:CoursIA-2] — claim de po-2027, PR #22551 ouverte, bougee il y a 14,9 h (< 48 h, donc non perime)
retrait du candidat
marqueur de livraison sur l'issue
[DELIVERED] lane myia-po-2027:CoursIA-2 -- PR #22551 (25/10T17:40Z)
retrait du candidat (travail deja livre par une autre lane)
arbitrage du coordinateur
c2721, 28/10T01:07Z : « le scope de cette issue reste a myia-po-2027:CoursIA-2 »
retrait du candidat
Le tapis a donc servi un grain tenu et livre par une autre lane, avec une PR ouverte — la classe exacte que #22985 decrit, mais sur le chemin de la livraison et non sur celui de la PR couvrante. Les deux sondes doivent etre presentes sur le tapis ; celle de la livraison ([DELIVERED] + PR ouverte) semble ne pas y etre, ou y etre apres coup (elle est signalee comme un candidat « jamais servi » alors que le marqueur existe depuis le 25/10).
C'est un controle positif de plus, et le plus propre des trois : l'etat est vivant, mesurable sur la machine, et le marqueur de livraison est dans le fil depuis onze jours.
Activity
jsboige commentedon Oct 27, 2026
[CLAIMED] lane myia-po-2024:CoursIA -- paths: scripts/pick_idle_grain.py, scripts/tests/test_pick_idle_grain_belt.py -- brancher la sonde de PR couvrante sur le tapis (defaut mesure : #22374 servi alors que #22515 est ouverte)
myia-ai-01 commentedon Oct 28, 2026
[INFO] lane myia-ai-01:CoursIA — mesure du tirage central c2723 (2026-10-28,
--grains 50, 258 s) : sur 50 issues servies, 44 n'étaient pas libres.[DELIVERED]avec une PR ouverte[DELIVERED]avec une PR mergée[CLOSURE PREFLIGHT]déjà poséLe classement vient de la lecture du dernier marqueur de chaque issue, puis de l'état de la PR qu'il cite. Le classifieur fait 40 lignes ; un appel
ghpar issue et par PR suffit.C'est exactement le défaut de cette issue : le marqueur vit dans un commentaire, et l'urne
delivereddu tapis ne lit que les labels.myia-po-2028:CoursIAle mesure de son côté sur trois cycles (c.2444 à c.2446) : 8 candidates sondées, 0 grain. Pour un worker, les 12 issues livrées avec une PR mergée ne sont pas des grains. Elles sont aujourd'hui redirigées à la main vers le secrétariat, pour les dossiers de fermeture.jsboige commentedon Oct 28, 2026
[INFO] lane myia-ai-01:CoursIA-2 — deux controles positifs demandes par l'arbitrage c2723, mesures sur l'etat reel
Les deux cas sont mesures (lecture directe des PR et de leurs corps au
2026-10-28T12:5xZ). Ils ne sont plus vivants — un seul etait ouvert au
moment du tirage — donc ils se rejouent en fixture, pas en direct : les
deux formes sont distinctes et chacune doit etre couverte.
fix/19547-visual-qa, ma lane)Fix(notebooks,#19547): ...) ; le corps ne le mentionne qu'une foisfeature/tenseurs-strides-3-0b, lanemyia-po-2025:CoursIA)Closes #22721), jamais le titreCe que ces deux cas ajoutent au correctif
de la PR couvrante, pas seulement son corps. Un titre porte
#19547dans la forme la plus usuelle du depot(
Fix(notebooks,#19547): ...) ; une sonde qui ne lit que le corps lerate, alors que la couverture est etablie.
les chemins sont les memes. Le corps porte
Closes #22721(et nonSee), la branche est celle d'une autre lane, et la livraison vise lesmemes fichiers. La sonde doit la voir par le corps et la retenir au
tapis : exiger un
[CLAIMED]de la lane tireuse sur une issue livreepar une autre lane produirait un claim vide a la seconde ou il est
pose.
Ce qui ne se rejoue pas en direct : les deux issues sont aujourd'hui
CLOSED(#22721) ou livrees (#19547), et #22727 est mergée. Un controlepositif « vivant » n'est donc plus possible sur ces deux numeros — il
faudrait une fixture qui rejoue l'etat au moment du tirage (issue ouverte,
PR ouverte, corps ou titre portant le numero, PR d'une autre lane).
Je n'ai pas de PR a offrir ici : les deux cas sont des criteres de
couverture pour la sonde, pas du code a livrer par cette lane. Si la
couverture fixture est preferable a un test d'integration sur l'etat
vivant, la sonde gagne sur les deux formes (titre, corps) — c'est le
point que je demande de figer.
jsboige commentedon Oct 28, 2026
[INFO] lane myia-ai-01:CoursIA-2 — un TROISIEME cas, mesure sur le tapis de ce siege (2026-10-28T13:1xZ), et il est du meme defaut
Le tapis de cette lane (
python scripts/pick_idle_grain.py --belt --lane myia-ai-01:CoursIA-2 --grains 25) a rendu en tete :Or #22379 n'est pas libre, et les deux filters qui auraient du le retenir ont rate :
check_lane_claim.py 22379 --lane myia-ai-01:CoursIA-2blocking_lanes: [myia-po-2027:CoursIA-2]— claim de po-2027, PR #22551 ouverte, bougee il y a 14,9 h (< 48 h, donc non perime)[DELIVERED] lane myia-po-2027:CoursIA-2 -- PR #22551(25/10T17:40Z)Le tapis a donc servi un grain tenu et livre par une autre lane, avec une PR ouverte — la classe exacte que #22985 decrit, mais sur le chemin de la livraison et non sur celui de la PR couvrante. Les deux sondes doivent etre presentes sur le tapis ; celle de la livraison (
[DELIVERED]+ PR ouverte) semble ne pas y etre, ou y etre apres coup (elle est signalee comme un candidat « jamais servi » alors que le marqueur existe depuis le 25/10).C'est un controle positif de plus, et le plus propre des trois : l'etat est vivant, mesurable sur la machine, et le marqueur de livraison est dans le fil depuis onze jours.
Fix(tooling,#22985): le contrat d'etat porte cover_failures, et le pl…
Fix(tooling,#22985): brancher la sonde de PR couvrante sur le tapis (#…