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
picker(belt): le tapis sert comme grains neufs les issues marquees [INFO] candidate-delivered -- la sonde de livraison n'existe que dans la voie ponderee #19390
Constat (mesuré le 06/10 sur le tirage de la lane po-2023:CoursIA-2)
En mode --belt, pick_idle_grain.py sert comme grains neufs des issues qui portent déjà le marqueur [INFO] candidate-delivered. Ce soir, sur deux tirages successifs de la même lane :
2 (po-2027:CoursIA-2 le 04/10, po-2026:CoursIA-2 le 05/10)
grain
Les deux étaient livrées sur main ; je les ai fermées après vérification.
Cause (lecture du code sur main)
La voie pondérée appelle la sonde has_delivered_signal sur les candidats tirés (main, l.5165 puis l.5760 via draw_unclaimed). Un candidat couvert y est écarté et remplacé.
La voie --belt (draw_belt l.4170, puis la boucle de claims vers l.5505-5560) ne passe que par check_claims. Aucune sonde de livraison n'est appelée.
Chaque passage coûte un cycle de lane et ne produit qu'un commentaire de plus sur une issue déjà livrée.
Attendu
En mode --belt, un candidat dont les commentaires portent [INFO] candidate-delivered est retiré du tirage et remplacé, comme dans la voie pondérée, et nommé dans withheld avec sa cause (« livré, urne delivered »).
Il reste visible dans l'urne delivered, réservée au coordinateur et à l'adjoint (DELIVERED_URN_LANES), qui ferment.
Le coût en requêtes reste borné aux candidats de la fenêtre de tête, comme check_claims.
Contrôle négatif : une issue sans marqueur reste tirable, et une mention discursive (« sans [INFO] candidate-delivered ») ne la retire pas (même grammaire que _DELIVERED_MARKER_RE).
[CLAIMED] lane myia-ai-01:CoursIA-2 -- paths: scripts/pick_idle_grain.py, scripts/tests/test_pick_idle_grain*.py -- sonde de livraison dans la voie --belt (claim pose par le coordinateur au dispatch)
[RELEASED] lane myia-ai-01:CoursIA-2 -- re-attribution par le coordinateur : deux PRs ouvertes de myia-po-2026:CoursIA (#19332, #19246) touchent deja scripts/pick_idle_grain.py, dont la voie --belt ; le grain va a cette lane pour eviter la collision.
[CLAIMED] lane myia-po-2026:CoursIA -- paths: scripts/pick_idle_grain.py, scripts/tests/test_pick_*.py -- sonde de livraison dans la voie --belt, apres #19332 et #19246 (claim pose par le coordinateur au dispatch)
Mesure complémentaire (coordinateur, 06/10 ~23:15Z) : tirage --belt --urns grain --grains 25 pour la lane po-2023:CoursIA-2, puis comptage des commentaires dont l'en-tête est [INFO] … candidate-delivered.
Contrainte de conception à respecter. Un marqueur n'est pas un verdict définitif. Le coordinateur ou l'adjoint peut rendre l'issue au tapis après vérification : c'est le cas de #17185 et #17498, où mon commentaire du 05/10 (« Urne delivered : ce n'est pas encore livré, je la rends au tapis ») suit le marqueur. Une sonde qui écarte toute issue marquée retirerait du tirage ces grains réels.
La sonde doit donc lire le dernier événement de la séquence. Un retour au tapis posé par une lane de DELIVERED_URN_LANES après le marqueur annule ce marqueur. Ce retour doit avoir une forme reconnaissable : à définir dans la PR, par exemple un [INFO] belt-return en tête de commentaire, et je m'y alignerai.
[DELIVERED] lane myia-po-2026:CoursIA — PR #19403 (tête a96467ebbd).
Les trois items d'acceptance : (1) retrait + remplacement dans l'urne grain, nommés en withheld cause LIVRAISON ; (2) l'urne delivered reste réservée DELIVERED_URN_LANES (untouchée) ; (3) budget de sondes = belt_check_window, fail-OPEN rapporté à l'épuisement.
Les deux contrôles : positif (retrait+remplacement, test dédié) et négatif (sans marqueur tirable ; mention discursive ne retire pas — has_delivered_signal passe à la grammaire _DELIVERED_MARKER_RE, la sous-chaîne nue retirait à tort sur « sans [INFO] candidate-delivered », voie pondérée comprise).
483 passed sur la famille picker. Détail et tableau de validation dans le body de la PR.
Activity
myia-ai-01 commentedon Oct 5, 2026
[CLAIMED] lane myia-ai-01:CoursIA-2 -- paths: scripts/pick_idle_grain.py, scripts/tests/test_pick_idle_grain*.py -- sonde de livraison dans la voie --belt (claim pose par le coordinateur au dispatch)
myia-ai-01 commentedon Oct 5, 2026
[CLAIMED-AMEND] lane myia-ai-01:CoursIA-2 -- paths: scripts/pick_idle_grain.py, scripts/tests/test_pick_*.py
myia-ai-01 commentedon Oct 5, 2026
[RELEASED] lane myia-ai-01:CoursIA-2 -- re-attribution par le coordinateur : deux PRs ouvertes de myia-po-2026:CoursIA (#19332, #19246) touchent deja scripts/pick_idle_grain.py, dont la voie --belt ; le grain va a cette lane pour eviter la collision.
myia-ai-01 commentedon Oct 5, 2026
[CLAIMED] lane myia-po-2026:CoursIA -- paths: scripts/pick_idle_grain.py, scripts/tests/test_pick_*.py -- sonde de livraison dans la voie --belt, apres #19332 et #19246 (claim pose par le coordinateur au dispatch)
myia-ai-01 commentedon Oct 5, 2026
Mesure complémentaire (coordinateur, 06/10 ~23:15Z) : tirage
--belt --urns grain --grains 25pour la lane po-2023:CoursIA-2, puis comptage des commentaires dont l'en-tête est[INFO] … candidate-delivered.Contrainte de conception à respecter. Un marqueur n'est pas un verdict définitif. Le coordinateur ou l'adjoint peut rendre l'issue au tapis après vérification : c'est le cas de #17185 et #17498, où mon commentaire du 05/10 (« Urne
delivered: ce n'est pas encore livré, je la rends au tapis ») suit le marqueur. Une sonde qui écarte toute issue marquée retirerait du tirage ces grains réels.La sonde doit donc lire le dernier événement de la séquence. Un retour au tapis posé par une lane de
DELIVERED_URN_LANESaprès le marqueur annule ce marqueur. Ce retour doit avoir une forme reconnaissable : à définir dans la PR, par exemple un[INFO] belt-returnen tête de commentaire, et je m'y alignerai.jsboige commentedon Oct 6, 2026
[DELIVERED] lane myia-po-2026:CoursIA — PR #19403 (tête
a96467ebbd).Les trois items d'acceptance : (1) retrait + remplacement dans l'urne grain, nommés en
withheldcauseLIVRAISON; (2) l'urnedeliveredreste réservéeDELIVERED_URN_LANES(untouchée) ; (3) budget de sondes =belt_check_window, fail-OPEN rapporté à l'épuisement.Les deux contrôles : positif (retrait+remplacement, test dédié) et négatif (sans marqueur tirable ; mention discursive ne retire pas —
has_delivered_signalpasse à la grammaire_DELIVERED_MARKER_RE, la sous-chaîne nue retirait à tort sur « sans [INFO] candidate-delivered », voie pondérée comprise).483 passed sur la famille picker. Détail et tableau de validation dans le body de la PR.
fix(picker,#19390): le tapis sonde candidate-delivered avant de servi…
fix(picker,#19390-suite): bulk GraphQL pour settle_belt_head -- 15-30…
fix(picker,#19390-suite): bulk GraphQL pour settle_belt_head -- 15-30…