From e6190f080e2c399319324f492e2972e0b4a97ed8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Tue, 6 Oct 2026 22:56:35 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=B4=E6=98=8E=E5=B0=8F=E7=BA=A2=E4=B9=A6?= =?UTF-8?q?=E6=89=93=E5=8C=85=E8=84=9A=E6=9C=AC=E9=A2=84=E6=A3=80=E4=B8=8E?= =?UTF-8?q?=E6=89=93=E5=8C=85=E5=8F=A3=E5=BE=84=E4=B8=8D=E4=B8=80=E8=87=B4?= =?UTF-8?q?=E7=9A=84=E5=8F=96=E8=88=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - pack.mjs 的 collectZipEntries 注释写明决定不改的理由:链接算不算合法产物还没定论,预检对链接是静默跳过 - manifest.json 同步 vite-export-xhs-minitool 的 sha256 与版本 --- .../src-tauri/resources/agc-skills/manifest.json | 4 ++-- .../vite-export-xhs-minitool/scripts/pack.mjs | 12 +++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/apps/ai-game-creator-shell/src-tauri/resources/agc-skills/manifest.json b/apps/ai-game-creator-shell/src-tauri/resources/agc-skills/manifest.json index 87ba2cf8a..0b6b975d8 100644 --- a/apps/ai-game-creator-shell/src-tauri/resources/agc-skills/manifest.json +++ b/apps/ai-game-creator-shell/src-tauri/resources/agc-skills/manifest.json @@ -1,6 +1,6 @@ { "schemaVersion": "agc-skill-pack.v1", - "version": "2026-08-26.69", + "version": "2026-08-26.70", "skills": [ { "name": "agc-unity-editor", @@ -204,7 +204,7 @@ "scripts/validate.mjs", "scripts/vite.config.xhs-minitool.mjs" ], - "sha256": "1c2323f06e1b278f910c9aa48ae9c3c27ec351349c0c6a485fdc0603023d27ca" + "sha256": "fd869242fdd40bb46fc3fbf30d1509c79d306e769e87dad3430b2ab0e5449b12" } ] } diff --git a/apps/ai-game-creator-shell/src-tauri/resources/agc-skills/vite-export-xhs-minitool/scripts/pack.mjs b/apps/ai-game-creator-shell/src-tauri/resources/agc-skills/vite-export-xhs-minitool/scripts/pack.mjs index 9dbdb3d09..84b85c9c4 100644 --- a/apps/ai-game-creator-shell/src-tauri/resources/agc-skills/vite-export-xhs-minitool/scripts/pack.mjs +++ b/apps/ai-game-creator-shell/src-tauri/resources/agc-skills/vite-export-xhs-minitool/scripts/pack.mjs @@ -133,11 +133,13 @@ function crc32(buffer) { /** * 收集目录下所有条目(目录条目在前,文件名统一 / 分隔,保持排序以稳定产物)。 * - * 已知取舍(评审提出、当前决定不改):本函数用 `statSync`(跟随符号链接)且**不**跳 `SKIP_DIRS`, - * 而校验脚本预检用的 `walkArtifactFiles` 是 `lstatSync`(跳过链接)且会跳 `SKIP_DIRS`。两者口径 - * 不一致:链接目标的内容会被按链接名打进包,`venv` / `.cache` 这类目录也可能绕过扩展名白名单。 - * 不统一是因为「链接算不算合法产物」还没有定论,改任一侧都会动到现有可能依赖链接的包。真要统一 - * 时必须两份实现一起改,并补一条「预检与打包看到同一批文件」的用例。 + * 已知取舍(评审提出):本函数用 `statSync`(跟随符号链接)且**不**跳 `SKIP_DIRS`,而校验脚本 + * 预检用的 `walkArtifactFiles` 是 `lstatSync`(跳过链接)且会跳 `SKIP_DIRS`。两者口径不一致: + * 链接目标的内容会被按链接名打进包,`venv` / `.cache` 这类目录也可能绕过扩展名白名单。 + * + * **决定不改,理由**:「链接算不算合法产物」还没有定论,而预检对链接是**静默跳过**、不是拒绝; + * 照评审建议在打包侧对链接直接抛错,会和预检的口径打架,也会动到现有可能依赖链接的包。真要统一 + * 时必须两份实现一起改成同一口径,并补一条「预检与打包看到同一批文件」的用例,那是独立的一次改动。 */ function collectZipEntries(rootDir) { const entries = [];