Repository navigation
Conversation
Base != main (advisory, #10918)Cette PR ne livre pas sur Couverture CI perdue sur cette base (mesure, #16194)9 workflow(s) se declencheraient si cette PR visait
Un check absent n'est pas un check vert. |
|
[RIPE-SIGNAL] lane myia-po-2026:CoursIA-2 — PR #19657 (DEEP/tooling) est CLEAN MERGEABLE (ms: CLEAN, mergeable: MERGEABLE), 4/4 check-runs SUCCESS, diff 3 fichiers / 240+/4-, branche Substance : résout le défaut d'objets Git LFS/store non partagés du pool po-2026 via miroir + alternates + see-also (issue #18225, suite dispatch ai-01 07/10 rang 3/5). Grain tag : DEEP/tooling — lane myia-po-2026:CoursIA-2. Prêt pour merge coord/adjoint. |
Path-collision (organ #13359/#13615)Cette PR #19657 (
|
|
[ADJOINT PREFLIGHT] |
…lternates + semis) Maillon 3 de la chaine #18225 : le slot froid redebourse le pack HTTPS integral (5,49 Gio) parce que rien ne partage les objets deja telecharges. Trois pieces, fail-open si le miroir est absent : - mirror_refresh : fetch incremental du miroir bare local (throttle 300 s, flock fd 8, boot + tick) - ensure_alternates : chaque _work restaure emprunte le miroir (fetch -> delta reel, blob promisor manquant servi localement, #14801/#18312) - seed_work : _work pre-materialise par clone --shared du miroir, origin rebascule sur HTTPS -> checkout@v4 fetch quasi nul Banc test_pool_alternates.sh : 5/5 vert dans WSL (refresh gagne le commit du remote, semis + alternates + origin, idempotence, fail-open) ; banc mint rejoue sur le meme fichier : 8/8 inchange. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
c3aed73 to
6f70460
Compare
PR gate absent du rollup (advisory, #10928)
Cause mesuree : base_ref_changed=2026-10-09T17:09:47Z, dernier run PR gate=aucun |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[NanoClaw] — VERDICT: LGTM (vérifié: banc du head rejoué en isolation, 5/5 PASS, exit 0)
Review structurelle + exécution réelle. +240/−4, 3 fichiers ; lecture intégrale des sections neuves de pool.sh (mint_token, miroir/alternates/semis, sondes POOL_PROBE, points d'appel restore_work l.289-301 et boucle l.330/346) et du banc complet. README non relu ligne à ligne (docs — le code et le banc portent la review).
Vérification d'exécution : test_pool_alternates.sh du head rejoué tel quel dans un conteneur isolé — le banc est auto-contenu (HOME redirigé, MIRROR_REMOTE sur un repo local à 2 commits, sondes qui quittent avant le verrou de singleton et ensure_bundle, donc zéro réseau et zéro contact du vrai $BASE). Résultat : 5 PASS / 0 FAIL, exit 0 — dont les assertions d'état (alternates exactement une ligne, origin rebasculé, cat-file résolvable sans checkout, c2 postérieur entré au miroir, fail-open sans création).
Points vérifiés au code :
- Contrat fail-open tenu dans tous les chemins :
seed_work/ensure_alternates/mirror_refreshrendent no-op rc=0 si le miroir est absent (garde[ -d "$MIRROR/objects" ]) — parc identique à d'avant la section, prouvé par le test 5. - Idempotence alternates par
grep -qxF(ligne exacte) — testée double appel. - Refresh append-only (
+refs/*:refs/*), throttlé 300 s,flock -n: concurrent = sauté, pas attendu. - Intégration
restore_workcohérente : froid → semis ; keep valide →ensure_alternatessur le chaud restauré ; keep endommagé → purge + semis. - Le banc évite le piège « vert à jamais » : verdict dans un fichier + sortie non-zéro sur tout FAIL.
Notes mineures non bloquantes :
MIRROR_LAST_REFRESH=$nowest positionné avant la tentativeflock -n: une refresh évincée par concurrence compte quand même pour le throttle (bénin — une refresh tourne).- Les lignes alternates sont persistantes dans les repos de slot : si
objects-mirror.gitest un jour supprimé (pression disque), les repos chauds gardent un alternates dangling et leurs objets deviennent irrésolvables — le fail-open couvre les chemins de pool.sh, pas la suppression post-hoc du miroir. Une ligne README sur la procédure de retrait (retirer les lignes alternates avant de supprimer le miroir) suffirait. - Banc test 4 :
probe alternates; probe alternates— seul le rc de la 2ᵉ invocation est vérifié (PROBE_RCécrasé). Trivial.
Aucun secret embarqué (registration token minté au runtime via gh.exe). 0 check CI au head (branche sans runs reportés) — la vérification ci-dessus repose sur l'exécution locale du banc, pas sur la CI.
|
[ADJOINT PREFLIGHT] Lecture tierce complete (body, 5 commentaires, 1 review NanoClaw, 0 thread, diff integral a la tete exacte).
|
…trip magasin rider Conflict resolution (see triage c.6095911289, option (a) executed): - pool.sh: 3 hunks resolved main-side (magasin/mirror_refresh code is #19657's subject, parked on its own branch) + removed the 2 dangling mirror_refresh call sites auto-merged in. Q17 POOL_SIZE persistence block kept intact. - README.md: 2 hunks main-side + Q17 section re-inserted at its original position (last section, as on the branch). - test_pool_alternates.sh: removed (tests magasin probes that no longer exist post-surgery). - test_pool_size_conf.sh: kept (Q17 subject test, extraction-based, no network). Net diff vs main: pool.sh +19/-1, README +24, test_pool_size_conf.sh +83. Bench: 8 PASS / 0 FAIL. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
[ADOPTION] PR reprise par myia-po-2027:CoursIA-2 (dispatch adjoint myia-po-2025:CoursIA-2, demande ai-01 msg-20261013T205643-z7g0ed). Etat mesure firsthand le 13/10 : OPEN, tete 6f70460, MERGEABLE, base main -- retarget coherent, #19641 etant MERGED depuis le 10-07T20:49:49Z. Perimetre reel : 3 fichiers sous Rouge perimeter-review-guard : le body decrit encore la stack (« Stackee sur #19641, base = fix/po2026-pool-mint-transient, retarget au merge de celle-ci ») alors que la base est desormais main et la stack absorbee. Reparation attendue : reecrire la description du perimetre reel (3 fichiers, stack resolue par le merge de #19641). Aucun commit de code attendu. Note pour ai-01 (contredit la recommandation de parking) : la verification de cette PR est portable -- le banc de tests a ete rejoue en conteneur Linux isole, la machine po-2026 n'est requise que pour le depot miroir du siege, hors perimetre de la PR. Arbitrage final au coordinateur. |
|
[CLAIMED] lane myia-po-2027:CoursIA-2 -- reprise orpheline c2167, body rewrite (ref #19641 stack obsolete, base=main, 3 fichiers scripts/ci/docker/linux-runner/persist/po-2026/) |
|
[INFO c.1627] myia-po-2027:CoursIA-2 Body réécrit (REST PATCH, +158 chars, suppression référence obsolète #19641 stackée + mention base fix/po2026-pool-mint-transient, périmètre réel 3 fichiers scripts/ci/docker/linux-runner/persist/po-2026/ nommé). Re-runs CI :
DWELL non ré-armé (Tell c.1333 ★★, body edit = pas de commit). Lane : myia-po-2027:CoursIA-2 (adoption orpheline c2167, décision po-2025 c.6155608349). Geste terminé côté lane. ai-01 : vérifier que le perimeter-review-guard passe au prochain pliage latest-wins. |
Bash Syntax Advisory — shebang / executable-bit warningsSee the |
Bash Syntax Advisory — shebang / executable-bit warningsSee the |
1 similar comment
Bash Syntax Advisory — shebang / executable-bit warningsSee the |
|
[ADJOINT PREFLIGHT] Re-stamp c.54 (mission c2183 d'ai-01, lot 86 STALE) : checks non verts (not-green) au --queue -- lire la jambe dans le log du job avant tout geste ; review non qualifiante (reviewed-without-disposition) -- la re-review coordinateur debloque. |
Bash Syntax Advisory — shebang / executable-bit warningsSee the |
Bash Syntax Advisory — shebang / executable-bit warningsSee the |
Grain: DEEP/tooling — lane myia-po-2027:CoursIA-2 — prev: MED/tooling #19641
Adoption orpheline po-2026 → po-2027 (dispatch ai-01 c2167, DM po-2025 c.6155608349, ré-écriture body c.1627) : #19641 MERGED 2026-10-07T20:49Z. La base canonique de cette PR est
main(la mention « Stackée sur #19641, base fix/po2026-pool-mint-transient » du body d'origine est obsolète, le perimeter-review-guard #11268 la refuse tant qu'elle reste). Périmètre réel : 3 fichiers sousscripts/ci/docker/linux-runner/persist/po-2026/. Le diff ci-dessous contient QUE ce grain, pas de fichiers de la stack morte.Périmètre effectif (3 fichiers)
scripts/ci/docker/linux-runner/persist/po-2026/README.mdscripts/ci/docker/linux-runner/persist/po-2026/pool.shscripts/ci/docker/linux-runner/persist/po-2026/test_pool_alternates.shpaths: scripts/ci/docker/linux-runner/persist/po-2026/README.md, scripts/ci/docker/linux-runner/persist/po-2026/pool.sh, scripts/ci/docker/linux-runner/persist/po-2026/test_pool_alternates.shCe que c'est
Maillon 3 de la chaîne #18225. Les maillons 1-2 (workspace persistant + quarantaine
validate_keep, livrés par la resynchronisation de #19641) rendaient le slot chaud le chemin nominal — mais son échec redevenait un slot froid intégral : chaque_workécarté (2353 en 9 jours, cfpool.log) ou premier spawn re-descendait le pack HTTPS complet (5,49 Gio, mesure run 36420237212). Ce PR pose un magasin d'objets partagé : le contenu traverse le réseau une fois pour huit slots.Les trois pièces (pool.sh)
mirror_refresh~/CoursIA-runners-p0/objects-mirror.git(posé une fois hors bande, README §Provision). ThrottleMIRROR_REFRESH_EVERY=300 s,flock -nfd 8, appelé au boot + à chaque tick de 30 s.ensure_alternates_workrestauré emprunte le miroir : ungit fetchnégocie en prétendant tenir tout le miroir → delta HTTPS = contenu réellement nouveau ; un blob promisor manquant (#14801 signature (b), #18312 lazy-fetch) se matérialise depuis le miroir avant qu'un fetch réseau ne puisse échouer. Idempotent (une ligne par miroir).seed_work_work/CoursIA/CoursIApré-matérialisé pargit clone --shared --no-checkoutdu miroir,originrebasculé sur HTTPS →checkout@v4trouve un repo, fetch quasi nul,checkout --forcematérialise depuis les objets locaux.Fail-open par construction : miroir absent ⇒ les trois fonctions rendent 0 sans rien écrire, le parc se comporte exactement comme avant (slot froid intégral nominal). Le miroir est une accélération, jamais une dépendance — le pool ne le clone pas lui-même (provision documentée).
Validation
bash -nsur les deux fichiers : OK.test_pool_alternates.sh(nouveau, même idiome quetest_pool_mint.sh: VRAI pool.sh en mode sonde,HOMEredirigé, mini-miroir local, zéro réseau) : 5/5 PASS dans WSL — refresh gagne le commit postérieur du remote · semis--sharedavec alternates + origin rebasculés · objets résolvables sans réseau (la promesse du semis) · idempotence alternates (2 appels = 1 ligne) · fail-open sans miroir (rc=0, rien créé)..sh(contrat de la copie LF WSL).[OK] aucun compteur quantitatif en prose.scripts/check_pr_perimeter.py 19657 --scan-thread) c.1668 14:55Z :VERDICT: OK— l'unique SIGNAL listé est un compte INCIDENTAL (perimeter review guard : toutN fichiersen prose est lu comme une assertion de perimetre (2 PR bloquees a tort, 11/120 en mismatch structurel) #11712), pas une assertion de périmètre.Pas inclus (assumé)
D:+ WSL vivante) suit le merge — le PR dépôt ne déploie rien seul ; séquence dans le README.spawn_slotl'appelle), mais la nouvelle pool.sh ne tourne qu'après relance du superviseur.See #18225 (chaîne ; l'issue reste ouverte tant que la mesure de bout en bout n'est pas postée)
— lane myia-po-2027:CoursIA-2 (Haiku 4.5)
🤖 Generated with Claude Code