Repository navigation
fix(lean,#19733): Lean-21 cell[9] WSL/native subprocess fork - #19858
Conversation
Issue : #19733 (re-execution PR #19564 a echoue sur cell[9] subprocess.run(["lake", "env", "lean", str(tmp)], cwd=...) avec FileNotFoundError [WinError 2] sur une machine ou MIMO_LEAN_PATH est un chemin WSL -- le subprocess natif Win32 ne peut pas traverser un chemin /home/... ou /mnt/... ni trouver le binaire `lake` s'il vit en WSL plutot qu'en elan natif). Fix : ajouter une detection WSL dans le helper run_lean_snippet(cell[9]). La regex `^/[A-Za-z0-9._-]` matche les chemins absolus POSIX (/home/..., /mnt/..., /tmp/...). Si le match est positif, on detourne par `wsl -e bash -lc "cd \$LAKE_DIR && lake env lean \$WSL_TMP"` (patron canonique Lean-03b cell[11/13, dejà valide sur po-2024). Sinon, on garde le subprocess natif Win32 inchangé (cas canonique po-2026 avec lake elan natif). Acceptation #19733 : - [x] Cause identifiee (vs contournee) : chemin WSL vs subprocess natif. - [x] Fix livré en PR (cette PR). - [ ] Reproduction du cell[index] sur kernel canonique : reportee (lake env lean cold cache > 10 min sur cette machine, validation runtime de la branche WSL demande un test sur po-2024 ou un mock avec un chemin WSL monte en bind). Verifications pre-commit : - AST parse OK (code valide Python 3.10+). - Branche Windows : logique de detection validee en isolation (is_wsl_path("D:\...") == False, is_wsl_path("/home/...") == True). - Branche WSL : patron canonique copie de Lean-03b cell[11/13. Refs : #19733, #19564 (PR parent), Lean-03b cell[11/13 (patron). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
✅ No unanchored measurement claim detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams). Scope = notebooks CHANGED in this PR, not the whole corpus. The |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Path-collision (organ #13359/#13615)Cette PR #19858 (
|
|
[ADJOINT PREFLIGHT] Reserves nommees, verifiees firsthand -- elles ne bloquent pas, elles doivent se lire avant le merge. 1. La branche WSL est ecrite, jamais exercee au runtime. Mesure : la cellule code[9] change ( 2. Ordre de merge -- cette PR doit passer AVANT #19564. Mesure : 3. C.1/C.2 structurels : 13 cellules code, |
Grain: DEEP/lean -- lane myia-po-2026:CoursIA-2 -- prev: LIGHT/lean c.1435
Issue : #19733 (re-execution PR #19564 a echoue sur cell[9]
subprocess.run(["lake", "env", "lean", str(tmp)], cwd=...)avecFileNotFoundError [WinError 2]sur une machine ouMIMO_LEAN_PATHest un chemin WSL).Cause-racine documentee
Le
subprocess.run(["lake", ...])natif Win32 ne peut pas traverser un chemin WSL (/home/...,/mnt/...,/tmp/...) ni trouver le binairelakesi celui-ci vit en WSL plutot qu'enelannatif. Le cell[9] original n'a aucune detection : il assume queLAKE_DIRest un chemin natif Windows.Fix
Ajout d'une detection WSL dans le helper
run_lean_snippet(cell[9]): la regex^/[A-Za-z0-9._-]matche les chemins absolus POSIX. Si le match est positif, on detourne parwsl -e bash -lc "cd $LAKE_DIR && lake env lean $WSL_TMP"(patron canonique Lean-03b cell[11/13, deja valide sur po-2024). Sinon, on garde le subprocess natif Win32 inchange (cas canonique po-2026 avec lake elan natifC:\Users\jsboi\.elan\bin\lake.exe).La branche Windows est byte-egale au code d'origine (memes
cwd=str(LAKE_DIR), memes args, meme timeout). La branche WSL est ajoutee, jamais substituee.Acceptation #19733
lake env leancold cache sur po-2026 prend > 10 min (charge Mathlib complet), et la validation runtime de la branche WSL necessite un test sur po-2024 ou un mock avec chemin WSL. La logique de detection est validee en isolation (regex True/False OK) et la branche WSL suit le patron canonique Lean-03b (deja valide en production).Verifications pre-commit
is_wsl_path("D:\\...") == False,is_wsl_path("/home/...") == True).Perimetre
MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-21-MIMO-Detection-Flips.ipynbis_wsl_path, branche WSL dansrun_lean_snippet, docstring explicative)run_lean_snippetdefini en cell[9]Refs : #19733, #19564 (PR parent), Lean-03b cell[11/13 (patron canonique).
Co-Authored-By: Claude Haiku 4.5 (1M context) noreply@anthropic.com
🤖 Generated with Claude Code