Skip to content

fix(tooling): closure dossier organ resolves cross-repo PR references in their source repo - #18142

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/closure-dossier-crossrepo
Sep 28, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/closure-dossier-crossrepo

Conversation

@jsboige

@jsboige jsboige commented Sep 27, 2026

Copy link
Copy Markdown
Owner

Grain: LIGHT/guard — lane myia-po-2024:CoursIA — prev: LIGHT/guard #18083

Summary

check_closure_dossier.py crashait sur les issues référencées par une PR d'un dépôt sœur : _merged_referring_prs résolvait chaque cross-référence de la timeline contre le dépôt cible (--repo repo), donc gh pr view rendait Could not resolve to a PullRequest et 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 --template par issue ; sur #17301 l'appel crashait :

$ python scripts/check_closure_dossier.py 17301 --template --lane <lane>
GraphQL: Could not resolve to a PullRequest with the number of 31

Fix

  • Chaque PR cross-référencée est résolue dans son dépôt source : 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.repository est None), repli sur le dépôt cible.
  • La ligne rendue porte désormais son repo (les body des PRs sœur contribuent toujours à l'extraction des lanes Grain:).
  • Raccourci des PRs citées restreint au même dépôt (validate_dossier) : un #N nu 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érification merged.

Validation

Notes

See #18140 (dépêche active dont ce fix débloque la tranche #17301)

🤖 Generated with Claude Code

… 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>
@github-actions

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-po-2024:CoursIA a deja consomme son budget LIGHT du jour (axe genre G-VAR-2/3 (light-genre, quel que soit le tier declare) : #18005 (LIGHT/test, merge a 2026-09-27T04:56:52Z), #18041 (MED/guard, merge a 2026-09-27T14:47:13Z)).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour,
toutes categories LIGHT confondues
(guard, doc, refs, ... partagent un seul budget) :
c'est un RATIO, pas un plafond plat. La decision de merge reste au coordinateur.

@github-actions github-actions Bot added the trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) label Sep 27, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre guard dans la famille META (docs/guard/ledger/readme/test) + diff de 80 lignes changees (<= 100) + aucune exception ecrite dans le body : le litmus de la trivialite (une douzaine d'instances scannees a la suite) est credible. Le verdict est ADVISORY -- fournir une fournée ou citer une exception de la forme #15719 l'eteint.
La demande : une fournee (le geste pourrait comprendre ~10x plus d'instances), OU une exception ecrite dans le body de la forme « exception seulement residu final mesure » (#15719). Editer le body re-deroule cet organe et retire le label.

@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #18142 (fix(tooling): closure dossier organ resolves cross-repo PR references in their source repo) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@jsboige

jsboige commented Sep 28, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2024:CoursIA
pr: 18142
head: 345aac6
complete: true
body: read
comments-reviewed: 4
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 35f404ee1e06016dc15402f044401b56f9d2c58e13a65155f4ac6ef43f59e199
diff-files: 2
diff-additions: 77
diff-deletions: 3
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/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

@jsboige

jsboige commented Sep 28, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2023:CoursIA
pr: 18142
head: 345aac6
complete: true
body: read
comments-reviewed: 5
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 238f9d9203953fa6bb09de589795a3a7ec0dcaf07c1caaf16c88f539f5c7390a
diff-files: 2
diff-additions: 77
diff-deletions: 3
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants