fix(pipeline): sbx gate 模板假定沙箱有 uvx,lint 门 100% exit 127——config 已临时修复,需根治校验
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
The failing command is the lint gate template in the config.yaml on the VM (around line 377), and the gate is executed by flows/gates/gate_runner.py at line 103 through bash -c. Start by reading how gates.json commands are built and loaded, then decide between the three proposed fixes: a preflight command -v check before dispatch, installing uv in the sandbox image, or validating the config prefix at load time. Done means a new sbx run passes the g1 lint gate with no exit=127, and a template reverted to uvx fails fast in preflight.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
优先级 P2 · 依赖:无
基线 HEAD = 59cdc5e
Summary
- VM
~/.issue-keeper/config.yaml中 jeffkit/plaita 的 gate 模板(修复前行 377):command: uvx ruff check plaita tests --select E722——模板假定执行环境存在uvx。 - AGS 沙箱镜像内无 uvx:console 近 20 个
self-improve-v2-sbx执行中 8 个 g1 输出FAIL lint (fail) exit=127 bash: line 1: uvx: command not found(jeffkit/plaita #33/#27/#30/#23/#24/#25 等,2026-10-08 13:55 起凡跑到 lint 门者 100% 命中)。 - plaita
pyproject.toml:82依赖声明含ruff>=0.6——impl 环境(沙箱)已装 ruff 二进制且 impl agent 实跑过ruff check(#33/#27 的 impl 输出自证),缺的只是 uvx 包装器。 flows/gates/gate_runner.py:103:cmd = ["bash", "-c", gate["command"]]——shell 语义,支持环境前缀与 && 链,替代命令无需改 runner。- 值守临时修复(2026-10-09 14:20):config.yaml 该行已改
python3 -m ruff check plaita tests --select E722(备份config.yaml.bak-20261009;keeper 解析器 load_config 已核读到新值)。正在跑的旧执行不受影响,新派单已生效。
影响
每个 sbx 引擎 run 的 lint 门必失败一轮 → 必触发 fix-loop(SANDBOX_AGENT 预算 7200s)去装工具/绕过:每单多烧 20-40 分钟与一次 agent 预算;部分 run 因 fix 不动直接 failed-preserved。在途背压满(今日 shadow 全局背压 23 条到闸)时该浪费被放大。
建议
根治方向(可组合):
- 派发前置校验:pre/setup 阶段对 gates.json 各命令头做
command -v探测,缺失即 fail-fast(retry-later 或按白名单自动降级,如 uvx→python3 -m); - AGS 镜像装 uv:镜像层补齐,对所有仓 gate 生效;
- config 加载校验:keeper 解析 config 时对
command:前缀做已知可用性白名单检查,模板回归直接报错而非带病派发。
验收条件:新 sbx run 的 g1 lint 门一次通过(输出无 exit=127);人为把模板改回 uvx 时,preflight 能 fail-fast 而非跑到 g1 才炸。
边界
不改动门禁检查语义(仍是 ruff 同参数检查,仅修执行环境);不处理 recursive 自迭代主机引擎的独立问题(另行上报)。
- Lingua principale
- Python
- Stelle
- 0
- Fork
- 0
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di jeffkit/issue-keeper
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 15/100
jeffkit/issue-keeper#22 · 3 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 58/100
jeffkit/issue-keeper#19 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
jeffkit/issue-keeper#17 · 6 commenti ·
-
keeper-ignore
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
jeffkit/issue-keeper#16 · 2 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
jeffkit/issue-keeper#11 · 5 commenti ·
Tutte le issue di jeffkit/issue-keeper
Issue simili
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
yunaremaia/proto-drift#22 ·
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
yunaremaia/memwatch#96 ·
-
bug good first issue
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 91/100
yunaremaia/ci-gate-watch#34 ·
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
yunaremaia/agent-capability-attestation#64 ·
I maintainer di solito rispondono entro 1 giorno
-
bug good first issue
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
yunaremaia/agent-call-graph#43 ·
I maintainer di solito rispondono entro 1 giorno