Repository navigation
Fix(#17407): aligner gh du parc natif po-2026 sur l'epingle image (2.99.0) - #19797
Conversation
…99.0) Le parc natif po-2026 honore le contrat d'image par un PATH exporte, mais `gh` y etait en 2.90.0 la ou le Dockerfile epingle 2.99.0 + SHA-256 : divergence nommee dans le README du parc, jamais corrigee, et invisible a `command -v gh` — la sonde d'existence ne distingue pas "present" de "conforme". - pool.sh: ensure_host_contract() crie desormais sur toute divergence de version (nouveau controle, meme forme non bloquante que le reste du gate) ; - README: la section divergence passe de "nommee, non corrigee" a "corrigee le 2026-10-08" (release Linux officielle, SHA-256 du Dockerfile verifiee, mv atomique), et la sequence de deploiement gagne la sonde de version ; - geste parc: ~/.local/bin/gh = 2.99.0, resolu par le PATH des Runner.Worker vivants (mesure /proc/<pid>/environ) sans redemarrage du pool. Preuves: controle positif du gate rc=0 (gh 2.99.0) ; controle negatif rc=1 sur un faux gh 2.90.0 ; banc test_pool_mint.sh 8 PASS / 0 FAIL. See #17407 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
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 |
Bash Syntax Advisory — shebang / executable-bit warningsSee the |
|
[ADJOINT PREFLIGHT] |
Path-collision (organ #13359/#13615)Cette PR #19797 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
Grain: MED/tooling — lane myia-po-2026:CoursIA — prev: MED/notebook-python #19738
Ce que la PR fait
Ferme le dernier volet ouvert de l'arc
#17407cote parc : la divergence de version deghentre le parc natif po-2026 et l'imagecoursia-linux. Le binaire est aligne sur l'epingle du Dockerfile, et le contrat cesse d'etre muet sur la version.Parc (geste, deja execute) —
~/.local/bin/ghsur l'hote WSL po-2026 passe de2.90.0a2.99.0, la release Linux officielle, SHA-256 verifiee contre le pin du Dockerfile (l.74,ed4960225d…f3832), posee parmvatomique. LesRunner.Workervivants ont~/.local/binen tete de leurPATH(mesure/proc/<pid>/environ) : leurs execs deghulterieurs resolvent 2.99.0 sans redemarrage du pool — un redemarrage aurait tue les jobs en vol des autres lanes.pool.sh—ensure_host_contract()crie desormais sur toute divergence de version (gh --version!= le pin), pas seulement sur l'absence. C'est la lecon exacte du fil : « present » n'est pas « conforme », et l'ecart 2.90.0 etait invisible tant que la sonde se contentait decommand -v gh(ci(runners): deux parcs partagent les labels coursia-linux avec deux contrats differents -- les slots natifs po-2026 n'ont ni python nu ni gh, et 2 rouges du jour viennent de la #17407 c. 2026-09-22 11:54Z, l.277 du README). Non bloquant comme le reste du gate, par construction.README.mddu parc — la section divergence passe de « nommee, non corrigee » a « corrigee le 2026-10-08 », avec la discipline appliquee (release + SHA verifiee + mv atomique) et ce que la correction ne pretend pas. La sequence de deploiement gagne la sonde de version a cote de la sonde d'existence, pour que le prochaininstallne repose pas un binaire non conforme en silence.Preuves
ed4960225d2833e04a61590d9fa2b5773d147f3aa375459e5466a40c102f3832 /tmp/gh.tar.gz->OKgh version 2.99.0 (2026-09-01)command -v gh->/home/jesse/.local/bin/ghsousPATH=~/.local/bin:…Runner.Worker:PATH=/home/jesse/.local/bin:…en tete (/proc/<pid>/environ)ensure_host_contractsur l'hote reel -> ligne OK,rc=0gh2.90.0 dans unHOMEdetourne -> le gate criegh 2.90.0 != 2.99.0,rc=1test_pool_mint.sh(8 cas,POOL_PROBE=mint-token, sans effet de bord)Ce que la PR ne pretend pas
PATHexporte + des binaires poses a la main, pas par une image. La divergence est contenue et gardee, pas supprimee — un workflow qui dependrait d'un outil que seule l'image fournit rouvrirait la classe.install(mv) atomique, sur le superviseur vivant, sans couper les jobs en vol.Deployment
Les trois copies (depot, source
D:, vivante WSL) sont posees avec le meme contenu, md5 cite dans le rapport de cycle — le mode de defaut que la section « Derive depot <-> vivant » du README documente (trois correctifs deployes en WSL sans redescendre au depot, mesures du 2026-10-07) est precisement ce que ce geste evite.See #17407 — le volet depot (setup-python sur les 3 jobs) est livre par #18821 ; le volet parc
python/ghet le tool-cache sont livres.🤖 Generated with Claude Code