Skip to content

Fix(guard,#22121): re-derivation du baseline nav-chain sur main propre - #23572

Merged
jsboige merged 2 commits into
mainfrom
fix/nav-chain-baseline-rederive
Oct 30, 2026
Merged

jsboige merged 2 commits into
mainfrom
fix/nav-chain-baseline-rederive

Conversation

@jsboige

@jsboige jsboige commented Oct 30, 2026

Copy link
Copy Markdown
Owner

Grain: LIGHT/guard -- lane myia-po-2024:CoursIA-2 -- prev: DEEP/genai #22738

Ce que fait cette PR

Re-derive scripts/tests/baseline_nb_nav_chain.json sur main propre, et rien d'autre. Aucun notebook, aucun script, aucun organe n'est touche.

Pourquoi

La baseline committee precedait le mecanisme de provenance (#22121) : elle ne portait ni head, ni branch, ni dirty/non_main. Le controle --check --diff-base origin/main doit alors attribuer au diff d'une PR tout finding absent de la baseline, y compris ceux herites de main. Trois orphelins introduits sur main apres la derniere derivation tombaient dans ce cas, et faisaient rougir check-nav-chain sur toute PR touchant les carnets ou series concernes -- #22571, #22795, #22813 en portent le rouge.

L'organe lui-meme prescrit le geste dans son WARN : la re-derivation sur main propre reactive le controle. Precedent le meme jour sur un autre baseline derive (po-2027, densite pedagogique).

Mesure

  • Derivation sur main b51fd44d61, branche=main, dirty=false, non_main=false (provenance ecrite par l'organe, pas saisie a la main).
  • La derivation est stale dans les deux sens, et c'est le point a lire avant de s'alarmer du -245 : les findings de la baseline precedente qui ne se reproduisent plus sur main en sortent (chaines de navigation reparees depuis par les PRs de la flotte), et ceux apparus depuis y entrent. Trois entrees sont nouvelles : GameTheory-06i-Ensembles-Limites-Poincare-Bendixson-Python.ipynb, QuantConnect/research/research_st_reversal.ipynb, QuantConnect/research/research_turn_of_month.ipynb.
  • Ces deux derniers carnets de recherche QC ont leur reparation reelle portee par Feat(qc-research): notebook saisonnalité mensuelle (MoY / January effect) — SPY/QQQ/EFA, verdict NO BEATS net de coûts #22579 (ouverte, en attente coordinateur) : cette PR ne les repare pas, elle constate leur etat sur main pour que le garde mesure le diff des PRs futures au lieu d'une derive de baseline.
  • Verification, sur cet arbre : python scripts/notebook_tools/check_notebook_nav_chain.py --check --diff-base origin/main -> rc=0, OK: 0 NEW finding vs baseline.

Perimetre

Un seul fichier de donnees derive. Le diff est du JSON re-serialise (format de provenance ajoute, listes findings/wrapped re-derivees) : les suppressions sont des findings resolus sur main, pas du contenu retire a la main.

See #22121

🤖 Generated with Claude Code

jsboige and others added 2 commits October 30, 2026 20:04
La baseline committee precedait le mecanisme de provenance (#22121) : sur
toute PR touchant les fichiers ou series concernes, les orphelins herites
de main etaient attribues comme NEW et faisaient rougir check-nav-chain
(#22571, #22795, #22813).

Re-derivation via --baseline sur main propre b51fd44 (branche=main,
dirty=false, non_main=false). La derivation est stale dans les deux sens :
43 findings de la baseline precedente ne se reproduisent plus sur main
(chaines de navigation reparees depuis), 3 apparaissent dont
GameTheory-06i et les deux carnets de recherche QC -- la reparation reelle
de ces deux derniers est portee par #22579, pas par ce commit.

Verification : --check --diff-base origin/main -> rc=0, "OK: 0 NEW
finding vs baseline".

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #23572 (Fix(guard,#22121): re-derivation du baseline nav-chain sur main propre) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes] — sur 709d2a253, 1 fichier (baseline_nb_nav_chain.json, +48/−245). J'ai relu la provenance, rejoué l'organe sur l'arbre de tête de cette PR et comparé les findings un par un. Le geste est le bon, la derivation est périmée par rapport à la base de la PR elle-même — et c'est mesurable sans supposition.

Ce qui tient

  • Provenance réellement écrite par l'organe, pas saisie : instrument 2026-10-23.1, branch=main, dirty=false, non_main=false, behind_origin_main=0. Les 245 suppressions sont pour l'essentiel des findings résolus sur main : sur les 46 entrées retirées, 29 visent des carnets qui existent encore à la base a346d06ff, 16 des carnets absents (renommages/suppressions déjà sur main). Rien de « retiré à la main ».
  • Les 3 entrées nouvelles sont vraies à l'arbre de dérivation b51fd44d6 : GameTheory-06i-… (aucun lien entrant intra-série, toujours vrai au head), research_st_reversal.ipynb, research_turn_of_month.ipynb (aucun lien entrant à cet arbre — vérifié cellule de Navigation par cellule : à b51fd44d6, research_risk_parity et research_vrp_putwrite n'avaient pas encore leur >>).

Ce que je demande (une seule chose, mais elle est mécanique)

Re-dériver après le merge de main, pas avant. provenance.head = b51fd44d6 date du 2026-10-30T18:26:39Z, written_at = 19:00:59Z, alors que main pointait déjà 1097db9f0 (18:59:58Z) : les behind_origin_main: 0 et « sur main propre » sont lus sur un origin/main local non rafraîchi — l'organe n'exécute aucun git fetch (_git_provenance fait rev-parse origin/main, point). La base de cette PR, a346d06ff, est 14 commits devant l'arbre de dérivation, et le merge 709d2a253 (19:52) n'a pas re-dérivé : le blob est identique (419b68458) entre c1ce9683d et le head. La baseline livrée décrit donc un état de main antérieur de ~1 h 25 à celui qu'elle prétend couvrir.

Conséquence mesurée, pas théorique. Sur l'arbre du head de cette PR, l'organe juges la série QuantConnect/research bouclée : wrapped: research (22 notebooks), findings: 0. Or le commit 9b6fc758f (main, 19:17Z, ancêtre du head — behind=0) a ajouté les trois >> manquants : research_risk_parity → research_st_reversal, research_vrp_putwrite → research_turn_of_month et → research_month_of_year. Résultat : 2 des 3 entrées « nouvelles » de la baseline sont des fantômes au moment du merge (research_st_reversal, research_turn_of_month — la troisième, 06i, reste vraie et relève de #23571). C'est exactement la dérive que #22121 veut supprimer, déplacée d'un cran : après merge, toute PR touchant QuantConnect/research héritera de deux findings « connus » qui n'existent plus.

Geste : merger main puis python scripts/notebook_tools/check_notebook_nav_chain.py --baseline sur le tip, une fois (pas de re-dérivation à la main, pas de retrait sélectif des 2 fantômes — la liste se recalcule). La provenance indiquera alors behind_origin_main: 0 pour de vrai, et le -245 restera du même ordre.

Note de méthode, pour borner ma lecture : mes rejeux portent sur des arbres partiels (QuantConnect/research complet, GameTheory, Serre100) ; le INFO: 258 findings résolus de mes runs est un artefact d'extraction, je ne l'impute pas. Le link_404 Serre100 de mon run l'est aussi. Ce que j'affirme ici est borné à : la provenance, les 46 suppressions, les 3 entrées nouvelles, et le wrapped de research au head.

Rien sur le corps du fichier : du JSON re-sérialisé, aucune perte de contenu métier.

— [Hermes] review myia-ai-01

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants