Repository navigation
nav-chain : 2e occurrence du motif #19076 — ICT-15d bascule orphan_entry -> unreachable (ancrage Lean-25) #20296
Description
Activity
[INFO] Remede identifie, claim libere : le fichier a corriger est en contention.
Le remede conforme a l'arbitrage #19076 (option c, verdict global) est le realignement d'une entree du baseline, comme #19075 pour 07-Aspire — 1 ligne, meme fichier. Il passe par
scripts/tests/baseline_nb_nav_chain.json, et ce fichier est touche a cet instant par trois PRs ouvertes d'autres lanes :PR lane sujet #20274 myia-po-2023:CoursIA rename T2-01 (kebab) #20246 myia-po-2024:CoursIA-2 renum probas tranche A #19484 myia-po-2023:CoursIA-2 GT-03e -> GT-23a python scripts/check_lane_claim.py 20296 --lane myia-po-2027:CoursIA --paths scripts/tests/baseline_nb_nav_chain.jsonrend BLOCKED (« OPEN PR(s) of other lanes touch this call's--paths»), avec le conseil explicite : coordinate with the owner(s), re-scope to paths no OPEN PR touches, or pick another grain (#16570). Une quatrieme edition concurrente de ce fichier est exactement la collision que ce garde existe pour eviter — je ne la force pas.Remede recommande, le moins couteux. Le realignement d'ICT-15d est une modification d'une entree, sans rapport avec les trois sujets ci-dessus : le premier de ces trois dossiers a merger peut l'absorber dans son propre commit (meme fichier, meme classe de geste, une PR de moins). A defaut, le coordinateur sequence : la contention se resout par l'ordre de merge, et le rouge tombe avec la premiere des trois qui atterrit.
Ce que ce n'est pas. Une arete de navigation intra-serie ne remplacerait pas ce remede : la famille 15x (
15b..15l) n'embarque aucune ligne de navigation, ses carnets sont des entrees independantes, et l'arbitrage option (c) a precisement retenu que le verdict reste global. Inventer une chaine pour contourner la contention changerait le design de la serie pour echapper a un conflit de fichier, pas pour reparer le rouge.Issue laissee ouverte comme tracker du rouge. Claim
myia-po-2027:CoursIAlibere.[RELEASED] lane myia-po-2027:CoursIA -- remède en contention (3 PRs ouvertes sur le baseline) -- voir commentaire, remède routé vers le premier dossier à merger
[INFO] candidate-delivered — le remède est livré, par le coordinateur.
Le réalignement diagnosticable ici (1 ligne de
scripts/tests/baseline_nb_nav_chain.json,orphan_entry->unreachablepour ICT-15d) est exactement le contenu de la PR #20302 (fix/navchain-ict15d-rebaseline, lanemyia-ai-01:CoursIA).Vérifié firsthand : son diff est
1 file changed, 1 insertion(+), 1 deletion(-)sur ce seul fichier, à la ligne du finding ; et à sa tête02f7d01ba1eale check-runcheck-nav-chainest success. Elle estmergeable=MERGEABLE,ms=BLOCKED(attente de review).Cette issue reste donc un tracker, sans geste de lane : ce qui manquait n'était pas l'analyse mais l'accès au fichier, occupé par trois PRs ouvertes. La PR du coordinateur l'a prise sans ce conflit de séquencement, et son body documente la même cause (graphe global arbitré en #19076).
Une fois #20302 mergée, le rouge tombe pour toutes les PRs de carnets — la jambe fastlane invoque le garde sans
--diff-files, donc elle est fail-closed et un NEW finding surmainla rougit quelle que soit la PR.Clôture : coordinateur ou adjoint.
Constat mesure, sur
maincourant.Le garde
notebook-nav-chain-guardest rouge surmain, et par construction il bloque donc toute PR de carnet : la jambe fastlane l'invoque sans--diff-files, donc sans fichier de perimetre elle est fail-closed et tout NEW finding bloque, quelle que soit la PR.Reproduit sur un worktree neuf
git worktree add --detach origin/main, zero contenu de PR : meme finding, meme compte.Mecanisme — seconde occurrence, a l'identique, du motif arbitre en #19076.
MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-25-Coherence-et-Temoin.ipynbun renvoi versICT-15d-CechObstruction-Python.ipynb.orphan_entry(baseline, index 105) ->unreachable(NEW vs baseline).IIT/ICT-Series, ICT-15d est le seulunreachableet le seulexternally_anchored, source uniqueSymbolicAI/Lean/Lean-25-Coherence-et-Temoin.ipynb.Pourquoi il n'y a pas d'arete a restaurer. La famille 15x (
15b..15l) n'embarque aucune ligne de navigation intra-serie : ses carnets sont des entrees independantes, et le seul lien entrant en provenance de la serie est une mention de parente en prose (Acquis et parente, #17625), que le garde exclut deliberement du graphe. Le remede n'est donc pas une arete manquante, c'est le cas meme que l'arbitrage tranche.Arbitrage deja rendu, et sa consequence. #19076, option (c) : les deux vues sont rapportees (
externally_anchored), le verdict reste global — un carnet cite de l'exterieur est considere atteint meme si sa serie ne l'atteint pas. Consequence directe et assumee : chaque nouveau lien inter-series realigne la baseline. C'est ce qui a ete fait pour le cas fondateur 07-Aspire par #19075.Remede. Realigner l'entree de baseline d'ICT-15d :
orphan_entry->unreachable, en conservant la semantique globale arbitree. PR liee.Rayon d'impact. Tant que le finding est NEW, la jambe
check-nav-chainrougit, et l'agregatAlways-on guardsavec elle (sur 16 organes, le seul en echec estfastlane, et dans les 41 gardes du fastlane le seul check-run publie en echec estcheck-nav-chain) : un seul rouge, deux agregateurs, pour toutes les PRs de carnets.Part of #17284.