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(coordination): post_dossier refuse de refuter un dossier BLOCKED pose par une lane a l'arret #19420
scripts/coordination/post_dossier.py, garde n°6 (anti-double-stamp, l. 278-288), refuse tout dossier d'une lane tierce des que le gate rend 0 ou 3 avec un dossier intact d'une autre lane. Un re-stamp n'est licite que pour la lane qui a pose le dossier en place.
Le garde ne distingue pas deux cas :
rc 0 (READY intact) : un second tampon n'apporte rien et peut ouvrir une guerre de dossiers. Le refus est juste.
rc 3 (BLOCKED intact) : le motif atteste peut etre perime a la meme tete, par exemple des checks rouges devenus verts. Si la lane qui a pose le dossier BLOCKED est a l'arret, plus personne ne peut le refuter. La PR reste gelee indefiniment.
Mesure (06/10)
La lane adjointe myia-po-2025:CoursIA-2 est a l'arret. Elle a pose des dossiers BLOCKED (motif : checks) sur la pile Komlos #19070, #19078, #19081, #19084 et #19087. Sur #19070, les checks sont verts a la tete 6bcd4f3379. Le secretariat myia-po-2026:CoursIA-3 a tente un re-stamp tiers, avec et sans supersedes ; le poster le refuse : anti-double-stamp: gate rc 3 with an intact dossier by lane 'myia-po-2025:CoursIA-2'.
Le meme cycle, sur #19139 et #19145, le gate a accepte un dossier tiers READY qui portait supersedes: N et un supersedes-why mesure contre un dossier BLOCKED anterieur. Il n'a donc pas besoin d'etre change. Seul le poster bloque.
Correctif propose
Dans post_dossier.py, sur rc 3 seulement : accepter le dossier d'une lane tierce si et seulement si il porte supersedes pointant le dossier BLOCKED en place et un supersedes-why non vide. Le gate juge ensuite la refutation, comme il le fait deja pour la contradiction muette (#18934).
rc 0 : refus inchange.
rc 3 sans supersedes : refus inchange.
Aucun gate de merge n'est desserre : le dossier tiers doit toujours passer le gate a la tete exacte.
Acceptance
Test : rc 3 + dossier tiers avec supersedes et supersedes-why -> POST autorise.
Test : rc 3 + dossier tiers sans supersedes -> refus inchange.
Test : rc 0 + dossier tiers (avec ou sans supersedes) -> refus inchange.
Constat
scripts/coordination/post_dossier.py, garde n°6 (anti-double-stamp, l. 278-288), refuse tout dossier d'une lane tierce des que le gate rend 0 ou 3 avec un dossier intact d'une autre lane. Un re-stamp n'est licite que pour la lane qui a pose le dossier en place.Le garde ne distingue pas deux cas :
Mesure (06/10)
La lane adjointe
myia-po-2025:CoursIA-2est a l'arret. Elle a pose des dossiers BLOCKED (motif : checks) sur la pile Komlos #19070, #19078, #19081, #19084 et #19087. Sur #19070, les checks sont verts a la tete6bcd4f3379. Le secretariatmyia-po-2026:CoursIA-3a tente un re-stamp tiers, avec et sanssupersedes; le poster le refuse :anti-double-stamp: gate rc 3 with an intact dossier by lane 'myia-po-2025:CoursIA-2'.Le meme cycle, sur #19139 et #19145, le gate a accepte un dossier tiers READY qui portait
supersedes: Net unsupersedes-whymesure contre un dossier BLOCKED anterieur. Il n'a donc pas besoin d'etre change. Seul le poster bloque.Correctif propose
Dans
post_dossier.py, sur rc 3 seulement : accepter le dossier d'une lane tierce si et seulement si il portesupersedespointant le dossier BLOCKED en place et unsupersedes-whynon vide. Le gate juge ensuite la refutation, comme il le fait deja pour la contradiction muette (#18934).supersedes: refus inchange.Acceptance
supersedesetsupersedes-why-> POST autorise.supersedes-> refus inchange.supersedes) -> refus inchange.