记录打包遍历与预检口径不一致的取舍

resources/agc-skills/vite-export-xhs-minitool/scripts/pack.mjs:collectZipEntries 补注释,说明它用 statSync 且不跳 SKIP_DIRS、与预检 walkArtifactFiles 的 lstatSync/跳过目录不一致,属于已评审并决定暂不统一的取舍。
resources/agc-skills/manifest.json:同步 xhs 技能指纹并递增版本。
This commit is contained in:
2026-10-06 21:58:02 +08:00
parent 11b424ceba
commit a94d8c6cff
2 changed files with 11 additions and 3 deletions
@@ -1,6 +1,6 @@
{
"schemaVersion": "agc-skill-pack.v1",
"version": "2026-08-26.67",
"version": "2026-08-26.68",
"skills": [
{
"name": "agc-unity-editor",
@@ -204,7 +204,7 @@
"scripts/validate.mjs",
"scripts/vite.config.xhs-minitool.mjs"
],
"sha256": "ad9b5a6dc1b71e0413a1a71780c60d17076d13fbf67517a939c57565e6d0a477"
"sha256": "016423b1f673b402d8775bad34b78e0e3166cd8021e623bc9ff103fd5d6c4dbd"
}
]
}
@@ -130,7 +130,15 @@ function crc32(buffer) {
return (c ^ 0xffffffff) >>> 0;
}
/** 收集目录下所有条目(目录条目在前,文件名统一 / 分隔,保持排序以稳定产物)。 */
/**
* 收集目录下所有条目(目录条目在前,文件名统一 / 分隔,保持排序以稳定产物)。
*
* 已知取舍(评审提出、当前决定不改):本函数用 `statSync`(跟随符号链接)且**不**跳 `SKIP_DIRS`,
* 而校验脚本预检用的 `walkArtifactFiles` 是 `lstatSync`(跳过链接)且会跳 `SKIP_DIRS`。两者口径
* 不一致:链接目标的内容会被按链接名打进包,`venv` / `.cache` 这类目录也可能绕过扩展名白名单。
* 不统一是因为「链接算不算合法产物」还没有定论,改任一侧都会动到现有可能依赖链接的包。真要统一
* 时必须两份实现一起改,并补一条「预检与打包看到同一批文件」的用例。
*/
function collectZipEntries(rootDir) {
const entries = [];
const visit = (dir) => {