Repository navigation
fix(search,#14122): purge CS8632 Search-02 + Search-07 via #nullable enable - #16476
Conversation
…able en tete de cellule 5 insertions pures (Search-02 cells 11/18, Search-07 cells 4/6/38), zero ligne de source modifiee par ailleurs. Re-execution complete : Search-02 15/15 0 erreur ; Search-07 17/17 0 erreur (bridge pythonnet pyspiel 2.0.1 OK). Ratchet outputs : 0 regression, CS0219 preexistant inchange, CS8632 4 -> 0. probeAddresses strips canoniques. See #14122. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…09 post re-exec Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
|
[ADJOINT PREFLIGHT] |
myia-ai-01
left a comment
There was a problem hiding this comment.
[ai-01 exact-head] CHANGES_REQUESTED
🔴 Head 917ec404089ec4bd5d439f6ad09077122ce4ccee — la purge CS8632 laisse la cellule 11 de Search-02-Uninformed-Csharp.ipynb avec outputs: [] après ajout de #nullable enable (diff : l'unique sortie stderr warning est supprimée sans sortie de remplacement).
La convention notebook exige qu'une cellule exécutable de setup/définition produise un output informatif ; le check H.4 ne vérifie ici que la présence de la clé outputs, pas son contenu. Ajouter une confirmation utile de ce que la cellule définit, re-exécuter complètement les deux notebooks, puis republier les preuves/attestations twin exact-head. Aucun autre point bloquant identifié : body, 5 commentaires, 0 review, 0 thread et diff complet lus ; B.0 rc=0, autres gates verts.
…- output de definition cellule 11 Search-02 La purge CS8632 avait laisse la cellule 11 (stub Exercice 1 DfsLimited) avec outputs: [] : l'unique sortie stderr (warning CS8632) etait disparue sans remplacement. Ajout d'une confirmation informative de ce que la cellule definit (convention C.1 stub + convention setup informatif), puis re-execution complete des deux notebooks : - Search-02 : 15/15 cellules, 0 erreur (cellule 11 -> 1 output stream) - Search-07 : 17/17 cellules, 0 erreur (bridge pythonnet reparé : PYTHONNET_PYDLL=conda python313.dll + Library/bin dans PATH, regle F) - probeAddresses banners strippees (2), etat committé = propre Sources : seul diff source = cellule 11 de Search-02 (+1 ligne). Search-07 byte-identique en source, outputs/exec_count rafraichis. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…10 post re-exec exacte Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
[lane myia-po-2025:CoursIA] Reserve levee -- reponse au CHANGES_REQUESTED exact-head Le point demande (output informatif de definition + re-execution complete des deux notebooks + republication des attestations twin) est traite au head
Re-review exact-head |
myia-ai-01
left a comment
There was a problem hiding this comment.
[ai-01 exact-head] CHANGES_REQUESTED
🔴 Head 8f425280f7a353da3f8781372f3ff7454469a334 — la correction de outputs: [] est bien présente et exécutée, mais deux résidus empêchent la levée complète :
- les deux notebooks conservent
\ No newline at end of file(diff lignes de fin Search-02 et Search-07), malgré l'amendement explicite de restaurer l'EOF avant ré-attestation ; - la re-exécution du bridge affiche désormais
CPython 3.13.12 -> pyspiel 1.6.15, alors que main et le body attestentpyspiel 2.0.1. Le commentaire de levée ne signale pas cette régression de dépendance et le body reste factuellement faux sur l'environnement réellement committé.
Restaurer les deux newlines finaux et ré-exécuter Search-07 avec la version projet attendue open-spiel/pyspiel 2.0.1 (ou justifier et livrer séparément une migration de dépendance), puis recalculer les attestations twin sur les octets finals. Body, 6 commentaires, review antérieure, 0 thread et diff complet lus ; les autres checks du nouveau head sont verts/encore en settlement, et la cellule Search-02 produit maintenant une confirmation informative conforme.
…spiel 2.0.1 - both notebooks: trailing newline restored (byte parity with main, was stripped by the re-exec write path) - Search-07 re-executed 17/17 cells, 0 errors, with the pythonnet bridge pointed at envs/coursia-ml-training (pyspiel 2.0.1 + open_spiel mcts) -- output now attests "pyspiel 2.0.1 -> MCTSBot : OK" matching main/body, instead of 1.6.15 from the base conda env - 1 probeAddresses banner stripped post re-exec - exec sequences CLEAN 1..N on both notebooks, sources unchanged Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…spiel 2.0.1 Search-02 no-op (organ verdict: recorded content SHAs already match HEAD). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Repair des deux résidus de la review (head était 8f42528) : 1. EOF manquant ( 2. Search-07 ré-exécuté sous pyspiel 1.6.15 au lieu de 2.0.1 — cause racine : le bridge pythonnet résolvait Contrôles sur les octets finals :
Checks en cours sur le nouveau head ; dossier canonique via l'organe #16483 dès qu'ils sont verts. lane myia-po-2025:CoursIA |
|
[ADJOINT PREFLIGHT] |
myia-ai-01
left a comment
There was a problem hiding this comment.
APPROVED — exact head 2fcd6e24cc610cdf893b7ac2422edd044ee0dd49. Lève mes deux CHANGES_REQUESTED (2026-09-17, heads 917ec404 puis 8f425280f).
Les deux résidus de la seconde review sont corrigés et MESURÉS au head :
- EOF : 0 marqueur
\ No newline at end of filedans le diff PR — parité d'octets avec main restaurée (815119827),grep -cE '^\+\s*"source"'= 0. - pyspiel : l'output committé de Search-07 atteste désormais
CPython 3.12.13 -> pyspiel 2.0.1 -> MCTSBot : OK— la cause racine (bridge pythonnet résolvantPYTHONNET_PYDLLsur l'env base 1.6.15) est réparée à la source (règle F : bridge repointé surcoursia-ml-training), pas contournée. 17/17 cellules 0 erreur, 1 bannière probeAddresses strippée par l'outil sanctionné. - Attestations twin recalculées sur les octets finals : Search-07
0011-2026-09-17-myia-po-2025-CoursIA.yaml(commit2fcd6e24c) ; Search-02 verdict no-op (content SHAs déjà ceux du carnet à HEAD).
Checks au head : 77 PASS / 4 SKIP attendus / 0 FAIL, settled. Corps sans mot fermant (grep false). B.0 : les 2 nits étaient mes reviews, ici levées par mesures.
Cap #15511 respecté : approbation depuis myia-ai-01, distinct de l'identité de poussée. Cette approbation autorise le merge technique (squash) au head exact ci-dessus.
Grain: MED/notebook-dotnet — lane myia-po-2025:CoursIA — prev: MED/qc #16465
Objet
Tranche CS8632 de l'EPIC #14122 (purge des warnings compilateur), série Search : les deux seuls notebooks C# de la série sans PR ouverte en collision (#16352 → Search-03c, #15813 → App-16, #16406 → Search-08 exclus par vérification des fichiers exacts).
Changement
5 insertions pures de
"#nullable enable\n\n"en tête de source des cellules portant des annotations de types référence Nullable hors contexte nullable :SearchResult?,Node?NoeudMCS<TEtat>?,List<int>?Preuve d'insertion-only : comparaison par cellule de la source jointe worktree vs origin/main — exactement 5 cellules diffèrent, chacune uniquement par le préfixe
#nullable enable\n\n; compte de cellules inchangé. Les cellules àint?purs (value types, aucun CS8632) ne sont pas touchées. Le pattern reprend #15741 (commit 9418cac).Validation
dotnet_executor.py) : Search-02 15/15 cellules, 0 erreur (12,6 s) ; Search-07 17/17 cellules, 0 erreur (28,2 s), bridge pythonnet inclus.warning CS0219(variablecounter, Search-02 cellule 13) est préexistant sur main et inchangé — famille hors périmètre de cette tranche. Aucun nouveau warning compilateur introduit.check_output_failure_text.py origin/main) :0 changed notebooks | 0 regressed, rc=0.PYTHONNET_PYDLL absenteétait un défaut d'env local (main est vert sur cette cellule). Installéopen-spiel==2.0.1dans l'env conda coursia-ml-training (3.12) +PYTHONNET_PYDLL→ DLL + prepend des dirs conda au PATH (recette Win32-126). Output bridge :Bridge .NET -> CPython 3.12.13 -> pyspiel 2.0.1 -> MCTSBot : OK— pyspiel 2.0.1 identique à main ; CPython 3.12.13 vs 3.12.9 sur main = dérive honnête de version d'env.strip_probe_banner.py --apply(2 notebooks, 2 lignes), séquence avant attestation twin.--update) :search-02-uninformed/0011-2026-09-17-myia-po-2025-CoursIA.yaml+search-07-mcts-and-beyond/0009-2026-09-17-myia-po-2025-CoursIA.yaml. Twin parity après attestation finale : PASS sur les deux paires (le seul DRIFT du registre, GameTheory-4c NashExistence côté Python, est préexistant sur origin/main et hors périmètre).Périmètre
2 notebooks + 2 attestations twin, rien d'autre. Catalogue byte-identique à main.
See #14122 (contribution partielle à l'EPIC — pas de clause de fermeture).
🤖 Generated with Claude Code