收紧平台与编辑器编译范围并分离构建校验

分离 Codex 构建端元数据校验并保留原有测试
限定 Linux 沙箱与进程清理入口,删除无调用的平台占位实现
按实际 feature 收紧编辑器注册并删除冗余宿主包装
保留 Runner 备用端口算法的 Linux 与测试编译入口
同步警告清单、插件契约及定向验证边界
This commit is contained in:
2026-09-23 17:10:39 +00:00
parent b39cd555ae
commit c62a911745
12 changed files with 143 additions and 241 deletions
@@ -7,7 +7,7 @@
## 1. 基线与范围
首次诊断的基线提交为 `016356e509f11a1a638ce45ed51b9e40ef3e36a2`,诊断时工作树干净。环境为 Windows x64、Rust `1.98.1`、Node `v24.15.0`、npm `12.0.2`。第 2~6 节和附录保留首次诊断快照;后续处理状态及契约核查见第 7~19 节,不能将附录的全部条目视为仍未解决。
首次诊断的基线提交为 `016356e509f11a1a638ce45ed51b9e40ef3e36a2`,诊断时工作树干净。环境为 Windows x64、Rust `1.98.1`、Node `v24.15.0`、npm `12.0.2`。第 2~6 节和附录保留首次诊断快照;后续处理状态及契约核查见第 7~20 节,不能将附录的全部条目视为仍未解决。
AGC Rust 使用默认 features、dev profile237 是本轮编译器诊断数,不代表 237 个独立根因,也不是所有平台、features 和 test targets 的总数。另有 5 条不带常规源码 span 的 ts-rs 宏提示,不计入 237。
@@ -635,6 +635,23 @@ W076 只将 Pending(String) 收窄为 Pending;三处生产返回前继续记
最近一次实测仍为第 14 节的 50 条;第 15~18 节已处理 26 条,本批再处理 9 条,预期剩余 **15 条**11 条平台 / feature / 构建脚本项、4 条暂留契约项),尚未重新编译确认。另有 5 条 ts-rs 提示,不包含在本计数中。
## 20. 平台、feature 与构建脚本编译范围清理(2026-09-23)
本批处理此前归为“其他配置使用”的 11 条诊断。复核后确认,该分类中也混有无调用的包装和平台占位实现,不能整组永久保留。
| 编号 | 实施结论 |
| --- | --- |
| W011/W012 | 共享 `Layout` 删除仅构建端使用的 `npm_package`,构建脚本根据原有 `platform` 生成相同包名。原包元数据校验移入 `build_support/codex_package_metadata.rs`,由 `build.rs` 正式调用;原校验用例随同一实现保留,运行时仅在测试编译中引入该模块。共享版本、平台布局与运行时完整性校验不变。 |
| W097/W098 | Linux 启动失败清理函数限定 Linux,直接调用现役 Unix 进程组终止 helper。删除无其它调用方的跨平台异步转发及其 Windows `taskkill` / 不支持平台分支;共享 Unix helper 仍供其它 Unix 路径使用,Windows 现役 Job Object 终止与回收保持不变。 |
| W101W104 | 沙箱 Launch、Error、相关 impl、准备函数及导入限定 Linux。删除非 Linux 无生产调用的拒绝执行占位、专属错误 metadata getter 及其专属测试;跨平台审计使用的 `CommandSandboxMetadata``command_sandbox_platform_metadata` 保留。Linux bubblewrap 失败关闭逻辑和已有 Linux 测试不变。 |
| W117 | `RunnerManagedEditorAdapter` 的结构、实现与专用导入限定 Windows x64 且启用 Unity/Godot execute feature,与实际构造条件一致。 |
| W129 | 注册方法保留测试及真实 Cocos/Unity/Godot feature 调用;删除四个无人调用的宿主 detect/connect/disconnect/translate 包装。保留 EditorAdapter trait、实现、`host.rpc` 路由和禁用 / 切项目清理。仅测试所需的 `EditorConnectionInfo` 导入及 facade 重导出限定测试编译。 |
| W153 | 备用端口绑定算法限定 `cfg(any(target_os = "linux", test))`,保留 Linux 生产调用和三条跨平台算法测试;其它平台仍使用原有端口 0 绑定。 |
验证:用临时独立 Cargo harness 直接引用当前工作树的两个构建辅助模块,离线运行原有平台布局与包元数据校验 **2 个测试,全部通过**;未编译 AGC 应用或执行其 build.rs。修改 Rust 文件的定向 rustfmt、编码检查、文档索引和 `git diff --check` 通过,另静态核对调用方与 cfg 条件。没有新增测试,也没有将退役业务实现仅为测试而保留;构建端原校验及其用例继续一起维护。
按用户要求未跑全量编译;AGC 默认应用构建、正式 editor features、Linux/macOS 构建及应用单测均未执行。最近一次应用 warning 实测仍为第 14 节的 50 条;第 15~20 节合计处理 46 条,预期剩余 **4 条暂留契约项:W004、W005、W006、W113**,不能将此预期当作重新编译结果。5 条 ts-rs 提示和前端 chunk 体积提示另行处理。
## 附录:237 条编译器诊断位置
以下是诊断的人工可读整理,不保存原始构建日志、本机路径或 target 缓存路径。位置相对 `apps/ai-game-creator-shell/src-tauri/`;行号只对应本节基线,修改后以符号搜索及重新编译为准。每条保留一个主要 span,编号用于本清单内跟踪,不表示独立业务缺陷。生成产物项须回到 `build_support/runtime_prompt_bundle.rs` 处理。
@@ -122,6 +122,8 @@ host.rpc(method, params)
`EditorAdapter` 契约位于通用 crate `server-rs/crates/editor-adapter-api`,只定义 `detect``connect``disconnect``translate_rpc` 和原生 `rpc`。宿主只保存适配器 registry,并把插件声明的适配器名称路由到对应实现;具体编辑器如何查找进程、校验 PID/项目/版本、建立连接和翻译编辑器消息,由插件包自带模块实现。
宿主注册方法只在实际链接编辑器的 feature 或测试编译中存在:Cocos 对应 Windows 的 `cocos-editor-execute`Runner 托管的 Unity/Godot 对应 Windows x64 的各自 execute feature。未启用这些 feature 的默认构建不编译专用适配器及其导入。插件操作统一通过 `host.rpc` 调用适配器的 `rpc`;没有调用方的宿主 detect/connect/disconnect/translate 包装不作为兼容接口保留,trait 方法、项目切换和禁用清理继续按现役合同执行。
宿主源码不包含编辑器专属进程名、注入逻辑或 Tauri 命令。第一个适配器 `cocos-editor``plugins/agc-cocos-editor` 提供:native 模块实现 `EditorAdapter`,由 `editor_adapters.rs` 在启动时按编译期链接注册。新增适配器不会改变 Plugin 生命周期、SDK 或权限协议。
当前 native 适配器仍由宿主在编译期链接(Cargo path 依赖);动态加载插件 native 模块不在本次范围,插件包格式与宿主协议不受此限制。