Skip to content

fix(notebook-dotnet,#14122): tranche CS8632 Planners -- #nullable enable + re-exec .NET (3 carnets) - #18850

Merged
myia-ai-01 merged 2 commits into
mainfrom
fix/planners-cs8632-warnings
Oct 2, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
fix/planners-cs8632-warnings

Conversation

@jsboige

@jsboige jsboige commented Oct 2, 2026

Copy link
Copy Markdown
Owner

Grain: MED/notebook-dotnet — lane myia-po-2023:CoursIA — prev: DEEP/qc #18623

Summary

Tranche CS8632 (famille 3 du census #14122) — série Planners : #nullable enable en tête des 4 cellules fautives (annotations ? sur types référence = warning CS8632 sans contexte nullable), re-exécution .NET Interactive complète.

Cellules corrigées

Carnet Cellule Annotation fautive
Planners-1-Introduction-Csharp c12 (exec 4) (string? a, string? b, string? state) tuple
Planners-5-Heuristics-Csharp c24 (exec 12) Func<STRIPSProblem, HashSet<string>, int>?
Planners-7-OR-Tools-Csharp c4 (exec 2) public int[,]? BestStart / BestEnd
Planners-7-OR-Tools-Csharp c15 (exec 6) public static int[]? Solve(...)

Pattern déjà éprouvé : Planners-3 c5 (tranche antérieure). Les int?/bool? (types valeur) des cellules d'exercice sont légaux sans contexte — non touchés.

Preuves de validation (C.2 / H.3)

  • Re-exec .NET Interactive locale kernel .net-csharp, papermill end-to-end rc natif=0 sur les 3 carnets
  • 0 warning CS résiduel (8 CS8632 levés), 0 erreur d'exécution, 0 cellule sans execution_count (H.3)
  • strip_probe_banner.py --apply systématique post re-exec (9 points/carnet)
  • Pre-commit : gitleaks + probeAddresses + H.3 + source-list-newlines Passed

Environnement — Stop & Repair (règle F)

Les Tranches 2 de P-1/P-5 dépendent de l'API Fast Downward (localhost:8200). Le conteneur fast-downward était Exited (137) 4 days ago (kill disque) alors que le daemon tournait — redémarré via docker start, Up (healthy), port 8200 HTTP 200. Aucun contournement : le service est le vrai outil.

Incident méthode (documenté pour le reviewer)

Premier run papermill de P-1/P-5 avait échoué (connexion 8200 refusée) et injecté 2 cellules d'erreur par carnet — masqué par un | tail -3 (rc de tail, pas de papermill). Détecté par le diff de séquence de cellules (+2 markdown), retiré en raw-text, re-exécuté avec le service up. Leçon existante pipe-masks-rc violée puis rattrapée dans le même cycle.

See #14122

🤖 Generated with Claude Code

…ble sur 4 cellules fautives (3 carnets)

- P-1 c12, P-5 c24, P-7 c4+c15 : insertion de '#nullable enable' en tete de
  source (annotations '? sur types reference = CS8632 sans contexte nullable)
- Re-exec .NET Interactive complete locale (kernel .net-csharp), C.2 outputs
- Pre-requis env : conteneur 'fast-downward' (Exited 137 depuis 4j) redemarre
  via 'docker start' -- Tranches 2 P-1/P-5 dependant de localhost:8200 (regle F)
- 0 warning CS residuel, 0 erreur, 0 cellule sans execution_count (H.3)
- strip_probe_banner --apply systematique post re-exec

See #14122

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Oct 2, 2026
@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions

github-actions Bot commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 3.5s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.5s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.0s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 3.9s
Search-01-StateSpace.ipynb ✅ SUCCESS 2.7s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.0s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 16.7s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.7s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 8.9s

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

@github-actions

github-actions Bot commented Oct 2, 2026

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 Oct 2, 2026

Copy link
Copy Markdown
Contributor

✅ No unanchored measurement claim detected in the notebooks this PR changed.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

✅ 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 factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

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

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 3
  • Code cells validated: 38
  • 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)

@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.

VERDICT: LGTM — event APPROVE

Tranche CS8632 Planners (census #14122) : change ciblé, honnête et vérifié.

Preuve-vive firsthand au head ba1685af (les 3 carnets à l'état post-PR) :

  • Planners-1-Introduction-Csharp.ipynb : 0 occurrence CS8632 dans les outputs committés, #nullable enable × 1 ✓
  • Planners-5-Heuristics-Csharp.ipynb : 0 occurrence CS8632, #nullable enable × 1 ✓
  • Planners-7-OR-Tools-Csharp.ipynb : 0 occurrence CS8632, #nullable enable × 2 (2 cellules fautives — cohérent avec le double avertissement relevé dans l'output pré-PR) ✓

Lecture du diff substantiel (hors bruit métadonnées papermill/iopub) :

  • 3 ajouts #nullable enable\n en tête des cellules fautives (un par carnet), strictement alignés sur la liste du body (c12 tuple (string? a, ...), c24 Func<...>?, c×2 Planners-7).
  • Suppression des 4 blocs stderr portant les warnings CS8632 — légitime puisque la cause (annotation ? hors contexte nullable) est supprimée à la source.
  • Normalisation input_path/output_path papermill vers chemins repo-complets (hygiène, pas de substance).
  • 0 secret, 0 path leak, 0 réécriture de prose pédagogique.

Le diff est volontairement mince : il ne prétend pas restructurer les carnets, juste fermer la famille 3 du census. Rejets vides (Planners-7-OR-Tools-Csharp.executed.ipynb → .ipynb) corrigent aussi un artefact papermill.

Rien à redire.

[Hermes hermes-pr-review, cycle :13 02/10, host f6be46d1b7a3, sig=62a82ba9]

…ecars committes)

Le gate 'Twin parity audit (#8057)' a flague 3 DRIFT introduits par la PR :
la re-exec .NET + strip_probe_banner a deplace les blobs SHA des carnets C#.
--update --pair passe APRES les strips (ordre #8957), sidecars ajoutes au
commit pour que le CI les voie.

See #14122

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@jsboige

jsboige commented Oct 2, 2026

Copy link
Copy Markdown
Owner Author

[INFO] twin-parity réparé — le gate Twin parity audit (#8057) avait flagué 3 DRIFT introduits par cette PR (les blobs SHA des carnets C# ont bougé avec la re-exécution .NET et le strip_probe_banner). Réparation au commit 0cafb68 : check_twin_parity.py --update --pair sur les 3 paires (Planners-1/5/7), passé APRÈS les strips (ordre #8957), sidecars twin_pairs.d committés pour que le CI les voie. Vérifié localement : les 3 paires rendent OK.

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2023:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-10-02) :

G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@github-actions github-actions Bot added the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Oct 2, 2026
@jsboige

jsboige commented Oct 2, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18850
head: 0cafb68
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 13c68db3b2ec283364797a87bc98f295d6f9f0e6be92fa28a8034ad45f586d9d
diff-files: 6
diff-additions: 497
diff-deletions: 499
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

note: Premier dossier c364. fix(notebook-dotnet,#14122) tranche CS8632 Planners -- #nullable enable + re-exec sur 3 notebooks C# (Planners-1-Introduction, Planners-5-Heuristics, Planners-7-OR-Tools). 6 fichiers : 3 notebooks + 3 twin_pairs captures. Symetrique +497/-499 (refactor). Lane porteuse myia-po-2023:CoursIA (DIFFERENTE de ma lane :CoursIA-3), donc attestation tierce autorisee. Crible de fond : pas de cellule code hors notebooks, twin_pairs d'execution captures, pas de markdown-rendering touche. Checks : validate-notebooks success, B.0 rc=0, 1 review posee. Genre MED/notebook-dotnet OK pour le pool.

@jsboige

jsboige commented Oct 2, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18850
head: 0cafb68
complete: true
body: read
comments-reviewed: 10
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: d59cf6396c9c31ddc8ed2ce768df5947fe564ecaa77941c61884d4002a5bb34e
diff-files: 6
diff-additions: 497
diff-deletions: 499
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

note: Re-stamp c367 sur nouvelle tete 0cafb68 (dossier c364 emis sur a40b..., mort par evolution de la branche). fix(notebook-dotnet,#14122) tranche CS8632 (famille 3 du census) -- serie Planners : #nullable enable ajoute en tete des 4 cellules fautives (annotations ? sur types reference), re-execution .NET Interactive complete. 3 notebooks C# + 3 twin_pairs.yaml. Lane porteuse myia-po-2023:CoursIA (DIFFERENTE de ma lane :CoursIA-3). Crible de fond : pas de source collapse, diff symetrique 497+499-, preuves C.2/H.3 explicites (8 CS8632 leves, 0 erreur, papermill rc=0, strip_probe_banner applique, pre-commit passe). PR gate success a 20:08:47Z. MED/notebook-dotnet -> merge_ready eligible, dossier tiers debloque.

@myia-ai-01
myia-ai-01 merged commit eff1724 into main Oct 2, 2026
93 of 99 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants