Skip to content

fix(ci,#15864): refuser la continuation de lane apres un point de prose (lane fantome) - #15885

Closed
jsboige wants to merge 1 commit into
mainfrom
fix/15864-lane-regex-phantom
Closed

jsboige wants to merge 1 commit into
mainfrom
fix/15864-lane-regex-phantom

Conversation

@jsboige

@jsboige jsboige commented Sep 13, 2026

Copy link
Copy Markdown
Owner

Grain: MED/guard — lane myia-po-2026:CoursIA — prev: DEEP/slides #15884

Quoi

(?<!\.) en tête de clause de continuation sur les DEUX jumeaux _LANE_RE / _LANE_FALLBACK_RE (scripts/grain_tag.py) : un . suivi d'un blanc est de la ponctuation de prose, jamais une partie de <machine>:<workspace> ; un . interne (hostname, Foo.Bar) est suivi d'un non-blanc et survit. Après un point, toute itération de continuation est refusée, la capture s'arrête sur ...CoursIA., et le rstrip(".") #12719 existant (extract_lane :545 / parse_grain_tag :507) rend la lane nue. Le témoin lane_marker_residues continue de déclarer la forme malformée (trailing-period:).

Preuve

Marqueur réel de #15674 (fetched verbatim) :

[DELIVERED] PR #15733 — lane myia-po-2023:CoursIA. Énoncé réécrit en deux gestes ...
Contrôle Résultat
extract_lane primaire (mot-clé lane) myia-po-2023:CoursIA (pré-fix : myia-po-2023:CoursIA. Énoncé)
Jumeau fallback (sans mot-clé) myia-po-2023:CoursIA — les deux regex bougent (#12145)
parse_grain_tag idem, zéro divergence avec extract_lane
lane_marker_residues ['trailing-period:myia-po-2023:CoursIA.'] — témoin intact
_run_check(payload réel #15674, "myia-po-2023:CoursIA") rc 0 CLEAR (pré-fix : bloqué sur la lane fantôme — gate FAIL, 8 reruns sur #15733)
Pouvoir des tests : 6 nouveaux tests sur code pré-fix (stash) 6/6 FAILED ; post-fix 6/6 PASSED
Suites : test_grain_tag.py + test_check_lane_claim.py 402 passed (7 nouveaux)
Consommateurs du lecteur unique (#9485) : test_lane_claim_required + test_pick_idle_grain(_cache) + test_variation_prev_lane + test_lane_claim_epic_wide + test_pick_lane_record 208 passed
Non-régressions LivresAgités Épisode intact (#13830) ; A.B Suite / myia.host.example:Baz intacts ; date nue #12719 intacte ; point final #12719 intact ; Microsoft VS Code. Suite → coupe au point

Acceptance #15864 : 6/6 cases cochées (marqueur réel, jumeau, non-divergence, _run_check CLEAR, non-régressions, suites vertes).

Résiduel (documenté dans l'issue, hors périmètre)

Closes #15864

🤖 Generated with Claude Code

Un point suivi d'un blanc est de la ponctuation de phrase, jamais une
partie de <machine>:<workspace> ; un point interne (hostname, Foo.Bar)
survit. Implemente par (?<!\.) en tete de clause de continuation sur les
deux jumeaux _LANE_RE / _LANE_FALLBACK_RE : la capture s'arrete sur
`...CoursIA.`, le rstrip #12719 rend la lane nue, et le temoin
lane_marker_residues continue de declarer trailing-period:.

4e variante de la classe d'auto-blocage (#12145 x #12719 x #13830) :
le [DELIVERED] fondateur de #15674 (`lane myia-po-2023:CoursIA.
Enonce recrit ...`) creait la lane fantome `...CoursIA. Enonce` et
bloquait la PR #15733 sur sa propre livraison (gate FAIL, 8 reruns).

Controles : marqueur reel #15674 -> lane nue (primaire, fallback,
parse_grain_tag, temoin) ; _run_check payload reel CLEAR (rc 0) ;
6/6 nouveaux tests FAIL avant fix / PASS apres ; non-regressions
LivresAgites Episode, A.B, host.example:Baz, date nue, point final ;
402 tests grain_tag+lane_claim verts, 208 consommateurs verts.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions github-actions Bot added the lane-claim-absent Closing issue carries no claim at all (#10223) label Sep 13, 2026
@jsboige

jsboige commented Sep 13, 2026

Copy link
Copy Markdown
Owner Author

Superseded by #15866 (lane myia-po-2023:CoursIA, ouverte 2026-09-12T22:52Z — 2h avant ma claim : leur preflight n'a pas laissé de commentaire d'issue, et ma propre preflight n'a pas cherché les PR ouvertes citant #15864, seulement les commentaires — leçon consignée). Correctifs fonctionnellement identiques : même (?<!\.) en tête de clause de continuation sur les deux jumeaux _LANE_RE/_LANE_FALLBACK_RE, mêmes 3 fichiers, couverture équivalente (8 vs 7 tests). J'ai rejoué la suite de #15866 en local : 430 passed, 1 skipped — aucun apport de ma part qui manque. La première livraison gagne ; ma branche reste disponible si arbitrage inverse. Grâce au hasard du calendrier, ce grain reste MED/guard sur ma lane (claim + vérification + arbitrage), le fix vivra via #15866.

@jsboige jsboige closed this Sep 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane-claim-absent Closing issue carries no claim at all (#10223)

Projects

None yet

1 participant