修复AGC内置Skill内容指纹
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / Backend tests (pull_request) Failing after 12s
Project CI / Frontend tests (pull_request) Successful in 4m10s
Project CI / Native shell tests (pull_request) Successful in 16m44s

重算并修正三项内置AGC Skill的内容指纹

提升审核Skill Pack版本并补充指纹回归防范记录
This commit is contained in:
2026-08-22 15:24:31 +08:00
parent 00b78c9701
commit b4233bc97b
2 changed files with 5 additions and 4 deletions
@@ -4235,6 +4235,7 @@
- 现象:内置 Skill 文件集合没有缺失,原生测试却统一报内容指纹不匹配;另一个测试在 Linux 上把 `C:\\temp\\SKILL.md` 判为安全相对路径,受控资源工具可能继续处理 Windows 盘符或反斜杠遍历形式。
- 原因:审核文件定稿后未按最终字节重新生成 manifest SHA-256;同时 `std::path::Path` 只按当前宿主语义解析路径,Linux 不会把 Windows 盘符和反斜杠视为绝对路径或分隔符。
- 处理:Skill 文件变化与 manifest 指纹更新必须同次提交,并提升审核包版本;资源引用只接受使用 `/` 的普通相对段,显式拒绝反斜杠、冒号盘符、UNC、绝对路径和父目录段,再查询审核清单。不要先把反斜杠替换成 `/` 后再做安全检查。
- 回归补充:即使 Skill 文件本轮没有变化,也不能从旧提交或旧构建结果复制清单指纹;必须对当前工作树最终字节现场重算,并在提交前运行原生 Skill Pack 校验。运行时只报告排序后的首个不匹配项,不能据此假定其余 Skill 已通过。
- 验证:逐项按排序后的 `relativePath + NUL + file bytes + NUL` 重算并核对 manifestRust 单测同时覆盖 POSIX 绝对路径、`..``C:\\...``C:/...`、UNC 和反斜杠相对路径,受控 MCP 工具也必须把 Windows 绝对路径投影为 `isError=true`
## Gitea CI 预构建镜像不能只靠 tag 判断内容