Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン
#21 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
bash, python
領域
ci-cd

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

优先级 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 自迭代主机引擎的独立问题(另行上报)。

主要言語
Python
スター
0
フォーク
0
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

jeffkit/issue-keeper のほかの issue

jeffkit/issue-keeper の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。