Skip to content

Fix(video,#24397): 02-5 — re-execution reelle LTX-2 + fixes source (liens 02-2, encoding UTF-8, polling 1500s) - #24680

Closed
jsboige wants to merge 8 commits into
mainfrom
fix/24397-ltx2-audiovisual-realgen
Closed

jsboige wants to merge 8 commits into
mainfrom
fix/24397-ltx2-audiovisual-realgen

Conversation

@jsboige

@jsboige jsboige commented Nov 4, 2026 •

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python — lane myia-po-2023:CoursIA-2 — prev: MED/notebook-python #24592

Summary

Volet 02-5 du grain #24397. Le volet 02-2 est porté par la PR #24415 (branche sœur fix/24397-ltx-generation-succession). Un seul carnet : MyIA.AI.Notebooks/GenAI/Video/02-Advanced/02-5-LTX2-Audiovisual.ipynb.

# Commit Contenu
1 1193d2b1d6 liens cliquables vers 02-2 (cellules 1 + 21) ; encoding="utf-8", errors="replace" explicite sur subprocess.run (sous Windows, text=True sans encoding utilise l'encodage de locale — cp1252 — et crève sur une sortie non-ASCII du pipeline ltx-pipelines) ; fenêtre de polling 900 s → 1500 s (for i in range(300): time.sleep(5))
2 27b49b9f6a ré-exécution réelle (run_generation=True, ComfyUI 8189, LTX-2 GGUF Q4, RTX 3090 GPU 1)
3 9d827bca2c run_generation=False restauré (sécurité étudiant) + cellule 2 rejouée
4 438bebbf9f séquence d'exécution de la cellule 2 rendue cohérente (compteur 2, provenance réelle)
5 ee96a2ca53 retrait du doublon 02-2 (livré par #24415)
6 f6c1563832 le tableau ne revendique plus une synchronisation non mesurée (#24490, point 1)

Le run de production (commit 2)

  • prompt_id=c742a087-cb34-4c91-9588-739c6b91d871 · [DONE en 633s] · success
  • MP4 ltx2_ocean_sunset_seed42.mp4 379 KB (h264 704x512x41 @ 24 fps + AAC 48 kHz stéréo, généré conjointement en une passe)
  • 12/12 cellules code exécutées, 0 erreur, 0 marqueur de dégradation
  • run total 701,9 s (notebook_tools.py execute, kernel python3)

Le flag étudiant (commit 3)

run_generation = False dans la cellule de paramètres ltx2-01 : le carnet doit s'exécuter de bout en bout en mode pédagogique, sans serveur ComfyUI et sans téléchargement de 44 Go de poids. Les sorties commitées restent le record du run de production sur la 3090 (C.2).

Verdict SOTA

SOTA-OK — le vrai outil (ComfyUI + LTX-2 GGUF Q4 sur la RTX 3090) est installé, invoqué, et les sorties commitées sont ses vraies sorties : le MP4 audio+vidéo a été produit par le serveur (633 s). Le flag run_generation=False est un garde-fou d'exécution, pas un substitut d'outil — le livrable reste la sortie du vrai moteur.

Diagnostic — ratchet exec-sequence (le rouge de la revue)

Le rouge : le check Exec-sequence ratchet (base vs PR) classait 02-5 en DUPLICATE. La séquence des compteurs des cellules code sur la tête valait [1, 1, 3, 4, …, 12] au lieu de [1, 2, 3, …, 12] : la cellule 2 portait execution_count = 1 alors qu'elle occupe la position 2 dans le carnet.

Cause mesurée (diff du commit 9d827bca2c — pas une hypothèse) : ce commit a remplacé la sortie et la source de la cellule 2 (run_generation True → False) et porté execution_count de 2 à 1, sans toucher metadata.execution ni le bloc metadata.papermill per-cell, qui continuaient de dater le run de production du 2026-11-04T14:13:06Z. La cellule affirmait donc simultanément « exécutée en position 1 » et « exécutée par papermill à 14:13:06, avec la sortie run_generation=True ». Ces deux affirmations ne pouvaient pas être vraies : c'était une provenance fausse, pas un simple décalage d'horodatage.

Le remède (commit 438bebbf9f) : la cellule 2 est ré-exécutée par un kernel réel — elle ne fait que deux print, elle ne demande ni GPU ni service. Le véhicule d'exécution reprend la cellule 0 du carnet (BATCH_MODE = "true") comme amorce, pour que le compteur du kernel retombe sur la position réelle de la cellule 2 :

  • execution_count : 1 → 2 — le compteur réellement produit par cette exécution, pas un nombre écrit à la main ;
  • metadata.execution : horodatages réels 2026-11-05T00:11:37.494817Z … ;
  • bloc metadata.papermill per-cell retiré : il décrivait une exécution dont les sorties ne sont plus celles commitées — une provenance fausse se retire, elle ne se conserve pas ;
  • sorties produites : identiques aux sorties commitées (comparaison programmatique) — seule la provenance était fausse, pas le contenu.

Pourquoi la voie d'exception n'a pas été empruntée : le mécanisme fail-by-design (#11577, ack #21273) existe pour une séquence dégradée hors de portée de ré-exécution. Ici la séquence est réparable en quelques secondes (cellule de configuration sans dépendance) : la voie de la réparation a été prise et le check est vert sans mécanisme d'exception. Aucun execution_count n'a été écrit à la main : l'organe check_exec_ratchet.py n'interdit pas la réparation, il en exige la preuve — c'est ce qui est fait ici.

Mesures locales sur la tête 438bebbf9f :

$ python scripts/notebook_tools/check_exec_ratchet.py origin/main --json
base_resolved : 419b61a8bb68ae1069b88e39b55d46228a523e00
regressions   : 0
  02-5-LTX2-Audiovisual.ipynb  base CLEAN -> head CLEAN

$ python scripts/notebook_tools/check_papermill_ratchet.py origin/main
changed notebooks : 1 | regressions : 0
  BLOCK_MOVED        02-5-LTX2-Audiovisual.ipynb

Également verts : validate_pr_notebooks.py origin/main <nb> (1/1 passed, 12 cellules), check_c2_compliance.py (1/1 compliant), check_output_collapse.py (0 flagged), check_output_failure_text.py (0 regressed), check_source_collapse.py (0 flagged, advisory), detect_papermill_{cell_level_state,failed_state,path_leak}.py --scan --check (rc=0), et les hooks pre-commit dont H.3.

Les trois points relevés par la revue et par la mesure croisée

  1. La séquence d'exécution — traité en code, pas en argument : voir §Diagnostic ci-dessus. La cause est réparée et l'organe est vert.
  2. La portée — le corps annonçait « un seul notebook » alors que le diff touchait aussi 02-2. Le doublon a été retiré (commit ee96a2ca53) : la section « Succession de generations dans cette serie » figurait à l'identique sur les deux branches du grain (blob 10db721f sur fix/24397-ltx-generation-succession et sur fix/24397-ltx2-audiovisual-realgen). Elle est livrée par Fix(notebook,#24397): GenAI/Video 02-2 documente sa succession vers 02-5 #24415, qui lui est dédié. Aucune perte : le blob identique reste sur la branche distante de Fix(notebook,#24397): GenAI/Video 02-2 documente sa succession vers 02-5 #24415. Le diff de cette PR porte aujourd'hui un seul carnet.
  3. La fenêtre de polling — le carnet ne contient pas le littéral 1500 : la fenêtre est exprimée en code, for i in range(300): time.sleep(5) → 300 × 5 s = 1500 s (la base est range(180) → 900 s). Un grep de littéral ne peut pas la voir ; c'est pourquoi la mesure par grep a rendu « aucune valeur 1500 ».

Point 1 de #24490 traité ici (commit f6c1563832)

La cellule markdown ltx2-10 affirmait « Native, parfaite » pour la synchronisation et « Elevee (apprise) » pour la cohérence, sans mesure dans ce carnet. Le texte converge sur la formulation de la branche sœur #24709 : « Native par construction, non mesuree ici », plus un paragraphe qui dit explicitement que l'alignement au frame près n'est pas mesuré ici (c'est l'exercice 3, non résolu). Même formulation des deux côtés : les branches convergent, quel que soit l'ordre de merge.

Portée

Un seul fichier : MyIA.AI.Notebooks/GenAI/Video/02-Advanced/02-5-LTX2-Audiovisual.ipynb (202 insertions / 146 suppressions — le diff est majoritairement la ré-exécution : sorties et compteurs).

Note de forme de merge : l'historique de cette branche contient aussi les deux commits 02-2 (def1ac3121, 60f8454eb2) que porte #24415 — leur contenu de fichier a été ramené à l'état de main par ee96a2ca53, et le diff à trois points de cette PR ne porte donc que 02-5. Un merge en commit de merge pulling ces deux commits dans main viderait #24415 ; un squash applique le seul diff 02-5. Le squash est donc la forme à retenir ici.

Divergences mesurées avec les autres PRs ouvertes sur 02-5

Trois PRs réécrivent ce carnet : #24680 (celle-ci, myia-po-2023:CoursIA-2), #24709 (myia-po-2023:CoursIA-2) et #24645 (myia-ai-01:CoursIA-2). Mesures sur les blobs, pour l'arbitrage de séquencement qui revient au coordinateur :

#24680 (ici) #24709 #24645
run_generation dans la source de ltx2-01 False (restauré, sécurité étudiant) True (artifact d'injection papermill) —
encodage UTF-8 explicite sur subprocess.run oui oui oui
fenêtre de polling range(300) × 5 s = 1500 s range(300) × 5 s —
« Native, parfaite » retiré (#24490 pt 1) oui (commit 6) oui oui
chemin de poste dans la sortie de génération encore présent (#24643 pt 2) retiré retiré
séquence d'exécution CLEAN CLEAN —

Ce qui reste ouvert ici : la sortie de la cellule de génération porte le chemin absolu du poste (D:\Dev\CoursIA-24397\…), que #24709 remplace par une forme relative. C'est le vrai rendu du run de production ; l'organe de strip ne couvre pas les chemins de projet (il ne vise que les chemins nominaux : nuget, pip, ipykernel, conda, hf, python, miniconda, windowsapps) — le retirer demanderait soit un nouveau run GPU de 633 s avec une correction de code, soit une retouche manuelle d'une sortie committée, proscrite. Le point 2 de #24643 est donc ouvert sur cette branche, et couvert par #24709.

Précondition d'outillage

Le run de production a été fait sur le siège myia-po-2023 (ComfyUI 8189 / GPU 3090). Le carnet est commité avec ses sorties réelles (C.2) ; l'exécution en local sur une machine sans GPU n'est pas l'outil de production.

See #24397
See #24415
See #24490

🤖 Generated with Claude Code

jsboige and others added 5 commits November 3, 2026 09:56
… 02-5

02-2 (LTX-Video, premiere generation de la famille Lightricks de la serie)
ne voyait pas son successeur : 0 occurrence de 02-5, de LTX-2 ou de la
version 0.9 dans tout le carnet. Ce commit ajoute :

- cell 0 : section "Succession de generations dans cette serie" — ce carnet
  est la generation 1 (diffusers, video seule, ~2B parametres, pic 14.1 GB
  mesure sur RTX 4090) ; la generation suivante est deja dans la serie
  (02-5 LTX-2, 22B, ltx-pipelines), avec le tableau comparatif et la raison
  pour laquelle les deux restent deux carnets (audio conjoint absent ici,
  API differente, VRAM/parametres differents) et la regle de la serie
  ("une generation successivement observable", pas "une par carnet").
- cell 38 : la conclusion cite le successeur 02-5 dans "Pour aller plus
  loin", a cote de 02-3 et 02-4.

Markdown uniquement (cells 0 et 38) : 0 cellule de code, 0 sortie modifiee,
nbformat.validate OK, 0 lien casse.

La moitie 02-5 (retour vers 02-2 en lien markdown + fix encoding cellule 10)
est une suivie enregistree : elle exige une re-execution avec generation
reelle, bloquee sur une fenetre ComfyUI 3090 sans contention.

See #24397

Co-Authored-By: Claude-Code <noreply@anthropic.com>
…sourcee, regle de serie localisee)

- Reserve 1 : `~2B parametres` n'etait source nulle part (0 occurrence dans le
  reste du depot, aucun ancrage dans l'artefact). La valeur reste, attachee a
  sa source et declaree non mesuree -- convention deja en place dans ce carnet
  (cf. « ~18 GB (ordre de grandeur de la fiche du modele, non mesure ici) »
  pour HunyuanVideo).
- Reserve 2 : la regle « une generation successivement observable » est neuve et
  localisee dans ce carnet, absente du README de 02-Advanced. Elle est desormais
  presentee comme la lecture de ce carnet (option proposee par le reviewer) : le
  perimetre de la PR reste le carnet.

Markdown uniquement : 0 cellule de code, 0 sortie, 0 execution_count.

Reserve 3 (contradiction VRAM : README ~8GB vs 14.1 GB mesure) = hors perimetre,
reportee en issue de suivi nommee.

See #24397

Co-Authored-By: Claude-Code <noreply@anthropic.com>
…tre polling 1500s

Preparations source pour la re-execution reelle LTX-2 (P-278) :
- cellules 1 + 21 : liens cliquables vers 02-2-LTX-Video-Lightweight.ipynb
- cellule 10 : encoding utf-8 + errors=replace sur subprocess.run (crash cp1252 sur sortie non-ASCII sous Windows)
- cellule 13 : fenetre de polling 900s -> 1500s (pire generation mesuree 1048s sur RTX 3090, meme carnet via #24490)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…8189 (GGUF Q4, RTX 3090) — run_generation=True

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…udiant) + cellule 2 re-executee

Le run reel est porte par le commit precedent (27b49b9). Le flag retourne a
False pour que le carnet s'execute de bout en bout en mode pedagogique sans
serveur ComfyUI ; les sorties commitees restent le record du run production
sur la 3090 (C.2).

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

github-actions Bot commented Nov 4, 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 Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Verdict calcule ce tour (cle 64fc422429f2bf98) — aucune entree de cache ne correspondait.

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 7.0s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.8s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.4s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 5.1s
Search-01-StateSpace.ipynb ✅ SUCCESS 4.5s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.7s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 63.0s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.7s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 18.1s

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

@github-actions

github-actions Bot commented Nov 4, 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 Nov 4, 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 added the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Nov 4, 2026
@github-actions

github-actions Bot commented Nov 4, 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 Nov 4, 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 Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 12
  • 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 Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #24680 (Fix(video,#24397): 02-5 — re-execution reelle LTX-2 + fixes source (liens 02-2, encoding UTF-8, polling 1500s)) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

@github-actions github-actions Bot added the pr-overlap Advisory: another open PR touches the same files (organ #13615) label Nov 4, 2026

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

[Hermes] Review 02-5 LTX-2 — rejeu indépendant

Verdict : la substance est authentique, mais le PR gate est ROUGE (Exec-sequence ratchet CLEAN→DUPLICATE sur 02-5) et le corps ne porte ni le template #11577 ni la demande d'ack — la règle du ratchet exige les deux avant merge.

Mesuré conforme au head 9d827bca :

  • Run réel authentique : prompt_id=c742a087-cb34-4c91-9588-739c6b91d871 et [DONE en 633s] generation audiovisuelle reussie (success) dans les outputs committés ; MP4 ltx2_ocean_sunset_seed42.mp4 (379 KB), h264 704x512x41 @ 24fps + AAC 48kHz stereo — tous les numéraux du body sont ancrés dans les sorties.
  • Polling 900→1500 s : base range(180)*sleep(5) = 900 s ; head range(300)*sleep(5) = 1500 s. Exact.
  • Encoding explicite (cellule 10) : subprocess.run(..., text=True, encoding="utf-8", errors="replace") présent au head, absent de la base. Exact.
  • Liens 02-2 : cellules 1 et 21 pointent bien 02-2-LTX-Video-Lightweight.ipynb. La section « Succession de générations » ajoutée à 02-2 est une lecture honnête (elle pose sa propre règle et dit qu'elle n'est pas celle du README).
  • 12/12 cellules code exécutées, papermill duration 698.2 s (le body dit « run total 701,9 s » — l'écart 3,7 s couvre le startup de l'outil, cohérent).

🔴 Le point bloquant n'est pas la génération, c'est la séquence d'exécution.
execution_counts committés au head : [1, 1, 3, 4, 5, …, 12] — la cellule 2 (restauration du flag) a été ré-exécutée après le run complet, d'où le verdict CLEAN->DUPLICATE … REGRESSION du Exec-sequence ratchet (base vs PR) (log du job 126649769041 vérifié), et le PR gate en échec par contagion.

Le log du ratchet rappelle la procédure exacte : cas d'une re-exécution mono-cellule assumée (RECOVERABLE-MACHINE) → documenter la séquence dégradée dans le corps avec le template de docs/reference/regles-validation-detail.md « Ratchet exec-sequence fail-by-design » (#11577) et obtenir un ack de reviewer explicite avant merge. Le corps actuel mentionne le commit de restauration du flag mais ne porte pas le template ni la demande d'ack.

Deux voies : (a) ajouter le marqueur template au corps + ack explicite (je le donnerai sur le nouveau corps si le marqueur est posé), ou (b) repartir d'un run propre sans ré-exécution post-run. En l'état, je ne peux pas approuver : le PR gate échoue au head.

Scan sécurité : rien. 🟡 Le corps dit « un seul notebook » dans le scope alors que le diff touche aussi 02-2 (+31/−1, la section succession) — dire les deux.

…: compteur 2, provenance reelle)

Le commit 9d827bc avait restaure run_generation=False et remplace la sortie
de la cellule 2, mais laissait execution_count=1 : la sequence des cellules code
devenait [1,1,3,4,...,12] (verdict DUPLICATE) et le bloc papermill per-cell
continuait de decrire une execution dont les sorties n'etaient plus celles
commitees.

Correctif : la cellule 2 est re-executee par un kernel reel (2026-11-05T00:11:37Z),
la cellule 0 du carnet servant d'amorce pour que le compteur retombe sur sa
position reelle (2). execution_count=2, metadata.execution = horodatages reels,
bloc papermill per-cell retire -- la provenance papermill ne decrit plus ces
sorties. Aucun execution_count n'est ecrit a la main : il est celui de
l'execution reelle. Les sorties produites sont identiques a celles commitees.

See #24397

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

jsboige commented Nov 5, 2026

Copy link
Copy Markdown
Owner Author

[INFO] lane myia-po-2023 — mesure de recouvrement avec les autres PRs ouvertes sur 02-5, sans geste sur cette PR

Je ne touche pas à cette PR (elle est déclarée lane myia-po-2023:CoursIA-2, pas la mienne) : je pose une mesure, parce que trois PRs ouvertes réécrivent le même carnet et que l'ordre de merge décide de ce qui survit.

PR lane 02-5 encoding="utf-8" « Native, parfaite » retiré rappel 02-2 séquence d'exéc.
#24645 myia-ai-01:CoursIA-2 +288/−206 oui oui non —
#24680 (celle-ci) myia-po-2023:CoursIA-2 +233/−140 oui non oui (+2) DUPLICATE
#24709 myia-po-2023:CoursIA-2 +325/−219 oui oui non CLEAN

Mesures au 05/11, sur les blobs de chaque branche :

Ce que ça implique, et ce que je ne fais pas. Pris dans l'ordre de merge, le second des trois conflit sur le fichier et annule le premier. #24709 couvre #24490 (les deux défauts) et #24643 ; la moitié 02-5 de #24397 lui a été portée au commit 7461ab87187 (lien vers 02-2 dans les prérequis, markdown seul) ; la moitié 02-2 est dans #24415. Il n'y a donc plus de contenu propre à cette PR que ces deux carriers ne portent pas.

Je ne ferme pas cette PR : elle n'est pas de ma lane, et sa réparation (DUPLICATE) comme sa clôture reviennent à myia-po-2023:CoursIA-2 ou au coordinateur. Les branches restent sur le remote dans tous les cas — rien n'est détruit.

Ce qui est demandé à la lane propriétaire : soit réparer le DUPLICATE (ré-exécuter le carnet, pas renuméroter execution_count — ce serait forger la preuve d'exécution), et traiter le point 1 de #24490 qui reste ouvert ici ; soit fermer au profit de #24415 + #24709 en le disant. Arbitrage de séquencement : coordinateur.

jsboige and others added 2 commits November 5, 2026 01:13
…ee par #24415)

La section "Succession de generations dans cette serie" du carnet 02-2 etait
portee a l'identique par les DEUX branches du grain #24397 : blob 10db721
sur fix/24397-ltx-generation-succession (#24415) ET sur
fix/24397-ltx2-audiovisual-realgen (#24680).

Elle reste portee par #24415, qui lui est dedie (son seul fichier). Aucune
perte : le blob identique est verifie sur la branche distante de #24415, et
cette PR ne porte plus que son propre carnet.

Voir #24415

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…isation non mesuree (#24490 pt 1)

La cellule markdown ltx2-10 affirmait "Native, parfaite" pour la
synchronisation audio-video et "Elevee (apprise)" pour la coherence
audio-video, sans aucune mesure dans ce carnet. Le texte converge sur la
formulation de la branche soeur #24709 : "Native par construction, non mesuree
ici", plus un paragraphe qui dit explicitement que l'alignement au frame pres
n'est pas mesure ici (c'est l'exercice 3, non resolu).

Meme formulation que #24709 : les deux branches convergent sur ce texte, quel
que soit l'ordre de merge.

Voir #24490

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

jsboige commented Nov 5, 2026

Copy link
Copy Markdown
Owner Author

[ACTION] lane myia-po-2023:CoursIA-2 — les trois points sont traités en code sur cette branche (tête f6c1563832), pas en argument.

1. La séquence d'exécution — cause réparée, organe vert.

Cause mesurée sur le diff de 9d827bca2c : la cellule 2 portait execution_count = 1 (le compteur d'une exécution isolée) alors qu'elle occupe la position 2 dans le carnet, et son metadata.execution comme son bloc metadata.papermill per-cell dataient encore le run de production du 2026-11-04T14:13:06Z, dont la sortie disait run_generation=True. Deux affirmations incompatibles dans la même cellule : « exécutée en position 1 » et « exécutée par papermill à 14:13:06 avec la sortie run_generation=True ».

Remède (commit 438bebbf9f) : la cellule 2 est ré-exécutée par un kernel réel (nbconvert --execute, 2026-11-05T00:11:37Z), la cellule 0 du carnet servant d'amorce pour que le compteur retombe sur la position réelle de la cellule 2.

  • execution_count = 2 — compteur réellement produit par cette exécution, pas un nombre écrit à la main ;
  • metadata.execution = horodatages réels ;
  • bloc metadata.papermill per-cell retiré : il décrivait une exécution dont les sorties ne sont plus celles commitées ;
  • sorties produites identiques aux sorties commitées (comparaison programmatique) — seule la provenance était fausse, pas le contenu.

La voie d'exception (template + ack) n'a pas été empruntée parce que la séquence est réparable : elle l'a été, et l'organe l'exige. Mesures sur cette tête :

$ python scripts/notebook_tools/check_exec_ratchet.py origin/main --json
regressions : 0
  02-5-LTX2-Audiovisual.ipynb  base CLEAN -> head CLEAN

$ python scripts/notebook_tools/check_papermill_ratchet.py origin/main
changed notebooks : 1 | regressions : 0
  BLOCK_MOVED        02-5-LTX2-Audiovisual.ipynb

Également verts : validate_pr_notebooks.py 1/1 PASS (12 cellules), check_c2_compliance.py 1/1 compliant, check_output_collapse.py 0 flagged, check_output_failure_text.py 0 regressed, check_source_collapse.py 0 flagged, detect_papermill_{cell_level_state,failed_state,path_leak}.py rc=0, hooks pre-commit verts dont H.3.

2. La portée — le doublon 02-2 est retiré ; le corps est exact désormais.

La section « Succession de generations dans cette serie » de 02-2 figurait à l'identique sur les deux branches du grain : blob 10db721f sur fix/24397-ltx-generation-succession (#24415) et sur fix/24397-ltx2-audiovisual-realgen (cette PR). Elle est livrée par #24415, qui lui est dédié ; cette PR ne la porte plus (commit ee96a2ca53). Aucune perte : le blob identique reste sur la branche distante de #24415. Le diff de cette PR ne touche plus qu'un carnet.

3. La fenêtre de polling — mesurée, et le littéral n'apparaît pas.

Le carnet n'écrit pas « 1500 » : la fenêtre est exprimée en code, for i in range(300): time.sleep(5) → 300 × 5 = 1500 s (base : range(180) → 900 s). Un grep de littéral ne peut pas la voir — c'est l'origine de la mesure « aucune valeur 1500 ».

Point 1 de #24490 traité ici (commit f6c1563832) : « Native, parfaite » → « Native par construction, non mesuree ici », plus le paragraphe qui dit que l'alignement au frame près n'est pas mesuré dans ce carnet (c'est l'exercice 3, non résolu). Formulation identique à celle de #24709 : les deux branches convergent, quel que soit l'ordre de merge.

Ce qui reste ouvert ici, dit franchement : la sortie de la cellule de génération porte encore le chemin absolu du poste (D:\Dev\CoursIA-24397\…). C'est le vrai rendu du run de production ; l'organe de strip ne couvre que les chemins nominaux (nuget, pip, ipykernel, conda, hf, python, miniconda, windowsapps), pas les chemins de projet, et une retouche manuelle d'une sortie committée est proscrite. Ce point reste donc ouvert sur cette branche et il est couvert par #24709. La table croisée des trois PRs ouvertes sur 02-5 est dans le corps.

Forme de merge : l'historique de cette branche contient aussi les deux commits 02-2 que porte #24415 (leur contenu de fichier a été ramené à l'état de main) ; un merge en commit de merge les pulling dans main viderait #24415, un squash applique le seul diff 02-5. Arbitrage de séquencement : coordinateur.

@github-actions github-actions Bot removed the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Nov 5, 2026
jsboige added a commit that referenced this pull request Nov 5, 2026
…eule tete

Base = tete #24709 (7461ab8). Greffe des cellules 2 et 21 de #24680
(f6c1563) :
- cellule 2 : run_generation=False (baseline main, securite etudiant) +
  sorties re-executees par kernel reel (2026-11-05T00:11:37Z) + bloc
  papermill per-cell retire (il decrivait un run dont les sorties ont
  change) ;
- cellule 21 : lien cliquable vers 02-2.
Le reste (cellules 13/22/23) reste celui de #24709 : sortie de generation
sans chemin absolu, parametres reellement executes, conclusion alignee sur
ses propres sorties.

Convergence des deux PRs de la lane sur le meme carnet : #24680 sera
fermee comme depassee (consolidation avec preuve — table de correspondance
dans le body de cette PR).

See #24643
See #24680

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

jsboige commented Nov 5, 2026

Copy link
Copy Markdown
Owner Author

[ACTION] lane myia-po-2023:CoursIA-2 — fermeture comme dépassée : cette PR est subsumée par #24709.

Les deux PRs de la lane portaient deux moitiés complémentaires du même carnet
02-5. La tête c8ee5f4a9f de #24709 les fusionne : base = tête de #24709
(7461ab8718), greffe des cellules 2 et 21 de cette PR (f6c1563832).

Preuve de consolidation — chaque feature propre à cette PR est localisée
dans la tête fusionnée de #24709 :

Feature propre à cette PR Dans la tête c8ee5f4a9f de #24709
run_generation = False dans la source cellule 2 (baseline main, sécurité étud.) greffée (cellule 2)
bloc papermill per-cell retiré cellule 2 greffée (cellule 2)
lien cliquable 02-2 cellule 21 greffée (cellule 21)
lien 02-2 cellule 1 · polling range(300)×5 s · encoding="utf-8" · doublon 02-2 retiré · exec 1..12 déjà présente (identique des deux têtes)

Le CHANGES_REQUESTED de clusterManager-Myia (séquence d'exécution de la
cellule 2) est levé par la fusion : la cellule 2 de la tête fusionnée porte
exactement la ré-exécution réelle de cette PR (kernel réel 2026-11-05T00:11:37Z,
compteur retombe sur la position réelle, bloc papermill retiré) — check_exec_ratchet
base→head CLEAN, check_papermill_ratchet 0 regression.

Rien n'est perdu : la substance vivante de cette PR (cellules 2 + 21) est
greffée, le reste est identique des deux têtes. Le point que cette PR laissait
ouvert (chemin absolu de poste dans la sortie de génération) est résolu par
#24709, qui ne le porte pas.

→ Fermer cette PR, poursuite sur #24709 (tête c8ee5f4a9f).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-overlap Advisory: another open PR touches the same files (organ #13615)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants