收紧测试与平台编译边界并清理冗余测试包装
Project CI / AI game creator shell Rust crates (pull_request) Successful in 1m10s
Project CI / Backend tests (pull_request) Failing after 17s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 1m41s
Project CI / Frontend tests (pull_request) Successful in 2m4s
Project CI / Repository checks (pull_request) Failing after 12s
Project CI / AI game creator shell web tests (pull_request) Successful in 1m24s
Project CI / Native shell tests (pull_request) Successful in 5m22s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 7m20s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 8m37s

将十五条重导出诊断对应的测试出口限定编译范围并删除无消费者导出
将Provider交接故障注入结果及传递分支限定为测试编译
删除计数快照和旧回复流ready包装,保留有效测试断言
将项目目录句柄方法限定为Unix平台
更新二十条警告的处理记录,注明未重新编译验证数量
This commit is contained in:
2026-09-23 14:52:14 +00:00
parent 761cccbbf1
commit df06ee003a
19 changed files with 107 additions and 97 deletions
@@ -7,7 +7,7 @@
## 1. 基线与范围
首次诊断的基线提交为 `016356e509f11a1a638ce45ed51b9e40ef3e36a2`,诊断时工作树干净。环境为 Windows x64、Rust `1.98.1`、Node `v24.15.0`、npm `12.0.2`。第 2~6 节和附录保留首次诊断快照;后续处理状态及契约核查见第 7~14 节,不能将附录的全部条目视为仍未解决。
首次诊断的基线提交为 `016356e509f11a1a638ce45ed51b9e40ef3e36a2`,诊断时工作树干净。环境为 Windows x64、Rust `1.98.1`、Node `v24.15.0`、npm `12.0.2`。第 2~6 节和附录保留首次诊断快照;后续处理状态及契约核查见第 7~16 节,不能将附录的全部条目视为仍未解决。
AGC Rust 使用默认 features、dev profile237 是本轮编译器诊断数,不代表 237 个独立根因,也不是所有平台、features 和 test targets 的总数。另有 5 条不带常规源码 span 的 ts-rs 宏提示,不计入 237。
@@ -556,6 +556,36 @@ W076 只将 Pending(String) 收窄为 Pending;三处生产返回前继续记
- `node apps/ai-game-creator-shell/scripts/check-config.mjs` 通过(含 3 个 vendor 源码许可测试);修改文件的 Rust 格式检查、`npm run check:encoding``npm run check:doc-index``git diff --check` 通过。
- 未运行全量 Rust 测试、Linux/macOS 构建、正式 editor features、release 打包或 GUI 端到端流程;Linux 文件锁测试仅保留源码,未在本轮 Windows 环境执行。
## 15. 测试重导出的编译边界清理(2026-09-23)
本批只处理第 10 节 20 条编译边界候选中的 15 条重导出诊断:N001、W175、W177、W178、W180、W182、W183、W185、W186、W187、W189、W193、W194、W195、W201。用户要求不跑全量编译,本批只作导出范围调整和静态验证。
- 测试实际消费的重导出加 `#[cfg(test)]`,保持测试原有访问路径;生产仍使用的同组导出、底层函数和类型定义保留。不扩大模块可见性,不增加 allow,不修改业务实现或测试断言。
- W175 按符号拆分:`submit_external_generation_request` 保留测试导出,供 Direct tool bridge 的原测试使用;其余 5 个无外层消费者的导出(初始响应分类、下载引用检查、提交拒绝分类、结果轮询、初始响应类型)删除。对应定义及模块内生产/测试调用均保留。
- W180 只收紧剩余的 revision 推进和验证完成门禁两个测试导出;前批已删除的旧取锁入口不恢复。
- W061 的 publisher `ready()`、W075 的测试故障注入分支、W092/W093 的计数观测、W154 的 Unix 目录句柄均未改动。尤其 W061 不能仅因测试调用就判定保留:需核定它是否属于退出生产的旧终态实现,再决定专属断言去留。
验证:核对引用与差异,确认改动只涉及 7 个 Rust 模块的 use 声明和 cfg;修改文件的 `rustfmt --check --edition 2021 --config skip_children=true``npm run check:encoding``npm run check:doc-index``git diff --check` 通过。没有执行 Cargo check/build/test、全量编译或 Rust 用例,不用静态核查替代编译验证。
最近一次实测仍为第 14 节的 **50 条**;本批覆盖其中 15 条 unused_imports,若没有其他变化,预期剩余 35 条,**该数量尚未重新编译确认**。
## 16. 剩余测试用途与 Unix 边界项清理(2026-09-23
本批处理第 10 节编译边界候选中的剩余 5 条:W061、W075、W092、W093、W154。第 15 节的 15 条与本节合计覆盖原 20 条;仍按用户要求不跑全量编译。
| 编号 | 实施结论 |
| --- | --- |
| W075 | 保留 Provider 成功交接后的测试故障注入。`AgentRuntimePersistedProviderRequestOutcome::HandoffPrepared`、后续压缩/工具计划/最终回复结果中的同名变体,以及 `WaitingForProviderHandoff` 和对应传递/匹配分支,限定为 `#[cfg(test)]`。既有交接后恢复、不重发请求、只提交一次结果的测试保留,正式持久交接与恢复实现不变。 |
| W092/W093 | 删除 `StoreCounters``counters()` 快照包装。两处既有测试直接读取同一 `writer.counters.dropped` 原子计数,保持 Relaxed 读取和原断言;生产计数器与更新逻辑保留,不新增辅助函数。 |
| W061 | 删除没有生产调用的 publisher `ready()`。仅移除两个既有测试末尾针对该方法的 ready 调用和断言,保留内容过滤、递增序号、重试身份和起始时间断言;未向现役入口迁移旧测试。正式 ready writer、ready→committed 及异常恢复测试继续保留。 |
| W154 | `runtime_directory()``#[cfg(unix)]`。Unix `openat`、重命名和同步路径仍使用原目录句柄;锁、目录句柄生命周期和文件操作实现不变。 |
**纠正初审**:第 10 节将后续同名 `HandoffPrepared` 视为生产活跃分支的判断不准确。完整追踪后,唯一源头是 `cfg(test)` 的交接暂停注入,后续构造仅转传该结果。生产源码中存在匹配语句不等于生产可达;本节结论替代该初审判断。
验证:逐处核对故障注入变体的构造/匹配、删除符号和 Unix 调用边界;修改文件 rustfmt、编码、文档索引及 `git diff --check` 通过。未执行 Cargo check/build/test、Rust 用例或跨平台编译;本批不新增测试。
最近一次实测仍为第 14 节的 **50 条**。第 15~16 节共处理其中 20 条,预期剩余 **30 条**,尚未重新编译确认;不能将预期数作为实测结果。
## 附录:237 条编译器诊断位置
以下是诊断的人工可读整理,不保存原始构建日志、本机路径或 target 缓存路径。位置相对 `apps/ai-game-creator-shell/src-tauri/`;行号只对应本节基线,修改后以符号搜索及重新编译为准。每条保留一个主要 span,编号用于本清单内跟踪,不表示独立业务缺陷。生成产物项须回到 `build_support/runtime_prompt_bundle.rs` 处理。