Repository navigation
fix(tooling): closure dossier organ resolves cross-repo PR references in their source repo - #18142
Conversation
… in their source repo _merged_referring_prs resolved every cross-referenced PR against the target repo, so a sister-repo reference crashed the organ with "Could not resolve to a PullRequest" -- measured on #17301 (MyIntelligenceAgency/Z3.Linq#31, merged 2026-09-23, cross-references the issue), which blocks the Lot D dispatch #18140: the --template call could not even render. Each cross-referenced PR is now resolved in its own repository (source.issue.repository.full_name, payload measured live; falls back to the target repo), and the row carries its repo. The cited-PR fast path is restricted to same-repo rows: a bare #N in a dossier designates a target- repo PR, never the same-numbered PR of a sister repo. Tests: 30 passed (2 new -- cross-repo resolution + fast-path guard). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
G-VAR-2 light cap reached (advisory, non bloquant). |
|
Trivial-diff advisory (#15740, non bloquant). |
Path-collision (organ #13359/#13615)Cette PR #18142 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
[ADJOINT PREFLIGHT] -- SELF-LANE (jamais couverte ; demande acceptation directe ai-01, précédent #18047) : B.0 rc=0 vérifié ce cycle, 19 jambes latest-wins sans rouge à 345aac6. lane myia-po-2024:CoursIA |
|
[ADJOINT PREFLIGHT] -- Dossier tiers (lane myia-po-2023:CoursIA) au head 345aac6 ; le dossier 08:27Z est self-lane. Preuves firsthand : 19 check-runs au head, ZERO failure/pending. Verication L1356 (collision TERMINALE avec #18098, memes fichiers 100%, deja sur main) : sujet ENCORE VIVANT -- l'organe de main echoue reproduit a l'instant sur le cas fondateur #17301 ("GraphQL: Could not resolve to a PullRequest with the number of 31" -- reference cross-repo MyIntelligenceAgency resolue contre le depot cible), donc #18142 ne re-livre pas #18098. Scope conforme : 2 fichiers +77/-3, resolution des references cross-repo dans leur depot source. NOTES arbitrage coord (advisory) : G-VAR-2 light cap du 27/09, trivial-diff advisory. |
Grain: LIGHT/guard — lane myia-po-2024:CoursIA — prev: LIGHT/guard #18083
Summary
check_closure_dossier.pycrashait sur les issues référencées par une PR d'un dépôt sœur :_merged_referring_prsrésolvait chaque cross-référence de la timeline contre le dépôt cible (--repo repo), doncgh pr viewrendaitCould not resolve to a PullRequestet l'organe sortait en erreur — avant même de rendre le template.Mesure fondatrice (2026-09-28) : #17301 est référencée par
MyIntelligenceAgency/Z3.Linq#31(merged 2026-09-23T18:39:12Z). Le dispatch Lot D #18140 exige--templatepar issue ; sur #17301 l'appel crashait :Fix
source.issue.repository.full_name(emplacement mesuré sur le payload live de la timeline [Z3.Linq] port PR endjin#98 — borner chaque symbole entier a la plage de son type (verdict G1-bis NOUVEAU-POUR-NOUS) #17301 —source.repositoryestNone), repli sur le dépôt cible.repo(les body des PRs sœur contribuent toujours à l'extraction des lanesGrain:).validate_dossier) : un#Nnu dans un dossier désigne une PR du dépôt cible — une PR de même numéro venue d'un dépôt sœur ne doit pas court-circuiter la vérificationmerged.Validation
python -m pytest scripts/tests/test_check_closure_dossier.py: 30 passed (2 nouveaux tests : résolution cross-repo contre le vrai payload + garde du raccourci).--templaterend rc=0 sur [Z3.Linq] port PR endjin#98 — borner chaque symbole entier a la plage de son type (verdict G1-bis NOUVEAU-POUR-NOUS) #17301 (le cas crash) et sur test-hygiene: une assertion de test peut imprimer un secret reel dans la sortie (mesure #17269, forme negative d'assertion) #17276 (contrôle sans cross-ref).repos/jsboige/CoursIA/issues/17301/timeline— le test encode la structure réelle (source.issue.repository), pas une forme inventée.Notes
See #18140 (dépêche active dont ce fix débloque la tranche #17301)
🤖 Generated with Claude Code