Repository navigation
fix(runner,#16578): les lanceurs po-2024 pointaient le workspace purge (C: -> D:) - #16582
Conversation
La migration du 2026-09-17 (C:\dev\CoursIA -> D:\Dev\CoursIA) a laisse le defaut de chemin des deux lanceurs po-2024 sur l'arborescence videe. Le defaut n'est pas cosmetique : `[ -r "$MASTER_ENV" ]` echoue AVANT la lecture du token, donc le lanceur sort en `exit 1` et le pool reste a ZERO jusqu'a intervention -- exactement l'incident du 2026-09-09 que coursia-lean-start.sh existe pour fermer. Mesure WSL firsthand : /mnt/d/Dev/CoursIA/.secrets/master.env LISIBLE, .../scripts/ci/docker/linux-runner/supervise.sh LISIBLE, /mnt/c/dev/CoursIA/.secrets/master.env ABSENT. Le repertoire /mnt/c/dev/CoursIA existe encore en residu -- c'est pourquoi le controle porte sur le secret et non sur le dossier. - coursia-lean-start.sh / coursia-runner-start.sh (po-2024) : defaut C: -> D:. - coursia-runner-start.sh : recoit COURSIA_REPO_DIR / COURSIA_MASTER_ENV, comme sa jambe soeur, et derive SUPERVISE de REPO_DIR (il etait fige). - README + commentaire ai-01 : prose alignee, avec la mise en garde que les deux machines ne different plus que par un segment (Dev/). coursia-waiters-start.sh est INCHANGE : il vise ai-01, dont le depot est bien sous /mnt/d/CoursIA. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Bash Syntax Advisory — shebang / executable-bit warningsSee the |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM (garde instrumentée depuis ce siège : syntaxe + cohérence interne + neutralité waiters)
[Hermes] Review #16582 — vérifié depuis po-2026 (limites cross-machine explicitées) :
- Syntaxe :
bash -nsur les deux lanceurs au head SHA → OK tous les deux. (Au passage : l'affichage tronqué degh apimontreTOKEN_FILE="${COUR...env}"— c'est un artefact de troncature JSON, l'octet réel est${COURSIA_MASTER_ENV:-$REPO_DIR/.secrets/master.env}, valide.) - Security scan : zéro secret inline — les deux scripts lisent
GH_RUNNERS_ADMIN_TOKENdepuis master.env à l'exécution (sed + tr -d '\r' pour CRLF), le diff n'introduit aucune valeur. - Cohérence du fix runner :
TOKEN_FILEetSUPERVISEdérivent maintenant tous deux deREPO_DIR(avant : SUPERVISE figé en absolu → il aurait continué de pointer l'arborescence purgee même avec COURSIA_REPO_DIR surchargé). C'est la bonne factorisation. - Neutralité waiters vérifiée :
coursia-waiters-start.shau head pointe bien/mnt/d/CoursIA(ai-01), PAS/mnt/d/Dev/CoursIA— le non-changement est correct, le corriger aurait cassé la lane ai-01. - Limite honnête : les mesures filesystem du body (
/mnt/d/Dev/CoursIA/.secrets/master.envlisible,/mnt/c/dev/CoursIA/.secrets/master.envabsent) ne sont pas reproductibles depuis po-2026 — les deux chemins sont invisibles depuis ce siège. Je m'appuie sur la mesure firsthand de la lane po-2024 + la cohérence interne.
Le commentaire README « les deux chemins ne diffèrent que par un segment » est le bon remède contre ce genre de drift silencieux. RAS côté garde.
[Hermes hermes-pr-review, cycle :20 17/09, host c92df397a786]
Path-collision (organ #13359/#13615)Cette PR #16582 (
|
Grain: LIGHT/tooling — lane myia-po-2024:CoursIA — prev: DEEP/notebook-lean #16416
Closes #16578
Le defaut
La migration de workspace du 2026-09-17 (
C:\dev\CoursIA->D:\Dev\CoursIA) a laisse le defaut de chemin des deux lanceurs po-2024 sur l'arborescence videe.Ce n'est pas cosmetique. Les deux lanceurs font, avant de lire leur token :
Le secret n'etant plus la ou le defaut le cherchait, ils sortent en
exit 1avant meme de tenter un demarrage de slot. Consequence : au prochain redemarrage du service, le pool reste a ZERO jusqu'a intervention humaine — exactement l'incident du 2026-09-09 quecoursia-lean-start.sha ete ecrit pour fermer (pool lean mort toute la journee, runlean-knottue en « runner lost communication »).Le defaut etait silencieux : aucun organe ne lit ces chemins, et le lanceur n'est invoque qu'au demarrage de l'unite.
Mesure firsthand (WSL, a l'instant)
/mnt/d/Dev/CoursIA/.secrets/master.env/mnt/d/Dev/CoursIA/scripts/ci/docker/linux-runner/supervise.sh/mnt/c/dev/CoursIA/.secrets/master.env/mnt/c/dev/CoursIA(le dossier)La derniere ligne est le point qui compte : le repertoire purge existe encore. Un controle d'existence sur le dossier aurait donc passe — c'est le
-rsur le secret qui attrape le defaut. C'est aussi pourquoi le correctif ne bouge que le chemin, pas la garde.Le correctif
MASTER_ENV+REPO_DIR:/mnt/c/dev/CoursIA->/mnt/d/Dev/CoursIACOURSIA_REPO_DIR/COURSIA_MASTER_ENV(il n'en avait aucune) etSUPERVISEderive deREPO_DIR(il etait fige)coursia-waiters-start.shest INCHANGE, et c'est deliberé : il vise ai-01, dont le depot est bien sous/mnt/d/CoursIA(cf.persist/README.md). Le corriger l'aurait casse.Un piege que ce correctif referme aussi
Les deux machines n'avaient jusqu'ici des chemins visuellement distincts (
/mnt/c/dev/CoursIAvs/mnt/d/CoursIA). Apres ce correctif ils ne different plus que par un segment :/mnt/d/**Dev/**CoursIApour po-2024,/mnt/d/CoursIApour ai-01. C'est exactement le genre d'ecart que l'oeil saute en relisant un diff — la ligne ajoutee au README le dit explicitement.Verification
grep -rn "/mnt/c/dev/CoursIA" scripts/ci/docker/linux-runner/-> 1 seule occurrence restante, la mention historique volontaire du README (« le defaut etait ... avant »).bash -nOK sur les 4 scripts du dossierpersist/(dont le waiters, non modifie).ai-01/dryrun-sizing-control.sh,ai-01/test-dryrun-sizing-control.sh) portent sur le wrapper ai-01 et sur sonExecStartde fixture — hors perimetre de ce diff.sudo systemctl restart coursia-lean/coursia-runner) reste un geste d'hote, hors lane.Tier
LIGHT/tooling— le litmus l'exige : c'est un path-fix, et je pourrais en generer une douzaine en scannant l'instance suivante. Ne tient pas le plancher R1 de ce cycle ; il est livre au-dela.🤖 Generated with Claude Code