fix(agc): 清理导出模块在 Windows 生产门禁下的 2 处 dead 项(合并 master 后暴露)
Project CI / AI game creator shell Rust crates (pull_request) Successful in 5m7s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 5m47s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 6m55s
Project CI / Backend tests (pull_request) Successful in 8m46s
Project CI / Frontend tests (pull_request) Successful in 3m39s
Project CI / AI game creator shell web tests (pull_request) Successful in 3m7s
Project CI / Repository checks (pull_request) Successful in 7m14s
Project CI / Native shell tests (pull_request) Successful in 8m41s

`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 档不受影响。
This commit is contained in:
2026-10-07 11:03:26 +08:00
parent 43c1b2fe2c
commit aeebbee282
2 changed files with 10 additions and 6 deletions
@@ -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<NpmScript> {
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]
@@ -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/`。
///