Skip to content

fix(hierarchy,#16633): canonical git-aware walk for scan_md_hierarchy (H1-DEEP emitter) - #16722

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/16633-gitignore-aware-path-leak
Sep 18, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/16633-gitignore-aware-path-leak

Conversation

@jsboige

@jsboige jsboige commented Sep 18, 2026

Copy link
Copy Markdown
Owner

Grain: LIGHT/guards -- lane myia-po-2026:CoursIA -- prev: LIGHT/deaccent #16659

Defect (emetteur, pas .gitignore)

Le finding +1 H1-DEEP de #16633 porte sur Lean-14c-Conway-Game-of-Life-Golly_executed.ipynb — un artefact de run untracked présent dans un worktree de lane. scan_md_hierarchy.py marchait via son propre p.rglob('*.ipynb') : il comptait les fichiers ignorés/intrackables, exactement la dérive que le walker canonique (#8650) a été créé pour éliminer. Verbatim c.16633-1 : « un défaut de l'émetteur, pas un défaut du .gitignore ».

Fix

Le walk local des répertoires est routé vers notebook_walk.iter_notebooks (même pattern d'import que detect_papermill_path_leak.py:322) : tracked_only via git ls-files (drop des fichiers non trackés, règle *_executed.ipynb y compris), SKIP_DIRS canonique, filtre artefacts papermill. Hors repo git (fixtures tmp, tarball) : dégradation à l'ancien scan disque avec le warning stderr documenté (#8650) — comportement pré-fixe préservé hors repo, pas changé silencieusement.

Mesures

  • Baseline commitée auditée : md_hierarchy_baseline.json = 4 clés, 0 clé artefact → aucun drift-noise possible depuis le changement de walk (le gate drift ne lit que les clés des notebooks changés par la PR — un artefact untracked n'y figure jamais).
  • 2 tests d'intégration nouveaux : (1) repo git tmp — source trackée + jumelle _executed.ipynb non commitée → seule la source est rendue (fondateur reproduit et éteint) ; (2) hors repo git — les deux rendus (dégradation pinnée).
  • Suites : test_scan_md_hierarchy 33/33, adjacents walker/audit 90/90, smoke Sudoku 0/38.

Tranche de #16633 (artefact vs livrable)

ARTEFACT — copie _executed d'un run (convention #16657). La règle nommée .gitignore arrive via #16657 (OPEN, fichiers distincts : cette PR ne touche que l'organe + ses tests). Additif et indépendant, per c.16633-1 : les deux gestes ferment l'issue ensemble.

See #16633 (fermeture complète quand #16657 est mergé — règle nommée + émetteur conscient)

🤖 Generated with Claude Code

… notebook_walk

The local p.rglob('*.ipynb') counted untracked run artifacts
(*_executed.ipynb) present in lane worktrees: the +1 H1-DEEP drift of
#16633 targets an untracked Lean-14c Golly artifact — an EMITTER defect,
not a .gitignore defect (c.16633-1). The canonical walker (#8650) is
tracked_only via git ls-files + SKIP_DIRS + papermill artifact filter;
out-of-repo invocations (tmp fixtures, tarballs) degrade to the previous
disk scan with the documented stderr warning, so fixture-based tests are
unchanged. Committed baseline audited: 4 keys, zero artifact keys — no
drift-noise possible from the walk change. Two integration tests: tmp git
repo (tracked source + untracked _executed twin -> only source yielded)
and out-of-repo degradation (both yielded, old behavior pinned).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions github-actions Bot added the variation-tag-genre-offlist GENRE hors de l'enumeration variation-protocol §1 label Sep 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2026:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-18) :

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 variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

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

Labels

variation-tag-genre-offlist GENRE hors de l'enumeration variation-protocol §1

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants