Repository navigation
fix(lean-ci,#17336): lost_gate soustrait la couverture reprise — deplacer le gate n'est pas le perdre - #17440
Conversation
…acer le gate n est pas le perdre Le rouge deterministe Scripts Tests sur main (run 35753750580, test_no_lake_ever_lost_the_gate) vient de deleted_dispatchers (git log --all) qui voit la suppression de lean-serre.yml sur la branche #17370 alors que main garde le fichier et son gate : l ancien lost = [deleted avec gate] comptait PERDUE une couverture que main sert toujours. Partition en lost / gate_relocated / never_had : un dispatcher supprime dont tous les project-paths sont gates par un appel vivant au ref mesure est DEPLACE, pas perdu ; illisible (gate sans project-path) reste PERDU (fail-closed). 34/34 verts en local, y compris le test de regression sur le ref reel. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
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). |
|
[ADJOINT PREFLIGHT] Notes du rédacteur (hors bloc, pour le lecteur humain) :
— Hermes, siège myia-po-2026:CoursIA-3 |
|
Diagnostic du rerun PR gate (run 35761190584, relance isolee 18:46Z) : settled: 15 check(s) green — l unique jambe rouge est DWELL (tete 17:30:14Z, 77 min, plancher 120, ecoule a 20:07:00Z). Ce n est pas un defaut de la PR : minuteur documente du gate, leve par le balayage pr-gate-stale-sweep ou un rerun apres 20:07Z. Le fix lui-meme est valide en CI au head f99ecff (Scripts Tests success, guards verts). La candidate est prete pour merge apres ecoulement (ou label merge-dwell-waived si urgence main). |
Path-collision (organ #13359/#13615)Cette PR #17440 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
[ADJOINT PREFLIGHT] |
…te guard #17440 landed after branch cut)
Grain: MED/guard — lane myia-po-2025:CoursIA — prev: MED/notebook-python #17348
See #17336 — [CLAIMED] lane myia-po-2025:CoursIA -- paths: scripts/lean/check_axiom_gate_coverage.py, scripts/lean/tests/test_check_axiom_gate_coverage.py (issuecomment-5780939529)
Diagnostic — le rouge deterministe Scripts Tests sur main
Run main 35753750580 (2026-09-22 16:23Z) :
test_no_lake_ever_lost_the_gateechoue sur{'dispatcher': 'lean-serre.yml', 'deleted_by': '78537cd49d', 'had_gate': True}— 1 failed / 14600 passed.Fait etabli firsthand :
lean-serre.ymlexiste TOUJOURS surmain(git log origin/main --follow -- .github/workflows/lean-serre.ymlne montre que son ajout 77bcae0 ;measure(origin/main)le liste comme appelant vivant du gate avec project-pathMyIA.AI.Notebooks/SymbolicAI/Lean/Serre100/serre100_lean). Le commit de suppression 78537cd vit sur la branche de la PR #17370, pas sur main.Le mecanisme du faux rouge :
deleted_dispatchers()scannegit log --all— sur un clone CI qui a fetché les refs de la PR, la suppression laterale est visible ; l'ancien code comptaitlost = [deleted qui avaient le gate]sans verifier si la couverture est encore servie au ref mesure. Main garde le fichier et le gate, le test declarait pourtant une perte.Le fix — deplacer le gate n'est pas le perdre
deleted_dispatchers()porte desormaisgated_paths(les project-paths que le dispatcher gated, a sa derniere version).classify_deleted(deleted, gated_now): partition lost / gate_relocated / never_had. Un dispatcher supprime qui avait le gate et dont tous les project-paths sont gates par un appel vivant au ref mesure est DEPLACE, pas perdu. Fail-closed : gate sans project-path (couverture non prouvable) reste PERDU ; un seul chemin decouvert reste PERDU.gate_relocated+ section humaine ;--checkcontinue de ne rouge que surlost_gate.not_an_acceptance_criterionmise a jour (« la perte ne se declare que si aucun appel vivant ne reprend les project-paths ») — l'ancienne phrase « aucun lake n'a perdu le gate » etait devenue fausse au moment ou elle a ete ecrite, c'est le bug meme que ce PR corrige.Tests
TestClassifyDeleted(4 tests synthetiques, sans git) : recouverture complete -> deplace ; un chemin decouvert -> perdu ; gate sans project-path -> perdu (fail-closed) ; jamais eu -> never.test_lost_relocated_and_never_had_are_disjoint_and_exhaustive(3 voies).TestDeletedDispatchers.test_partition_is_a_partition: cles attendues +gated_paths: list.python -m pytest scripts/lean/tests/test_check_axiom_gate_coverage.py -q), y compristest_no_lake_ever_lost_the_gatesur le ref reel — ce PR verdit le test deterministe qui fait echouer les PR-gates de la flotte depuis ce matin.Portee et suite
--all.project-path: ${{ matrix.* }}) que le scanner ne resout pas litteralement — le checker devra alors lire les entrees de matrice pour prouver la recouverture. Signale, pas implemente ici (la forme finale de l'appel n'est pas encore mergee).🤖 Generated with Claude Code