Repository navigation
Conversation
… automata de Search-10 sur PythonNetLoader Sudoku-05 ne cherchait son CPython qu'a deux endroits : PYTHONNET_PYDLL, et une DLL miniconda Windows nommee. Partout ailleurs, la cellule du pont mealpy s'arretait sur FileNotFoundException. Search-10 portait sa propre copie de la resolution portable (InitPythonFromInterpreter), mise en commun depuis par Config/PythonNetLoader.cs (#19609). Les deux ponts appellent maintenant le chargeur partage, avec le module dont ils ont besoin (mealpy, automata) ; using System.IO, devenu inutile, est retire. La prose des prerequis de Search-10 nomme le chargeur. Notebooks re-executes sous Linux (CPython 3.11.17). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VuVMY5fhzd5cQhzHiyvjka
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
…e retrait du schema markdown (lot C) Le retrait des champs execution_count/outputs des cellules markdown deplace le blob SHA de trois carnets appaires (GameTheory-03-Topology2x2 cote C#, GameTheory-14-DifferentialGames et Sudoku-05-PSO cote Python) : le gate Twin parity les verrait en DRIFT introduit (mesure locale, --per-pair contre origin/main). Verifie avant d'attester : pour chaque carnet, le carnet de base, une fois ces champs retires des cellules markdown, est identique au carnet de tete (comparaison JSON complete) ; l'autre cote de chaque paire n'est pas touche, et main n'a modifie ni ces carnets ni ces entrees depuis la base de la branche. sudoku-05-pso : attestation numerotee 0025, et non 0024, parce que la PR ouverte #20605 ajoute deja sudoku-05-pso/0024 ; deux 0024 apres les deux merges feraient rougir test_audit_index_unique_and_no_identical_duplicates_per_pair. Une ligne en tete de known_differences par paire, puis check_twin_parity.py --update --pair <nom> en dernier geste. Hors flotte : session cloud du mainteneur (exemption #17713). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA
|
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 |
|
Mise à jour du 2026-10-15 vers 15:25 UTC. Les deux causes hors diff décrites ci-dessous ( Historique ci-dessous, conservé tel quel. Mis à jour le 2026-10-15 vers 02:20 UTC. Tête :
Ce qui échoue : 1 test sur 18 985, Pourquoi ce n'est pas cette PR : ce diff touche deux carnets C# (Search-10, Sudoku-05) et deux attestations de parité jumelle, ni GenAI ni les traductions. La dérive vient de #20551, mergée sur Le correctif : #20589, encore ouverte, traduit les cellules manquantes et re-rend le jumeau anglais. Je ne la recopie pas ici : elle modifie le même fichier, et cette PR mêlerait alors GenAI et Search/Sudoku. Relance : une relance sur la base actuelle rejouerait le même échec. Une fois #20589 mergée, je rafraîchis la base de cette PR, ce qui relance
Generated by Claude Code |
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
…nt dd) sous Linux et macOS Search-07 et Sudoku-13 ne demarraient leur pont PythonNet que si PYTHONNET_PYDLL designait une DLL CPython, et levaient une exception sinon. Les deux ponts appellent maintenant Config/PythonNetLoader.cs avec le module dont ils ont besoin (pyspiel, dd). Sudoku-13 chargeait aussi Microsoft.Z3 depuis le .deploy du sous-module Z3.Linq, qui ne contient que libz3.dll : hors Windows, new Context() levait DllNotFoundException. Ses deux cellules Z3 gardent le resolveur .deploy sous Windows et passent ailleurs par Z3NativeLoader.cs (libz3 du paquet Python z3-solver, ou du systeme). La prose des prerequis nomme les deux chargeurs. Notebooks re-executes sous Linux (CPython 3.11.17, libz3 4.12.2.0). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VuVMY5fhzd5cQhzHiyvjka
Path-collision (organ #13359/#13615)Cette PR #20605 (
|
|
Cette PR depasse le seuil de couverture review (par defaut 300 additions) et n'a recu aucune review -- ni bot, ni humaine. Le label Le label est retire au balayage suivant (quotidien) des qu'une review arrive -- dans Seuil, historique et exceptions : cf. |
Hors flotte : PR de la session cloud d'agnosticisme du mainteneur (branche
claude/*, exemption #17713, rôle décrit dansdocs/reference/agent-cloud-agnosticisme.md). Pas de tagGrain:, pas de lane. See #17654, sous l'EPIC de parité Linux #10643. Suite de #19609, qui a introduitConfig/PythonNetLoader.cs.Summary
Quatre notebooks C# de Search et de Sudoku ne passent pas sous Linux sur
main, ou n'y passent que par une copie locale de la résolution du CPython. Mesures sur un clone vierge Linux, version demain(6c3b4e983pour Sudoku-05,dae4b07e4pour les autres), avec les modules Python installés dans l'environnement actif etPYTHONNET_PYDLLnon défini :mainFileNotFoundException: Aucun CPython avec mealpy trouve. La cellule ne cherche son CPython qu'à deux endroits,PYTHONNET_PYDLLetC:\ProgramData\miniconda3\python313.dll.InvalidOperationException: Variable d'environnement PYTHONNET_PYDLL absente.DllNotFoundException: Unable to load shared library 'libz3'. Le.deploydu sous-module Z3.Linq ne contient quelibz3.dll. Plus loin, le pont dd exige aussiPYTHONNET_PYDLL.InitPythonFromInterpreter, que le chargeur partagé de #19609 a mise en commun.Changes
Ponts PythonNet (4 notebooks). Dans chaque cellule pont, la résolution est remplacée par :
Les modules demandés sont
mealpy(Sudoku-05),automata(Search-10),pyspiel(Search-07) etdd(Sudoku-13). Le reste de chaque cellule est inchangé : instance, scope Python, budget, graines.Le chargeur prend
PYTHONNET_PYDLLs'il est défini. Sinon, il cherche dans les installations standard de Windows (dontC:\ProgramData\miniconda3, que l'ancienne liste de Sudoku-05 nommait), puispython3etpythonduPATH, en retenant le premier interpréteur qui importe le module. Si aucun ne convient, il lève une erreur qui dit quoi installer ou définir.using System.IO;ne sert plus dans les cellules de Search-10, Sudoku-05 et Sudoku-13 et en est retiré.Z3 de Sudoku-13 (cellules 18 et 48). Les deux cellules chargent
Microsoft.Z3depuis le.deployde Z3.Linq. Sous Windows, elles gardent leur résolveur, qui prendlibz3.dlldans ce dossier. Ailleurs, elles appellentZ3NativeLoader.Register(SymbolicAI/SMT/Z3-API/Z3NativeLoader.cs, déjà utilisé par Sudoku-12, Search-10 et SC-04), qui charge lalibz3du paquet Pythonz3-solver, deZ3_LIBRARY_PATHou du système.Limite connue, inchangée : sous macOS Intel,
Z3NativeLoaders'en remet à la bibliothèque native du paquet NuGet, absente quandMicrosoft.Z3vient du.deploy. Sudoku-13 n'y passait pas avant cette PR et n'y passe toujours pas.Prose.
RECOVERABLE-USER-HANDpasse de « Partiel : l'utilisateur doit définirPYTHONNET_PYDLL» à « Non : il suffit qu'un CPython installé importepyspiel».Z3NativeLoader.csetPythonNetLoader.cs.Allègement déclaré (ratchet
Source-collapse, advisory). La cellule pont de Search-10 (8dc1e652) perd 2,7 k caractères (36 %). C'est la copie d'InitPythonFromInterpreter, déplacée dansConfig/PythonNetLoader.cs, un autre fichier.Registre de parité jumelle : les quatre paires (Search-07 MCTS-And-Beyond, Search-10 SymbolicAutomata, Sudoku-05 PSO, Sudoku-13 SymbolicAutomata) reçoivent chacune une attestation
--update --by claude-cloud:hors-flotte, posée après les strips outillés.Le diff compte 8 fichiers : 4 notebooks et 4 attestations.
Diagnostic dérive
Exécutions sous Linux, dotnet-interactive 1.0.712001, CPython 3.11.17 d'un environnement virtuel (mealpy 3.0.2, automata-lib, open_spiel 2.0.1, dd 0.6.0),
PYTHONNET_PYDLLnon défini. MetaGeneticSharp construit en local au commit épinglé (2b21a6a). Pour Sudoku-13,Z3_LIBRARY_PATHdésigne lalibz3.sodez3-solver==4.12.2.0, la version duMicrosoft.Z3.dlldu.deploy.mainComparaison cellule par cellule avec
main, sur le texte des sorties :CPython 3.11.17, contre3.11.15dans l'exécution Linux committée.action = 4du pont OpenSpiel. Changent les temps (cellules 9, 12, 22, 26, 41) et la version du pont :CPython 3.11.17au lieu de3.12.13.CPython 3.11.17 … [GCC 13.3.0]au lieu de3.13.12 | packaged by Anaconda … [MSC v.1942 64 bit (AMD64)]). Sous Linux, l'annexe S10 n'imprime plus(resolver libz3 deja pose par la cellule de chargement Z3 …):Z3NativeLoaderréutilise son résolveur sans message, et cette ligne reste celle de la branche Windows.CPython 3.11.17 … [GCC 13.3.0], contre3.13.5 | packaged by Anacondasur la base Windows. Avec les mêmes graines, les conflits résiduels sont 7 / 8 / 10 (seeds 42 / 7 / 99), contre 7 / 6 / 5 sur la base. La cellule d'interprétation qui suit le prévoit déjà : les flux RNG de l'interpréteur embarqué divergent malgré des seeds identiques, et elle annonce « 5 à 10 conflits résiduels » côté pont, fourchette que les deux exécutions respectent.Disqualified, temps au plafond de 15 s. La cellule 15 imprime davantage de lignes de progression (3,3 k caractères contre 0,6 k) : ses tentatives parallèles écrivent dans le même flux, et cette machine en enchaîne plus avant le plafond.check_output_flood.py: 0 regressed.\r\n, celles-ci en\n.strip_probe_banner.pylaisse le reste du script d'amorçage (dotnet-interactive-this-cell-$CACHE_BUSTER$) une fois les lignesprobeAddressesretirées, comme dans Fix(notebooks): pont pysat de SocialChoice-01 C# sous Linux et macOS, ponts GT-06/07/13/17 et SC-04 sur PythonNetLoader #20566 et Fix(notebooks): ponts mealpy de MGS-22 a MGS-30 sous Linux et macOS (PythonNetLoader) #20604. 0 adresse IP et 0 signature de bannière.language_info.versionde Search-07 : vide surmain,13.0après exécution, comme sur les trois autres notebooks. C'est ce que relèvecheck_kernel_drift.py.Prose contre sorties, base contre tête :
check_markdown_claims_output.py4 → 4 (Search-10), 0 → 0 (Sudoku-05), 8 → 6 (Search-07), 5 → 5 (Sudoku-13) ;check_stale_claims.pyetcheck_factual_mislabel.py0 → 0 sur les quatre ;check_machine_dep_timing.py0 → 0 : aucune prose ne fige un temps.Causes :
libz3, objet de la PR. Verdict CAUSE_FIXED.Aucune sortie n'a été touchée à la main.
Verdict SOTA : SOTA-OK. Les vrais mealpy, automata-lib, OpenSpiel, dd, Z3 et MetaGeneticSharp s'exécutent ; rien n'est substitué. Organe-first : rien n'est réimplémenté, quatre résolutions cèdent la place au chargeur partagé, et Sudoku-13 rejoint le chargeur Z3 de la série Z3-API.
Signalé
execution_count/outputsde cellules markdown dansSudoku/Sudoku-05-PSO-Python.ipynb, le jumeau Python de Sudoku-05. Ce diff ne touche pas ce fichier. Si fix(notebooks,#20167): retire execution_count/outputs des cellules markdown (lot C) #20595 merge avant, l'attestationsudoku-05-psoposée ici enregistre l'ancien SHA du jumeau Python ; je la reposerai alors après rafraîchissement de la base.Search/Part1-Foundations/Search-07-MCTS-And-Beyond.ipynb, le jumeau Python de Search-07 : même conséquence pour l'attestationsearch-07-mcts-and-beyond.display_datavide de la première cellule de code de Search-07 et de Sudoku-13. Ces notebooks ré-exécutés n'en portent plus, donc la PR qui merge en second garde la version de la tête. Le recouvrement se limite à cette sortie.Review Checklist
validate_pr_notebooks.py: PASS (4/4) ;check_output_failure_text.py,check_output_flood.py: 0 regressed ;check_output_collapse.py: 0 flagged ;check_source_collapse.py: 1MAGNITUDE(Search-10), justifié ci-dessus ;check_kernel_drift.py: Search-07'' -> '13.0', documenté ci-dessus ;check_papermill_ratchet.py: 0 regression ;check_prose_quantitative_claims.py --diff … --strict: OK ;check_cell_source_parses.py --target-py 3.12 --pr-diff: 0 finding ;check_twin_parity.py --per-pair --check: 157 paires OK, INTRO=0 ;--verify-recorded-sha: les quatre paires OK, le seulMISMATCHrestant porte sur App-10 Portfolio, que ce diff ne touche pas ;check_twin_index_collisions.py --head HEAD: OK ;check_split_reading_cells.py,check_interp_positioning.py,strip_machine_paths.py --scan,detect_bare_cross_dir_load.py --check: 0 sur les 4 ;scripts/check_docs_links.py --check: 0 nouveau lien cassé ;detect_organ_duplication.py: CLEAN.notebook_tools.py execute <nb> --kernel .net-csharp, 4 exécutions sur 4 au bout, 0 erreur. Puisstrip_probe_banner.py --applyetscrub_papermill_paths.py --apply.PYTHONNET_PYDLLdéfini, la bibliothèque désignée est chargée comme avant. Sans la variable, le chargeur parcourt les installations standard, dontC:\ProgramData\miniconda3. Sous Windows, les cellules Z3 de Sudoku-13 gardent leur résolveur.deployà l'identique. Je l'ai déduit du code, sans l'exécuter sous Windows ni sous macOS.InitPythonFromInterpreter,dllCandidatesniRuntime.PythonDLLdans les quatre notebooks (git grep).Anti-regression
Notebook-specific
raise NotImplementedError/assert False/1/0introduit.execution_countet des sorties cohérentes.Test plan
Sur Linux ou macOS, avec .NET,
dotnet-interactive 1.0.712001, unpython3duPATHqui importe mealpy 3.0.2, open_spiel, dd 0.6.0 etz3-solver==4.12.2.0, et les sous-modules initialisés (git submodule update --init --recursive, puisdotnet build MyIA.AI.Notebooks/Search/MetaGeneticSharp/src/MetaGeneticSharp.Domain/MetaGeneticSharp.Domain.csproj) :Sudoku-13 doit afficher
Z3 charge … Version Z3 4.12.2.0, puisPont PythonNet : .NET -> CPython … -> dd.autoref.BDD. Search-07 doit afficherMCTSBot … action = 4. Surmain, ils s'arrêtent respectivement surDllNotFoundException: … 'libz3'et surPYTHONNET_PYDLL absente.Environnement de mesure : conteneur Linux x64, 4 threads, clone vierge, hors flotte.
🤖 Generated with Claude Code
https://claude.ai/code/session_01VuVMY5fhzd5cQhzHiyvjka
Generated by Claude Code