From aeebbee2829bf75e3c0e2b9261fb809e18e51204 Mon Sep 17 00:00:00 2001 From: Suzumiya Date: Wed, 7 Oct 2026 11:03:26 +0800 Subject: [PATCH] =?UTF-8?q?fix(agc):=20=E6=B8=85=E7=90=86=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E6=A8=A1=E5=9D=97=E5=9C=A8=20Windows=20=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E9=97=A8=E7=A6=81=E4=B8=8B=E7=9A=84=202=20=E5=A4=84?= =?UTF-8?q?=20dead=20=E9=A1=B9=EF=BC=88=E5=90=88=E5=B9=B6=20master=20?= =?UTF-8?q?=E5=90=8E=E6=9A=B4=E9=9C=B2=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `src/export/mod.rs`:`pub(crate) use registry::{…}` 里 `Loaded` 在任何档都无人使用(只在 registry.rs 内部用),`content_hash` 只被 `xhs_minitool/registry.rs` 的测试调用 → 收敛为 `use registry::{load_or_create, save, RegistryError};` + `#[cfg(test)] use registry::content_hash;`(未新增 allow)。 `src/export/draft/xhs_minitool/script.rs`:`NpmScript.package_json_relative` 在所有非测试构建中只写不读(`missing_error()` 自行用 `package_json_relative(cwd)` 重算),仅两处测试断言读它;非 serde 字段、不属线协议 → 删除字段与初始化,并把两条断言改为经同一生产函数断言(`assert_eq!(package_json_relative(script.cwd_relative), …)`),断言强度不变、未删用例。 验证:Windows 生产口径(三编辑器 feature)由 2 error 回到 **0 warning / EXIT 0**;`cargo fmt --all --check` rc=0。 背景:这两处属 master 新增的导出模块,是本分支 Windows 门禁 `all(not(test), windows)` 把它们从 warning 升格为 error;Linux/CI 档不受影响。 --- .../src-tauri/src/export/draft/xhs_minitool/script.rs | 10 +++++----- apps/ai-game-creator-shell/src-tauri/src/export/mod.rs | 6 +++++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/apps/ai-game-creator-shell/src-tauri/src/export/draft/xhs_minitool/script.rs b/apps/ai-game-creator-shell/src-tauri/src/export/draft/xhs_minitool/script.rs index c1f0fd81c..5e159aed7 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/export/draft/xhs_minitool/script.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/export/draft/xhs_minitool/script.rs @@ -18,8 +18,6 @@ pub(crate) struct NpmScript { pub(crate) cwd_relative: &'static str, /// `package.json` 里声明的脚本文本。交给运行器做反漂移的 `expectedCommand`。 pub(crate) command: String, - /// 相对项目根的 `package.json` 路径,报错与提示都用它。 - pub(crate) package_json_relative: String, } /// 找到脚本就返回它,否则 `None`。读不了或不是合法 JSON 的 `package.json` 直接跳过,与发布 @@ -59,7 +57,6 @@ pub(crate) fn find(root: &Path) -> Option { return Some(NpmScript { cwd_relative: cwd, command: command.to_string(), - package_json_relative: package_json_relative(cwd), }); } None @@ -114,7 +111,7 @@ mod tests { let script = find(&root).expect("script found"); assert_eq!(script.cwd_relative, "."); assert_eq!(script.command, "node pack.mjs"); - assert_eq!(script.package_json_relative, "package.json"); + assert_eq!(package_json_relative(script.cwd_relative), "package.json"); } #[test] @@ -129,7 +126,10 @@ mod tests { let script = find(&root).expect("script found"); assert_eq!(script.cwd_relative, "game"); - assert_eq!(script.package_json_relative, "game/package.json"); + assert_eq!( + package_json_relative(script.cwd_relative), + "game/package.json" + ); } #[test] diff --git a/apps/ai-game-creator-shell/src-tauri/src/export/mod.rs b/apps/ai-game-creator-shell/src-tauri/src/export/mod.rs index 9c02c65b2..75415a9cc 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/export/mod.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/export/mod.rs @@ -10,7 +10,11 @@ pub mod draft; mod registry; -pub(crate) use registry::{content_hash, load_or_create, save, Loaded, RegistryError}; +pub(crate) use registry::{load_or_create, save, RegistryError}; + +/// `content_hash` 只被测试用来核对指纹与文件内容一致,故只在 test 档重导出。 +#[cfg(test)] +pub(crate) use registry::content_hash; /// 导出工作目录:项目根下的 `.export/`。 ///