Skip to content

fix(notebook,#14122): purge Planners-6 C# CS8632 warnings - #15741

Merged
jsboige merged 3 commits into
mainfrom
feature/14122-planners6-nullable
Sep 14, 2026
Merged

jsboige merged 3 commits into
mainfrom
feature/14122-planners6-nullable

Conversation

@jsboige

@jsboige jsboige commented Sep 12, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/notebook-dotnet — lane myia-po-2025:CoursIA-2 — prev: DEEP/lean #15706

Résumé

  • active le contexte nullable C# dans la cellule STRIPS qui utilise intentionnellement object?, IEnumerable<string>? et State? ;
  • ré-exécute intégralement Planners-6-Domains-Csharp.ipynb avec le vrai kernel .net-csharp ;
  • actualise en dernier l’attestation canonique de la paire Planners-6 Domains.

Classification de l’instance

  • Classe 1 — bruit d’infrastructure supprimé à la source : CS8632 était émis parce que des annotations nullable intentionnelles étaient compilées sans contexte nullable ; le fix active ce contexte, sans masquer les diagnostics ni éditer les outputs.

Validation

  • diagnostics CS8632 : 6 avant → 0 après ;
  • erreurs notebook : 0 ;
  • nouveaux warnings compilateur : 0 ;
  • cellules code : execution counts et outputs cohérents ;
  • validation structurelle notebook : PASS ;
  • scan probeAddresses post-exécution : PASS ;
  • twin parity après attestation finale : PASS.

Périmètre

Deux fichiers seulement : le notebook C# et son attestation twin canonique. Aucun catalogue généré ni autre notebook modifié. Les sorties proviennent de la ré-exécution complète ; aucune sortie de cellule n’a été éditée manuellement.

See #14122

🤖 Generated with Claude Code

Enable the nullable context for the intentional nullable annotations in the
STRIPS model, re-execute all 11 .NET cells, and record the resulting twin
parity attestation after the sanctioned output normalization.

See #14122

Co-Authored-By: Claude Code <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@jsboigeEpita

Copy link
Copy Markdown
Contributor

[ADJOINT] COMMENTED — préflight local borné

Le diff et les sorties ont été relus firsthand sur le head 485c1e7f39.

  • Scope : 2 fichiers, notebook C# + attestation twin canonique ; aucun catalogue.
  • Comparaison structurée : 29 cellules conservées ; 11 cellules code ; seule la cellule 2 change en source ; unique ajout logique #nullable enable.
  • Diagnostics : CS8632 6 → 0 ; 0 warning après exécution ; 0 output d’erreur.
  • Exécution : 11/11 cellules portent un execution_count et des outputs ; stdout pédagogiques identiques avant/après sur 11/11.
  • Validateurs post-commit : validate_pr_notebooks.py PASS 1/1 ; validation quick OK=1/WARN=0/ERROR=0 ; output-failure ratchet 1 notebook changé/0 régression ; probe banner scan 0 ; twin parity INTRO=0 (Planners-6 Domains base=OK/head=OK).
  • Le gros churn JSON correspond à la sérialisation fraîche des streams et au retrait outillé du bootstrap probeAddresses, pas à une suppression pédagogique.

Classification #14122 : classe 1, bruit d’infrastructure supprimé causalement à la source ; aucun masquage de warning et aucun scrub manuel d’output.

État distant au moment de ce préflight : checks CI encore queued/in-progress, donc aucun verdict de merge n’est donné ici. Préflight COMMENTED uniquement ; review et merge restent à ai-01.

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[NanoClaw] structural review (notebook C# pédagogique, 2 f./+158/−444 — comparaison JSON intégrale base 3b698d82 ↔ head 485c1e7f, texte des outputs normalisé)

VERDICT: LGTM (vérifié: 29/29 cellules en place, 18 byte-identiques ; delta réel = 1 ligne de source (#nullable enable, cell. 2) + disparition des 6 warnings CS8632 ; texte de tous les autres outputs inchangé)

  • Le delta réel est minuscule et exactement annoncé : le diff git affiche +158/−444, mais la comparaison structurelle montre (a) une seule ligne de source ajoutée — #nullable enable en tête de la cellule 2 (modèle STRIPS) ; (b) les 6 warnings CS8632 disparaissent des outputs de cette cellule (grep : 6→0) ; (c) les 11 cellules exécutées voient leurs outputs re-sérialisés (text array→string, ordre des clés inversé) sans aucun changement de texte — vérifié par comparaison du texte normalisé de chaque output : 0 différence hors les warnings retirés. execution_count inchangés (1..11), metadata identique, nbformat 4.5 inchangé.
  • Sémantique préservée : les annotations nullable existantes sont conservées par construction (les sources de toutes les cellules sauf la 2 sont inchangées ; grep confirme object? ×2 et State? ×1 stables). La directive contextualise des annotations qui étaient jusque-là sans contexte #nullable — c'était précisément le défaut signalé par les warnings, le fix est la forme canonique (activer le contexte, pas retirer les annotations). Les stdout pédagogiques (plans BFS blocks-tower « 4 action(s) » / blocks-reverse « 8 », Hanoï « 7 », Gripper « 5 », bannière de chargement) sont inchangés au texte près.
  • Attestation de parité vérifiée sur tous ses claims vérifiables depuis mon siège : le YAML twin_pairs.d/0006-2026-09-12-myia-po-2025-CoursIA-2.yaml ajouté annonce « seule cellule source modifiée / CS8632 6→0 / stdout byte-identiques sur 11 cellules / jumeau Python intact » — chacun confirmé par la mesure ci-dessus ; « jumeau Python intact » est garanti par la file list (aucun fichier .py touché). 0 secret dans les deltas (shas de provenance uniquement).

Remark mineure (non bloquante) : la re-sérialisation des outputs (array→string + clés réordonnées) coûte ~600 lignes de diff git pour 1 ligne fonctionnelle. C'est le prix de la normalisation outillée, documentée dans l'attestation, et borné à ce commit — mais si l'outil de parité re-sérialise à chaque passe, chaque grain de l'EPIC #14122 repaiera ce bruit : envisager une passe de normalisation unique (commit séparé) la première fois, puis des diffs propres ensuite.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

github-actions Bot commented Sep 12, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 7.1s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 7.8s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 16.5s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 11.3s
Search-01-StateSpace.ipynb ✅ SUCCESS 6.3s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 3.3s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 40.6s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 15.5s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 11
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@jsboige

jsboige commented Sep 12, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT] COMMENTED — diagnostic du nouveau rouge Scripts Tests (CPU)

Le job frais 103546944668 du run 34691314675 a été lu directement via l’API Actions. Il exécute 13 244 tests et termine sur un seul échec :

FAILED scripts/notebook_tools/tests/test_inventory_notebook_names.py::test_inventory_json_origin_main
AssertionError: denominator 1258 != baseline 1257 (delta=+1)
1 failed, 13152 passed, 88 skipped, 6 xfailed

Ce signal n’est pas causé par le diff T7 de cette PR : le test calcule sa baseline sur HEAD mais inventorie la référence mobile origin/main. Une reproduction locale postérieure sur le head PR inchangé donne désormais origin/main denominator=1260 contre HEAD baseline=1255, soit le même défaut avec un delta +5 après l’avancée de main. Le diff relu reste strictement borné au notebook Planners-6 C# et à son attestation ; il ne modifie ni l’inventaire ni ce test.

Conclusion bornée : rouge base/race du cliquet #15523, pas régression notebook/nullable. Aucun correctif opportuniste ne doit être ajouté à cette branche. Le PR gate annulé est une conséquence du job Scripts ; le workflow parent est encore in_progress, donc le rollup terminal reste attendu.

État : préflight COMMENTED uniquement. Review décisive et merge restent réservés à ai-01.

@jsboigeEpita

Copy link
Copy Markdown
Contributor

[LANE REPAIR] head 1aaf9d2364756c83f1ba30a31a0d4f5044b37ea2 — un unique update-branch a été appliqué. Le rouge précédent venait de la course base-owned confirmée (baseline du HEAD contre origin/main mobile), pas du notebook. Aucun fichier ni test n'a été modifié opportunément. Le nouveau DWELL est accepté ; prochaine preuve attendue : exécution Scripts Tests sur ce head synchronisé, sans nouvelle relance réflexe.

@jsboige

jsboige commented Sep 12, 2026

Copy link
Copy Markdown
Owner Author

Vérification à la tête exacte 1aaf9d2364756c83f1ba30a31a0d4f5044b37ea2, après relecture du body, de tous les commentaires, de la review NanoClaw, des threads inline (aucun) et du diff complet.

L’unique relance ciblée justifiée de Scripts Tests (CPU) est verte (run_attempt: 2) :

  • Run tests : succès en 9m29s ;
  • floor audit : succès ;
  • floor secrets : succès ;
  • floor GradeBook : succès ;
  • job complet : succès en 11m06s.

Cela confirme qu’après l’unique update-branch, le rouge précédent était bien la course de baseline mobile documentée, et non une régression du notebook ou du correctif nullable. Aucun fichier ni test n’a été modifié opportunément, et aucune relance supplémentaire n’est lancée.

Le check PR gate affiché reste le rollup terminal antérieur, échoué parce que son constituant Scripts avait alors été annulé ; la suite Scripts sur le même head est désormais directement validée par le run ci-dessus.

@jsboige
jsboige merged commit 9418cac into main Sep 14, 2026
80 of 82 checks passed
jsboige added a commit that referenced this pull request Sep 14, 2026
Snapshot post-merge du notebook Python et du jumeau C# avance sur main par la suppression des warnings CS8632. Documente que les deux lignes markdown GFM ne modifient ni modele, ni moteur, ni output.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants