mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-11-12 04:07:34 +00:00
## CI 42555311224 红在「包依赖门」
::error::go list -deps github.com/.../internal/agent/core|internal/kernelboot 失败
两个真实 shell 缺陷,都是我上一提交写进去的:
1. `while read -r pkg bad` 没设 `IFS='|'` ⇒ 整行塞进 pkg,
go list 收到 `core|internal/kernelboot` 这种不存在的包路径。
2. `echo "$forbidden_pairs" | while ...` 用管道 ⇒ while 在子 shell 里跑,
里面 `fail=1` 传不出来。即使检出违规依赖,门也会**静默变绿** ——
比红更糟。
改为 `while IFS='|' read ... done <<< "$forbidden_pairs"`,
并用 `grep -c` 显式取命中数(`grep -q` 在 `set -e` + `||` 组合下易误判)。
**变异验证**(针对第 2 条那个假绿入口):
往禁止表插入一条真实存在的依赖 `core|internal/agent/api`:
正向 rc=0
变异后 rc=1
::error::internal/agent/core 反向依赖了 internal/agent/api —— 分层退化
## 顺带清掉 lint 标 STOP 的既有问题
- ci.yml 13 处 >80 字符行全部折行(含 awk 覆盖率那段 230 字符长行)
- shellcheck SC2086 ×2:`echo $ALL` / `echo $PKGS` 补引号
- shellcheck SC2129:三条 GITHUB_OUTPUT 重定向合成 `{ ... } >>`
`python3 .github/scripts/check-ci-gates.py` 通过;
本地实跑两道新门(测试归拢 / 包依赖)均通过。