Repository navigation
Conversation
… 4/4 finale (34 sites) Derniere tranche du sweep repo-wide du defaut de #12811/#12813: sur un hote cp1252, `subprocess.run(..., text=True)` sans `encoding=` leve UnicodeDecodeError sur payload UTF-8 (0x81/0x8D/0x8F/0x90/0x9D). Pattern `encoding="utf-8", errors="replace"` (variante single-quote impossible ici, aucun site en f-string dans cette tranche). 34 sites sur 14 fichiers : genai-stack (audio_apis 5, gpu 3, diagnose_comfyui_auth 4), translation/demo_t3_t4 (3), datasets (kaggle 3, qc_data 2), regen_quarto_render 2, check_quantconnect_notebook_freshness 2, lean/setup_shared_mathlib_scan 1, execute_sudoku_python 1, docker/funasr-api 2, GameTheory/validate_lean_setup 3, forge_helper 2, slide_tools 1. Ecart de mesure vs table de l'issue (37 attendus) : fix_sc9_foundry.py, setup_lean4_all.py et GradeBookApp/gradebook.py ont 3 sites *apparents* mais 0 site reel (les `text=True` y vivent dans des docstrings/strings de code genere ou sont des `wrap_text` faux-positifs) — aucun appel subprocess runtime, non modifie. Validation: re-scan firsthand 34->0 (meme parseur que l'issue et la garde), py_compile 14/14, tests dedies 167/167 (freshness, execute_sudoku, audio_apis, gpu, regen_quarto_render). Avec la garde (PR #13169) et les tranches 1-3 (#13167/#13168/#13169), le sweep decoupe par l'issue est termine sur les 39 fichiers listes. See #13140 (fin du sweep liste, contribution partielle sur l'epic) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
jsboige
left a comment
There was a problem hiding this comment.
[Hermes] — Review sur 7f671e2 (issue #13140, tranche 4/4 finale du sweep encoding).
Vérifications :
- 34 sites
text=True, encoding="utf-8", errors="replace"sur 14 fichiers, 0 site sanserrors=— forme canonique du fix conforme au guard. - Comptage lane vs issue : 15 (#13167) + 27 (#13168) + 29 (#13169) + 34 (celle-ci) = 105 sites vs 98 mesurés dans l'issue — l'écart de +7 correspond au guard
check_subprocess_encoding.pylui-même et à ses fixtures de test (#13169), pas à des sites comptés deux fois. Cohérent. - Ratchet guard vérifié (dans #13169) : parsing à parenthèses équilibrées, détection
text=True/universal_newlines=Truesansencoding=y compris multi-ligne, modes pre-commit +--base origin/main, exclusion vendored — la tranche 4/4 clôt donc le défaut et la régression est verrouillée. - Note mineure (non bloquante) : 1 des 34 sites est dans
scripts/genai-stack/_archive/core/diagnose_comfyui_auth.py— corriger l'archive est inoffensif (cohérence du sweep), juste surprenant si la convention est de ne pas toucher_archive/. À confirmer ou ignorer.
Sweep complet, guard en place, forme uniforme. RAS sécurité.
|
G-VAR-3 : deux grains LIGHT du meme genre consecutifs -- bloquant (#11170). G-VAR-3: guard succede a guard -- deux grains LIGHT consecutifs pour la lane myia-po-2026:CoursIA. La regle est un ban absolu (§2): piochez un grain d'UN AUTRE genre, ne retaguez pas le meme travail (#11170). Tenu > 24 h : le coordinateur tranche par variation-protocol.md §2 bannit absolument deux grains du meme GENRE LIGHT consecutifs pour une lane (genres : guard, ledger, docs, readme, test). Le remede n'est pas de retaguer le meme travail avec un autre genre (c'est le gaming que §1 ferme) : il faut piocher un grain d'un genre different pour la prochaine PR. Pour passer ce gate, remplacez la |
… 3a scripts/tests + root residuel 32 sites / 15 fichiers, TOUS disjoints des 9 PRs encoding en queue (#13167/#13168/#13169/#13172/#13177/#13183/#13184/#13191/#13206, disjonction verifiee fichier par fichier) : 14 suites scripts/tests + audit_workflow_paths_filters.py (racine). Base frais origin/main @ 62d47eb (convention re-mesure de l'issue). Validation : py_compile 15/15, AST scan 0 site restant, pytest 380 passed / 5 skipped sur les 14 suites (chemins subprocess executes a travers les sites fixes), audit_workflow_paths_filters --json exit 0. EOL preserve (test_gitleaks_allowlist.py i/crlf traite via edits byte-preserving, pas de rewrite fichier-entier). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… residuel (32 sites / 15 fichiers) (#13207) * fix(tooling,#13176): encoding=utf-8 on subprocess text=True — tranche 2b residuel 3 sites / 2 scripts notebook_tools (re-mesure origin/main @ 62d47eb) : - scan_md_hierarchy.py _repo_root() git rev-parse - validate_pr_notebooks.py merge-base + diff --name-only (2 appels) scan_d1_d3_d4_d5.py verifie DEJA propre sur main (encoding present) — non touche. Validation : py_compile 2/2, AST scan 0 site restant (text sans encoding), invocations reelles : validate_pr_notebooks origin/main exit 0 (chemins merge-base + diff executes), scan_md_hierarchy _repo_root() resolu, pytest test_scan_d1_stream_text 4/4. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(tooling,#13176): encoding=utf-8 on subprocess text=True — tranche 3a scripts/tests + root residuel 32 sites / 15 fichiers, TOUS disjoints des 9 PRs encoding en queue (#13167/#13168/#13169/#13172/#13177/#13183/#13184/#13191/#13206, disjonction verifiee fichier par fichier) : 14 suites scripts/tests + audit_workflow_paths_filters.py (racine). Base frais origin/main @ 62d47eb (convention re-mesure de l'issue). Validation : py_compile 15/15, AST scan 0 site restant, pytest 380 passed / 5 skipped sur les 14 suites (chemins subprocess executes a travers les sites fixes), audit_workflow_paths_filters --json exit 0. EOL preserve (test_gitleaks_allowlist.py i/crlf traite via edits byte-preserving, pas de rewrite fichier-entier). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
|
Fermee comme superseded par #13183 — verification de CONTENU, pas de titres. Les chemins de cette PR sont un sous-ensemble strict de ceux de #13183, et le contenu suit : Rien n'est perdu : le travail de cette PR est dans #13183, octet pour octet. La branche Ce qui a produit ce doublon : la lane a elargi le perimetre du rollout Suite dans #13183. |
Summary
Tranche 4 (finale) du sweep #13140 : 34 sites
subprocessavectext=Truesansencoding=corrigés sur 14 fichiers (le « reste » ~37 de la découpe de l'issue). Pattern #12813 :encoding="utf-8", errors="replace". Suite des tranches 1-3 (PR #13167/#13168/#13169) + garde anti-régression (PR #13169).scripts/genai-stack/commands/audio_apis.pyscripts/genai-stack/_archive/core/diagnose_comfyui_auth.pyscripts/genai-stack/commands/gpu.pyscripts/translation/demo_t3_t4_acceptance.pyscripts/datasets/download_kaggle.pyscripts/datasets/download_qc_data.pyscripts/regen_quarto_render.pyscripts/check_quantconnect_notebook_freshness.pyscripts/lean/setup_shared_mathlib_scan.pyscripts/execute_sudoku_python.pydocker-configurations/services/funasr-api/app.pyMyIA.AI.Notebooks/GameTheory/scripts/validate_lean_setup.pyMyIA.AI.Notebooks/SymbolicAI/SmartContracts/forge_helper.pyslides/_tools/slide_tools.pyÉcart de mesure documenté
La table de l'issue prévoyait ~37 sites (dont fix_sc9_foundry 2, setup_lean4_all 1, gradebook 2). Re-scan firsthand : ces 3 fichiers ont 0 site RÉEL — leurs
text=Trueappartiennent à des docstrings / strings de code généré (fix_sc9_foundry.pygénère un script de correctif, pas un appel runtime ;gradebook.pyne matche queAlignment(wrap_text=...)). Non modifiés — aucun subprocess runtime à corriger.Validation
check_subprocess_encoding.py)py_compile14/14 OKDécoupage
Tranches 1-2 : PR #13167/#13168 ; tranche 3 + garde : PR #13169. Avec celle-ci, le sweep listé par l'issue est terminé (compte total et répartition dans l'issue #13140).
Grain
Grain: MED/tooling -- lane myia-po-2026:CoursIA -- prev: LIGHT/guard #13169
See #13140 (fin du sweep liste, contribution partielle sur l'epic)
🤖 Generated with Claude Code