Repository navigation
feat(coordination): merge_ready refuses a twin index collision with current main - #17922
Conversation
…urrent main Two PRs that add the same twin_pairs.d index are each CLEAN against main; the second turns main red once the first is merged. merge_ready now runs check_twin_index_collisions.py (--base origin/main --head <gated head>) after a fetch, for PRs that touch the twin registry only. A collision skips the PR; an unreadable fetch or organ skips fail-closed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
G-VAR-2 light cap reached (advisory, non bloquant). |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
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 |
Path-collision (organ #13359/#13615)Cette PR #17922 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
[ADJOINT PREFLIGHT] |
Constat
Deux PRs qui ajoutent le meme index
twin_pairs.d/<paire>/NNNNsont chacuneCLEANcontremain. Des que la premiere est mergee, la seconde fait rougirmain. Le 25/09, cela s'est produit sur l'index 0016, puis trois fois sur l'index 0013.L'organe qui voit ce cas,
check_twin_index_collisions.py(#17871), est surmain. Aucun des deux chemins de merge ne l'appelait.Correctif
Le correctif ajoute une etape 5bis a
merge_ready, entre l'organe B.0 et la relecture REST :scripts/notebook_tools/twin_pairs.d/; les autres PRs ne paient ni fetch ni organe ;git fetch origin main pull/<N>/head, puischeck_twin_index_collisions.py --base origin/main --head <tete gatee>;maindu moment, y compris apres les merges deja faits dans le meme run ;rc=1donne un skiptwin-index-collision;rchors 0/1 donne un skip fail-closedtwin-collision-unreadable:*, jamais un merge.Pourquoi sans
--in-tree. Le doublon intra-revision de la tete est deja porte par le garde CI de la PR.merge_readyne couvre que l'angle mort du CI : la collision avec une soeur mergee apres le passage des checks.Validation
scripts/tests/test_merge_ready.py: 48 passed, dont 5 nouveaux tests :origin/mainavec le fetch avant l'organe ;None(aucune collision inter-revisions). Le defaut de docs(probas,#14873): cross-link twin notebooks PyMC/Infer (P4 liens croisés) #17795 est intra-revision et reste au garde CI ; la PR est enhold.txt.Grain: LIGHT/tooling -- lane myia-ai-01:CoursIA -- prev: LIGHT/docs #17921
🤖 Generated with Claude Code