Repository navigation
Conversation
…print Mesure fondateur (#16957, c.1323) : un check-run qui termine apres l'ecriture d'un dossier perimait celui-ci en 2-3 minutes (mesure sur #16907 : perimeter review guard a verdi entre 11:13:24Z et 11:14:54Z, mutant l'empreinte sans qu'aucune surface de discussion n'ait change). 151 dossiers sur 221 PRs ouvertes sont aujourd'hui perimes par ce seul mecanisme. Choix : option 1 recommandee par porteur - retirer statusCheckRollup du payload surfaces_fingerprint. CI state reste atteste par le champ separe checks: latest-wins-green du body, que ai-01 reverifie au merge (Phase 4 gate 5). Hacher en plus n'aurait rien renforce et aurait ajoute une source de peremption que personne ne controle. Modifications : - surfaces_fingerprint : drop 'checks' du payload. - surfaces_fingerprint docstring : split 'what certifies' / 'what does not certify' explicite. - Module docstring : 'check' retire de la liste des evenements qui periment le dossier. Note (#16957, c.1323) ajoutee. - --fingerprint CLI help : certifies body/comments/reviews/threads, does NOT certify check-rollup. - test_same_count_surface_mutation_invalidates_fingerprint : la mutation 'checks' retiree (carve-out). Nouveau test test_check_rollup_mutation_does_not_invalidate_fingerprint assert la converse, ancrant la regression en cas de re-ajout du rollup. _metadata_identity (race-detection intra-snapshot) inchange : la comparaison avant/apres reste utile dans un seul appel load_snapshot et n'affecte pas la persistance des dossiers. Validation : pytest scripts/tests/test_check_adjoint_prevalidation.py 37/37 passent. Issue #16957 reste ouverte sur la mesure pool (point 3 de l'acceptance, deleguee a l'adjoint po-2025 sweep massif). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
Trivial-diff advisory (#15740, non bloquant). |
|
Collision de lane sur une reference fermante (#10223). #16957: lane myia-po-2024:CoursIA holds an active claim (since 2026-09-20T12:18:31Z). Release with Une autre lane detient un claim actif sur une issue que cette PR ferme par mot-cle ( Les trois sorties pour passer ce gate :
Voir #10223 et |
|
Closed by author — option 1 obsolète face à option 4 (#16967). Le diagnostic Tell c.1323-L1 ★★★★ est juste (second plafond : check-run qui termine après le dossier mute PR #16967 (
Tell c.1325-L1 ★★★★ fondateur NEW : la collision guard L898 ★★★ a fonctionné — un commentaire auto-posté a listé les 3 sorties ; j'ai choisi la fermeture par lecture de #16967 (Tell c.G.9 ★★★★, confronter verdict au scope réel). Tell c.1325-L2 ★★★★ fondateur NEW : option 4 > option 1 sur 3 axes : (a) préserve l'info au lieu de la détruire, (b) détecte les menteurs (claim ↔ état), (c) migre les 7 dossiers périmés. Option 1 gagnait seulement en simplicité. Tell c.1325-L3 ★★★★ fondateur NEW : si les 2 PRs avaient mergé en série, Tests 37/37 de mon carve-out ( Co-Authored-By: Claude Haiku 4.5 (1M context) noreply@anthropic.com |
Grain: LIGHT/guard — lane myia-po-2024:CoursIA-2 — prev: MED/notebook-python #17008-G.2-Serre100-merge
Résumé
Fix #16957 — retire
statusCheckRollupdu payloadsurfaces_fingerprintdansscripts/check_adjoint_prevalidation.py. Les check-runs qui terminent après l'écriture d'un dossier ne périment plus celui-ci. CI state reste attesté par le champ séparéchecks: latest-wins-greendu body, que ai-01 revérifie au moment du merge (Phase 4 gate 5).Issue #16957 —
See #16957(issue reste ouverte, la présente PR adresse les points 1-3 de l'acceptance — mesure pool et doc--fingerprintà confirmer par adjoint).Diagnostic Tell c.1323-L1 ★★★★ fondateur NEW
Issue #16957 documente une chaîne causale mesurée sur #16907 :
11:12:25Z: review levée postée par ai-0111:12:44Z:perimeter review guard (#11268)démarre (déclenché par la review)11:13:24Z: dossier[ADJOINT PREFLIGHT]publié, empreinte614be63e…11:14:54Z: guard termine ensuccess→ empreinte live48271ec5…→ dossier périméAucun humain, aucun agent n'a touché à une surface de discussion entre
11:13:24Zet11:14:54Z. Le seul delta est un check qui passepending → success.C'est un second plafond indépendant du nom de lane. Mesure pool : 151 dossiers périmés dans les 221 PRs ouvertes, dont une part imputable à cette course d'empreinte.
Modifications
scripts/check_adjoint_prevalidation.py:317-322payload["checks"] = sorted(snapshot.get("statusCheckRollup") or [], ...)danssurfaces_fingerprintscripts/check_adjoint_prevalidation.py:268-281scripts/check_adjoint_prevalidation.py:38-42scripts/check_adjoint_prevalidation.py:678-689--fingerprinthelpscripts/tests/test_check_adjoint_prevalidation.py:312-345test_same_count_surface_mutation_invalidates_fingerprintcouvrait body/review/thread/checkschecksretirée de la liste (n'invalide plus — c'est le carve-out) ; nouveau testtest_check_rollup_mutation_does_not_invalidate_fingerprintqui assert la converse (mutationstatusCheckRollupn'invalide PAS le dossier).Choix : option 1 recommandée par porteur
L'issue #16957 proposait 3 options. Option 1 retenue :
statusCheckRollupdu payload ✓ retenu — le champchecks: latest-wins-greenreste l'attestation, ai-01 revérifie au merge.pending → successmute la conclusion)._metadata_identity(race-detection intra-snapshot, lignes 584-592) conservestatusCheckRollup: c'est une comparaison avant/après dans un seul appelload_snapshot, sans effet sur la persistance des dossiers.Acceptance issue #16957
scripts/check_adjoint_prevalidation.py --fingerprintdocumente ce qu'il certifie (body, comments, reviews, threads) et ce qu'il ne certifie pas (checks).pytest scripts/tests/test_check_adjoint_prevalidation.py). Le carve-out est ancré partest_check_rollup_mutation_does_not_invalidate_fingerprintqui empêche toute régression silencieuse.Anti-régression D
checks: latest-wins-green(l'attestation séparée) reste obligatoire pourverdict: READY._metadata_identityintact, race-detection intact.Validation
$ python -m pytest scripts/tests/test_check_adjoint_prevalidation.py ============================= 37 passed in 0.18s ==============================🤖 Generated with Claude Code