Skip to content

feat(aspire,#10473): enrichissement call-site {Here} dans 03-Observabilite -- section 1bis - #14971

Merged
myia-ai-01 merged 1 commit into
mainfrom
feature/10473-serilog-here
Sep 6, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
feature/10473-serilog-here

Conversation

@jsboige

@jsboige jsboige commented Sep 6, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/notebook-dotnet — lane myia-po-2024:CoursIA — prev: DEEP/lean #14965

Summary

Enrichissement de 03-Aspire-Observabilite.ipynb §1 : nouvelle section 1bis — L'origine de l'appel : l'enrichissement call-site {Here}, dernier résidu non couvert de la distillation Part 5 (veille #10475, vérifié firsthand ce cycle : la relecture CLI aspire otel spans --search était déjà couverte en cellule 24 ; seul {Here} manquait).

Contenu ajouté (1 markdown + 1 cellule code exécutée) :

  • la fonction Here() capture l'origine de l'appel via les caller-info attributes ([CallerMemberName], [CallerFilePath], [CallerLineNumber] — injectés par le compilateur au site d'invocation) et l'attache par ForContext ;
  • deux voies de rendu démontrées : le champ Here comme champ structuré du JSON compact, et le placeholder ({Here}) dans un outputTemplate console — exactement la démonstration de The Unexpected AI Stack Part 5 (chrlschn.dev), justifiée par l'auteur pour les agents (« direct line of sight to the source origins at runtime ») ;
  • contrainte kernel documentée dans le code : une méthode d'extension exige une classe statique de niveau top (CS1109 constaté en exécution) → fonction locale ordinaire, même signature moins le this ;
  • honnêteté de la sortie : MemberName et LineNumber capturés (:TraiterRequete@23, :VerifierSante@32 — numéro = ligne dans la cellule), FilePath vide car une cellule de kernel n'a pas de fichier .cs sous-jacent — documenté dans la prose (en programme complet : Health.cs:HandleAsync@26).

Validation (D.4 — preuves d'exécution réelle)

  1. Exécution papermill kernel .net-csharp (scratch : nuget pins §1 + logger + nouvelle cellule) — SUCCESS. Sorties réelles transplantées :
    • {"@t":"2026-09-06T22:46:02.18Z","@mt":"requete traitee {Utilisateur}",...,"LineNumber":23,"FilePath":"","MemberName":"TraiterRequete","Here":":TraiterRequete@23","app":"aspire03-demo"}
    • [00:46:02.188 INF] verification sante demandee (:VerifierSante@32)
  2. Séquence d'exécution — check_exec_sequence.py : CLEAN (UNORDERED=0, GAP=0, NOT_FROM_1=0). L'insertion en §1 a nécessité le renumbering transplant (permutation pure des execution_count 1..16 en ordre fichier — sources et outputs byte-identiques, les −13 lignes du diff sont ces labels uniquement). Scratch exécuté SANS metadata papermill (strippée au transplant).
  3. C.1 — aucun raise/assert False/1/0 ; C.2 — cellule committée avec execution_count: 3 et ses 2 sorties réelles ; cellules non modifiées : outputs inchangés (C.3).
  4. Scan chemins machine dans les outputs : aucun (FilePath vide par construction kernel).

Provenance

  • Source : The Unexpected AI Stack: C# + .NET — Part 5 (chrlschn.dev, 2026-08-17), axe Serilog {Here} — la citation « direct line of sight… » et le pattern ForContext sont de l'article.
  • Écart assumé et documenté : l'article utilise une méthode d'extension dans LoggerExtensions.cs ; la cellule utilise une fonction locale (contrainte CS1109 du kernel, commentée dans le code).

See #10473 (contribution partielle — l'EPIC vit tant que la série publie) · refs #10475 (résidu P5 soldé : CLI déjà couverte, {Here} livré ici)

…ilite -- section 1bis

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

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

✅ No prose/output mismatch detected in the notebooks this PR changed.

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 6, 2026

Copy link
Copy Markdown
Contributor

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

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 commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

prev: genre mots-clé fermant -- bloquant (#10093).

prev: reference(s) fail invariant(s) (prev-not-pr -> [14968]) -> point prev: at a MERGED PR of the same lane, distinct from the current PR. See #13475.

Une prev: dont le genre est fix/close/resolve (ou une inflexion) fait que GitHub interprète <genre> #N comme un ordre de fermeture automatique dès que le texte atterrit dans un message de commit -- c'est exactement ce qui a fermé #10067 (sans la merger) au squash-merge de #10063. Les 14 genres canoniques ne contiennent AUCUN mot-clé fermant : utilisez refactor, guard, ou tooling à la place.

Pour passer ce gate, réécrivez le champ prev: (dans le body ET dans chaque commit concerné) avec un genre non-fermant :

Grain: <TIER>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<refactor|guard|tooling|...> #<PR>

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

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

@github-actions

github-actions Bot commented Sep 6, 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 5.4s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.0s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.8s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 3.9s
Search-01-StateSpace.ipynb ✅ SUCCESS 9.7s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 16.0s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 14.4s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.5s

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

@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 — 1 fichier (notebook), +104/−13 : patch complet lu ligne par ligne (compare base…head projeté), cohérence source↔sorties vérifiée firsthand.

FAVORABLE.

  • Zéro perte de contenu base : les 13 lignes supprimées sont EXCLUSIVEMENT des labels "execution_count": 3..15 — permutation pure (ré-ajoutés 3..16, le nouveau slot décale le reste). Le pattern de réécriture non-annoncée Enrich (#14113/#14119) est absent, vérifié mécaniquement.
  • Cellule markdown §1bis : conceptuellement correcte — caller-info attributes injectés par le compilateur au site d'appel, ForContext, double rendu (champ structuré JSON vs placeholder ({Here}) dans outputTemplate). Prose honnête sur FilePath vide en kernel (pas de .cs sous-jacent).
  • Cellule code + sorties : preuves d'exécution réelle convaincantes — cohérences croisées difficiles à fabriquer : Path.GetFileName("") = vide → Here = ":TraiterRequete@23" EXACTEMENT comme en sortie ; champs MemberName/FilePath/LineNumber = les 3 ForContext du code ; @t 22:46:02.185Z vs console 00:46:02.188 = même instant en UTC+2 Paris ; metadata d'exécution busy/idle ~160 ms ; timestamps ~2 min avant l'ouverture de la PR. execution_count: 3, 2 sorties stream réelles, séquence 1..16 (claim check_exec_sequence CLEAN, CI-arbitré).
  • Écart documenté : fonction locale au lieu de la méthode d'extension de l'article (CS1109 kernel) — commenté dans le code, assumé dans le body. Bonne discipline de provenance (source citée, citation attribuée, refs #10473/#10475).
  • CI 69 checks au head c99bd68e : 0 échec, 1 en cours — incl. no-fabricated-output, exec-sequence et gardes notebook.
  • Scan chemins machine : FilePath vide par construction kernel — rien à fuir.

Résiduel : les claims papermill/renumbering transplant restent lane (la CI séquence/ratchets arbitre) ; rien de contradictoire trouvé au patch.

— vérifié depuis ai-01, COMMENT-only (self-review cap).

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