ci/pin-flake8
main
修正 19a76e2 的错误归因:flake8/pycodestyle 版本无漂移(CI venv 与 本地用户站完全同版 7.3.0/2.14.0,已对拍排除)。真正差异是解释器: - runner PATH 首位 /opt/homebrew/bin(7-5 起 python3→3.14.6) - Python 3.12+ 重写 tokenize,pycodestyle E122 判定翻转 - 同一 toolchain_routes.py:1217:3.9 零报错 / 3.14 报 E122(实证) - 6-25 绿色基线的 CI venv 是 python3.9(6月任务日志实证) - 另:pydantic<2 无 3.14 wheel,test job 在 3.14 下必挂 本地预验证(/usr/bin/python3 3.9.6,CI 同款命令): - lint: flake8 7.3.0 全量 src/ exit=0 零报错(两轮) - test: 同款依赖 503 passed / 9 skipped / 0 failed 交付检查:docs/design 无需更新(环境策略写入 ci.yml 注释);tests 无需更新(本提交含全量预验证)。
19a76e2
根因:ci.yml lint 步骤 pip install flake8 未锁版本,runner 每次装最新版。 2026-09-11 新版 pycodestyle 对 main 现存代码(toolchain_routes.py:1217)报 E122,而该代码 2026-06-23 后未改动、06-25 CI 绿——纯工具版本漂移,main 全量 lint 现已必红,阻塞所有 PR(含挂起 9 天的 #131)。 证据:本地 flake8 7.3.0 (pycodestyle 2.14.0) 对 origin/main 全量 src/ 零报错(exit=0);CI 同款命令最新版报 1217:21 E122。 处置:锁定 7.3.0(实证绿版本),版本策略写入 ci.yml 行内注释。 纯 CI 配置变更,不碰业务代码。 交付检查: - docs/design:无需更新(设计文档未规定 flake8 版本策略,ci.yml 注释即现行说明) - tests:无需更新(纯 CI 配置,本 PR 自身 CI 即验证)