Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

fix(pipeline): sbx gate 模板假定沙箱有 uvx,lint 门 100% exit 127——config 已临时修复,需根治校验

Aperta
#21 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
bash, python
Ambito
ci-cd

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 条到闸)时该浪费被放大。

建议

根治方向(可组合):

  1. 派发前置校验:pre/setup 阶段对 gates.json 各命令头做 command -v 探测,缺失即 fail-fast(retry-later 或按白名单自动降级,如 uvx→python3 -m);
  2. AGS 镜像装 uv:镜像层补齐,对所有仓 gate 生效;
  3. 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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di jeffkit/issue-keeper

Tutte le issue di jeffkit/issue-keeper

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.