Repository navigation
Conversation
…# perime Le registre `twin_pairs.d/sudoku-04-simulatedannealing/` portait deux fichiers d'audit au meme index 0023 (celui de `myia-po-2025:CoursIA` du 2026-10-31 et le mien du 2026-11-01). L'index zero-pade est la cle de tri du journal file-per-audit, donc le doublon rend l'ordre relatif des deux entrees dependant du reste du nom -- c'est ce que le garde `test_audit_index_unique_and_no_identical_duplicates_per_pair` refuse, et ce que l'organe `check_twin_index_collisions.py --in-tree` remonte comme doublon intra-revision. Les deux attestations de ma lane (0023 et 0024 du 2026-11-01) portaient en outre un `csharp_sha` perime (`f78ed2c9`, etat du 2026-10-18) alors que le jumeau C# de `main` est a `17f1e803` depuis le 2026-10-31 -- elles enregistrent une etat que la revue de #23870 avait deja depasse. Consequence mesuree : `check_twin_parity.py --check` rendait DRIFT sur la paire (content C# `b68e0c60` -> `cfaf2677`). Reparation : - renumerotation pure (`git mv`, aucun octet de contenu touche, aucune re-execution de carnet) de mon 0023 -> 0025 et de mon 0024 -> 0026, vers les premiers ordinaux libres -- les deux renumerotations ensemble preservent l'ordre chronologique du journal (0025 = tranche prose du 2026-11-01, 0026 = re-execution du meme jour, 0027 = etat fusionne) ; - attestation 0027 de l'etat courant, ecrite par `check_twin_parity.py --update` depuis ce worktree (regle #8957 : l'attestation decrit le carnet tel qu'il est). Apres reparation : `check_twin_parity.py --check` rend OK sur la paire, et les deux gardes en rouge (`test_audit_index_unique_and_no_identical_duplicates_per_pair` et `test_le_registre_de_la_revision_testee_ne_porte_aucun_doublon_intra_revision`) repassent au vert. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
|
G-VAR-2 light cap reached (advisory, non bloquant). |
|
[ACTION] Fermée — doublon de #24588 (po-2024) : pas de second correctif concurrent sur le même registre. J'ai ouvert cette PR sans avoir vérifié les PRs ouvertes qui touchent le même chemin : #24588 (
Son attestation Deux PRs réparent le même registre avec des renumérotations divergentes (la mienne déplace mes deux attestations du 2026-11-01, celle de po-2024 déplace celle du 2026-10-31) — à la fusion, les index Ce que ma branche apporte, si le coordinateur préfère l'autre direction de renumérotation (branche Une nuance d'invariant, à l'arbitrage (ni l'un ni l'autre PR ne la lève) : l'index est la clé de tri du journal file-per-audit, censée restituer l'ordre d'append. La décision actée au dashboard (07:07Z) dit « la plus ancienne garde l'ordinal » — ce qui veut dire que l'attestation la plus récente (la mienne, 2026-11-01) doit être celle qui se renumérote. #24588 fait l'inverse : il déplace la plus ancienne (po-2025, 2026-10-31) en Issue de suivi : #24617 (créée par moi) reste ouverte jusqu'à la fusion de #24588, qui la referme. 🤖 Generated with Claude Code |
|
Fermee : doublon de #24588 (po-2024), detail dans le commentaire precedent. |
|
Trivial-diff advisory (#15740, non bloquant). |
Grain: MED/ledger -- lane myia-ai-01:CoursIA-2 -- prev: MED/guard #24609
Closes #24617
Ce que fait cette PR
Répare le rouge de base
Scripts Tests (CPU)que ma PR #24609 a hérité demain, sur le registre des attestations jumelles de la paire Sudoku-04 SimulatedAnnealing.Deux défauts distincts, une seule cause racine côté registre :
0023dansscripts/notebook_tools/twin_pairs.d/sudoku-04-simulatedannealing/;Preuve du rouge (base-inherited, mesuré)
Sur
origin/main, le registre porte deux fichiers au même index :L'index zero-padé est la clé de tri du journal file-per-audit (
sorted(glob)restitue l'ordre d'append, #14911) : deux entrées au même index rendent leur ordre relatif dépendant du reste du nom.Les deux gardes qui rougissent sur
main— mesurés dans ce worktree avant la réparation :Les deux fichiers sont déjà sur
main(le mien a été mergé par #23870) : le rouge n'est donc pas introduit par cette PR. L'organe le confirme sur la base :Second défaut, mesuré sur les mêmes fichiers :
maincsharp_shaf78ed2c9…17f1e803…content_csharp_shab68e0c60…cfaf2677…L'état
cfaf2677est celui qu'atteste déjà l'attestation du 2026-10-31 : le jumeau C# avait changé avant le 2026-11-01, et mes attestations de cette date-là ont enregistré un état déjà dépassé (rédigées depuis un worktree bâti sur une base plus ancienne quemain). Effet mesuré :La réparation
git mv, aucun octet de contenu touché, aucune ré-exécution de carnet) de mon0023vers0025et de mon0024vers0026— les deux ensemble préservent l'ordre chronologique du journal (0025 = tranche prose du 2026-11-01, 0026 = ré-exécution du même jour). Les ordinaux 0025/0026 étaient les premiers libres au-dessus du maximum de la paire.check_twin_parity.py --update --pair "Sudoku-04 SimulatedAnnealing" --by myia-ai-01:CoursIA-2, exécuté depuis ce worktree (règle twin-parity : l'ordrestrip_probe_banner->check_twin_parity --updaten'est ecrit nulle part, et le rebaseline se fait naturellement trop tot #8957 :--updateen dernière opération, il décrit le carnet tel qu'il est).Les deux jumeaux de la paire sont byte-identiques à
mainavant et après : aucun carnet touché, aucune ré-exécution due (C.3).Validation après la réparation
Les deux gardes qui rougissaient sur
mainrepassent au vert, et le DRIFT de la paire disparaît.Régression check
grep -rn "sudoku-04-simulatedannealing" scripts/ --include=*.py→ 0 résultat : le slug de la paire n'est codé en dur dans aucun script, le registre est lu génériquement par les organes qui itèrentscripts/notebook_tools/twin_pairs.d/*/. Les consommateurs du registre sont donc tous couverts par les lectures rejouées ci-dessus (parité--check, unicité d'index--gate, allocation d'index), et aucun d'eux ne dépend du numéro d'index : l'index est une clé de tri, pas une référence symbolique.Tier
MED/ledger— le grain ne se limite pas à propager un marqueur : il change un verdict mesuré (la paire passe deDRIFT=1àDRIFT=0) et corrige un état enregistré faux, vérifié par l'organe de parité et par les gardes du dépôt. Le coordinateur peut re-qualifier le tag si le litmusLIGHTlui paraît plus juste.🤖 Generated with Claude Code