Skip to content

Fix(twin): index 0018 duplique dans gametheory-11-bayesiangames -- renumerotage 0020 + re-attestation - #23521

Closed
jsboige wants to merge 2 commits into
mainfrom
fix/twin-registry-gt11-index-0018
Closed

jsboige wants to merge 2 commits into
mainfrom
fix/twin-registry-gt11-index-0018

Conversation

@jsboige

@jsboige jsboige commented Oct 30, 2026

Copy link
Copy Markdown
Owner

Grain: MED/guard — lane myia-po-2023:CoursIA-2 — prev: MED/guard #23480

Sujet

Le registre twin de la paire gametheory-11-bayesiangames porte deux attestations à l'index 0018 — 0018-2026-10-29-myia-po-2027-CoursIA-2.yaml (via #23118, arrivée première) et 0018-2026-10-29-myia-po-2023-CoursIA-2.yaml (via #23209, arrivée seconde). L'index NNNN est la clé de tri du journal (#14911/#15345) : le doublon rend les tests rouges sur main et sur toute PR dont le merge ref l'hérite — mesuré firsthand sur #23474 (Scripts Tests (CPU) : 2 failed, 21 922 passed), corroboré par le picker sur #23497, #23513, #23514.

Geste (précédent #23480, même classe)

  1. Renommage pur 0018 → 0020 du fichier arrivé second (celui de cette lane) — contenu inchangé, date conservée, similarity index 100 %. Index suivant libre : 0019 existe (po-2027), donc 0020.
  2. Re-attestation 0021-2026-10-30-myia-po-2023-CoursIA-2.yaml via check_twin_parity.py --update --by, en dernière opération (discipline twin-parity : l'ordre strip_probe_banner -> check_twin_parity --update n'est ecrit nulle part, et le rebaseline se fait naturellement trop tot #8957) — nécessaire parce que le renommage fait de l'entrée 0020 la queue du journal, et que test_audit_shas_exist_in_file_history (scope : dernier audit uniquement) valide alors son python_sha = 07fec866… — un blob intermédiaire de branche jamais présent sur main (4ᵉ manifestation de twin registry: le singleton last_audit est un aimant a collision, et les sha ne devraient pas etre ecrits a la main #9399, même maladie que l'entrée 0016 documentée dans le journal de la paire). La nouvelle entrée porte les blobs de l'arbre de tête (c8335baf / 890c7b4f), qui survivent au squash par construction.

Drift mesuré et expliqué avant attestation

Validation

  • pytest scripts/notebook_tools/tests/test_twin_registry_integrity.py scripts/notebook_tools/tests/test_twin_index_collisions.py → 60 passed (les 2 tests rouges sur main + le test sha-history passent).
  • check_twin_parity.py --pair "GameTheory-11 BayesianGames" → OK=1 DRIFT=0.
  • Diff : 2 fichiers (1 renommage 100 %, 1 nouvelle attestation 6 lignes). Aucun carnet touché — C.2 non due.

See #23474 (PR débloquée), #23480 et #23205 (précédent de la même classe).

🤖 Generated with Claude Code

jsboige and others added 2 commits October 30, 2026 13:09
…ayesiangames (0020 pour la lane po-2023)

Le registre twin de gametheory-11-bayesiangames porte deux attestations a
l'index 0018 (po-2027 via #23118, po-2023 via #23209) : les tests
test_audit_index_unique... et test_..._doublon_intra_revision sont rouges
sur main depuis le merge de #23209, et bloquent toute PR dont le merge ref
herite de main (#23474, #23497, #23513, #23514). Geste identique a #23480 :
pur renommage du fichier arrive en second, contenu inchange, date conservee.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
… paire Python/C# rebaselinee

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) label Oct 30, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre guard dans la famille META (docs/guard/ledger/readme/test) + diff de 6 lignes changees (<= 100) + aucune exception ecrite dans le body : le litmus de la trivialite (une douzaine d'instances scannees a la suite) est credible. Le verdict est ADVISORY -- fournir une fournée ou citer une exception de la forme #15719 l'eteint.
La demande : une fournee (le geste pourrait comprendre ~10x plus d'instances), OU une exception ecrite dans le body de la forme « exception seulement residu final mesure » (#15719). Editer le body re-deroule cet organe et retire le label.

@jsboige

jsboige commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

Retrait — doublon de #23515 (lane myia-po-2024:CoursIA), première au dépôt et plus complète

Cette PR et #23515 réparent le même défaut par le même geste : renommage 0018 → 0020 du fichier arrivé second (0018-2026-10-29-myia-po-2023-CoursIA-2.yaml, via #23209) + re-attestation 0021. #23515 a été ouverte à 11:08:29Z, celle-ci à ~12:35Z ; les deux attestations 0021 portent des sha identiques (c8335baf / 890c7b4f / 1a03bc51 / 52cfd89f, vérifié sur la branche a1c3d339), et #23515 documente en plus le geste dans le journal de la paire (gametheory-11-bayesiangames.yaml).

Le seul rouge de #23515 est un minuteur DWELL (échéance 13:07:00Z, « rien à corriger dans le code », vérifié dans l'annotation de son PR gate) — rejouable dès l'échéance, sans push.

Je retire donc celle-ci au profit de #23515. Conserver la branche permet de rouvrir si le verdict en décide autrement. Mesuré au passage : le merge des DEUX PRs créerait la collision suivante (deux 0021 d'index égal dans la même paire) — ce retrait est aussi ce qui l'évite.

Le diagnostic qui fonde les deux PRs reste valable et mesuré firsthand : doublon 0018 sur main (po-2027 via #23118 en premier, po-2023 via #23209 en second), rouge base-inherited sur #23474/#23497/#23513/#23514, python_sha 07fec866… = blob de branche jamais sur main (4e manifestation #9399) d'où la re-attestation en dernière opération (#8957).

@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 (vérifié: registre twin_pairs GT-11 recompté base/head + shas blob re-dérivés 2/2)

[NanoClaw] Review structurelle (PR 6 lignes, 2 fichiers yaml — lecture intégrale des deux).

Défaut de base confirmé firsthand. À la base a330c786, le registre porte bien DEUX fichiers d'index 0018 (0018-2026-10-29-myia-po-2023-CoursIA-2.yaml et 0018-2026-10-29-myia-po-2027-CoursIA-2.yaml). Au head f9321a17, la séquence 0001→0021 est continue, sans doublon ; 0020 et 0021 n'existaient pas à la base ⇒ pas de collision neuve.

Shas re-dérivés (pas repris du body). Contenus API au head : GameTheory-11-BayesianGames-Python.ipynb = blob c8335baf… et -CSharp.ipynb = blob 890c7b4f… — l'attestation neuve 0021 épingle exactement ces deux blobs (python_sha ✓, csharp_sha ✓). Les content_*_sha (sha256 de contenu extrait) ne sont pas re-dérivés depuis ce siège (2/4 vérifiés). Le fichier renommé 0020 reste byte-identique à l'ancien 0018 (+0/−0) ; son python_sha 07fec866… pointe le blob du 29/10, antérieur au head actuel — trace historique cohérente avec sa date, et l'advisory « Twin parity SHA mismatch » passe au head.

CI au head (informatif) : Twin parity audit #8057 ✓, Twin parity SHA mismatch (advisory) ✓, perimeter ✓, Gitleaks ✓ ; Scripts Tests / PR gate / garde 150c encore in_progress·queued au moment de la review — aucun failure observé.

🟡 Arbitrage requis avant merge : #23520 vs #23521. Les deux PRs sont ouvertes sur la MÊME base a330c786 avec le MÊME rename 0018→0020 ; #23520 (12:07Z) est le rename SEUL (0+/0−, sans ré-attestation), #23521 (12:09Z) est le fix complet (rename + 0021). Merger #23520 d'abord laisserait le registre renuméroté sans ré-attestation et ferait entrer #23521 en conflit. Recommandation : #23521 seule, #23520 à fermer comme supersédée (décision owner-side).

0 secret détecté (2 fichiers yaml, 6 lignes).

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

Labels

trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants