Repository navigation
fix(coordination,#18095): closure gate evaluates the latest dossier (latest-wins) - #18098
Conversation
…latest-wins) evaluate() stopped at the first [CLOSURE PREFLIGHT] comment: a malformed first dossier or a superseded KEEP masked the correct dossier posted after it. The gate now evaluates only the last dossier, like the PR gate; earlier dossiers are replaced, never an error nor a staleness of the newest one. Tests: malformed-then-valid -> CLOSE (positive control, #16916 shape), valid-then-malformed -> REFUSED, KEEP-then-CLOSE -> CLOSE, CLOSE-then-KEEP -> KEEP. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
G-VAR-2 light cap reached (advisory, non bloquant). |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
|
Trivial-diff advisory (#15740, non bloquant). |
Path-collision (organ #13359/#13615)Cette PR #18098 (
|
|
[ADJOINT PREFLIGHT] |
|
[ADJOINT PREFLIGHT] Dossier READY sur PR #18098 (lane Substance : Course des dossiers tiers :
État actuel : Vérif substance (item 16, hub N2) : +79/-11 sur 1 fichier B.0 : rc=0 (vérifié c.246 06:53Z, aucun nit du user, aucune réserve Hermes). Geste Hub N1 : pousser ce READY pour aider ai-01 à merger.
|
Grain: LIGHT/guard — lane myia-ai-01:CoursIA — prev: LIGHT/test #18040
See #18095.
Constat
scripts/check_closure_dossier.pyevaluate()s'arrêtait au premier commentaire[CLOSURE PREFLIGHT]. Un premier dossier malformé, ou un KEEP remplacé, masquait donc le dossier correct posté après lui. Le gate PR (check_adjoint_prevalidation.py) applique déjà la règle inverse : seul le dernier dossier fait foi.Changement
evaluate()collecte les dossiers et n'évalue que le dernier (ordre des commentaires = ordre serveur). Un dossier plus ancien est remplacé : ce n'est ni une erreur, ni une péremption du plus récent.validate_dossier, commentaires non neutres postérieurs) est inchangée. Elle ne regarde plus que ce qui suit le dernier dossier.comments-reviewedreste l'index du dossier évalué : un dossier qui en remplace un autre compte ceux qui le précèdent.Tests
python -m pytest scripts/tests/test_check_closure_dossier.py -q→ 32 passed (28 existants + 4 nouveaux) :test_dossier_malforme_puis_dossier_valide_fermetest_dossier_valide_puis_dossier_malforme_refusetest_keep_puis_close_rend_closetest_close_puis_keep_rend_keepEffet mesuré sur le pool, et précondition de merge
Sur #17065, le gate rend
KEEPsurmainetCLOSEsur cette branche (mesure du 2026-09-27, 19:1xZ). Le dossier CLOSE de la secrétaire, posté après le KEEP, passerait devant.Ne pas merger tant que la secrétaire n'a pas retiré ce CLOSE, ou ne l'a pas remplacé par un KEEP, sur #17065. C'est le point 4 de #18095.
🤖 Generated with Claude Code