清理局部未使用代码并收紧测试编译边界
删除无消费者的包装、声明和重导出 将Direct执行测试入口限定为测试构建 记录86条复核与33条清理结果,验证85项回归
This commit is contained in:
@@ -220,6 +220,169 @@ three、FBX/GLTF loader、OrbitControls 已动态 import。不能把“改为动
|
||||
|
||||
验证:默认编译、修改文件 rustfmt、编码、文档索引和 diff 检查通过;独立只读审查未发现参数错位或现役链路回归。**41 个定向 Rust 测试通过**:`codex_provider_proxy::` 14 个(含鉴权、主站路由标记、并行、透传与模型记录),`direct_project_history::` 22 个,app-server 的 Direct 输入 / 宿主继续和事件投影 5 个。先通过 `cargo test --locked --offline` 构建并执行代理测试,再直接复用同一测试二进制执行后两组,均单线程运行。Unix 条件下的 fake app-server 协议用例未在 Windows 执行;未运行正式 editor features、Linux/macOS 编译、真实 Provider、GUI 或安装包验收。
|
||||
|
||||
## 10. 原 86 条清理候选的逐项复核(2026-09-23)
|
||||
|
||||
### 复核范围与结论
|
||||
|
||||
基线为 `268f45015`。本轮只复核第 8 节初审的 86 条 `no_retention_found` 候选,不包含已删除的 Direct 审计 / 计时 12 条,也不重新审计原 74 条测试用途项。86 条均能对应到第 9 节最近一次默认 Windows dev 编译的 183 条诊断;本轮未修改业务代码、未重新编译,183 不是本轮新测值。
|
||||
|
||||
逐项检查当前源码调用、测试导入与构造、平台条件、命令注册、现行文档及必要的 Git 决策记录。初审“未找到依据”不是删除结论;本轮纠正了漏计的测试和 Unix 消费者。
|
||||
|
||||
| 复核处置 | 诊断数 | 实施边界 |
|
||||
| --- | ---: | --- |
|
||||
| 可局部清理 | 33 | 无消费者的包装、声明、重导出或冗余副本;保留被包装的现役实现 |
|
||||
| 需成组清理 | 30 | 旧入口与其专属调用链、测试或说明联动删除;不按整个文件机械删除 |
|
||||
| 调整测试或平台编译边界 | 20 | 19 条涉及测试消费,1 条涉及 Unix 生产消费;优先精确 cfg,混合诊断按符号拆分 |
|
||||
| 先厘清契约与实现 | 3 | W063、W069、W071;记录具体冲突,不能靠删除声明或 allow 掩盖 |
|
||||
| **合计** | **86** | **63 条删除候选 + 20 条编译边界项 + 3 条待核定项;未实施删除** |
|
||||
|
||||
### 关键纠正与清理边界
|
||||
|
||||
- **测试消费者**:`browser/tests.rs:24–28`、`:1015` 等使用 W193~W195;`tool_plan_handoff/tests.rs:1418–1419` 与 `tests/mod.rs:4452` 使用 W201;`analytics/store_tests.rs:352,1180` 使用 W092~W093。Runtime 的 11 条 facade 诊断同样包含测试出口,优先按测试编译,而非为了删除出口扩大子模块可见性。
|
||||
- **测试构造不等于未构造**:W075 的 `AgentRuntimePersistedProviderRequestOutcome::HandoffPrepared` 在 `runtime_protocol/provider_retry.rs:1347–1349` 的 `#[cfg(test)]` 路径实际构造。应保留故障注入测试覆盖,并核对整条返回 / 匹配链的 cfg;其他同名枚举分支不属于本条删除候选。
|
||||
- **Unix 现役路径**:W154 的 `runtime_directory()` 被 `runner/project_owner.rs:617,651,729,763,785` 的 Unix `openat / renameat / sync_all` 路径消费,涉及项目 owner 锁与诊断文件安全性。保留方法并精确限定平台,不能因 Windows warning 删除。
|
||||
- **Home 与附件链**:W016~W022、W027、W029~W034 对应未注册的 Home / 旧 sidecar 路径;`scripts/check-config.mjs:1256–1261` 禁止重新注册无项目 Home 命令。清理要更新专属测试和 app-server 分支,但 `direct_codex_attachments.rs` 的名称 / 媒体类型 / 路径清洗及数量上限仍被 canonical `validation.rs:70–100`、`wire.rs:109–119` 使用,不可整模块删。
|
||||
- **旧重生成文本判断可以退役**:W036~W038 无调用。进一步核对发现 `1f904d28e9` 已明确删除客户端文本授权判断;[主实施计划](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md) 第 641~644 行与 [Skill / MCP 专题](../../technical/【技术方案】DirectProject客户端Skill与MCP扩展导入方案-2026-08-31.md) 第 19 行将高层业务意图交给 Codex,客户端继续负责账号、项目、权限、计费、幂等、锁和恢复。因此不能拿主实施计划第 1444 行、共享决策第 8397 行残留的旧独立语句规则要求恢复这些函数;实施清理时同步收敛这两处旧说明。当前回合绑定、稳定摘要、并发 / 重试保护和付费恢复继续保留。
|
||||
- **删除范围止于无用包装**:例如 W147 只涉及 `runner/client.rs:1405–1411` 无消费者的全局包装;其 `_at` 测试入口、测试协议及现役 GUI 参与锁退出链不随本条删除。W119~W120 只涉及 Unity 专用包装,通用编辑器不确定状态围栏仍在。W040 只涉及 registry 的未读 `url/token` 副本,HTTP state 的 Bearer 鉴权及返回凭据不变。
|
||||
|
||||
### 三条待核定项
|
||||
|
||||
| 编号 | 已确认事实 | 下一步判据 |
|
||||
| --- | --- | --- |
|
||||
| W063 | `runtime_driver.rs:391` 的 plan lifecycle v3 常量无引用;`runtime_protocol/provider_control.rs:355` 的现有 writer 使用通用 v2 常量;Fast GDD 文档第 1270 行仍要求 exact plan 的 v3 语义 | 跟踪 exact plan 请求实际 writer / reader,核定 v3 是否在别处实现、文档已过期或实现缺失;不凭一个常量删改持久化版本 |
|
||||
| W069 | `finalization.rs:6–10` 的 Deferred 注释描述 project→execution 重取失败,当前无构造;`recovery_scan.rs:1092,1105,1114` 仍匹配,pending recovery 未发现注释所述释放 / 重取;Fast GDD 第 2144 行只承诺新增 planning 澄清路径锁序 | 明确旧注释 / 分支是否已经退役,再删除对应分支或另立行为修复;本轮不改变锁序 |
|
||||
| W071 | `task_start.rs:745–753` 的孤立 helper 读取 Goal sidecar;相邻现役 `autonomous_root_goal_contract_persisted_at` 在验证身份后返回 `Ok(true)`,与第 755~758 行“缺 sidecar no-op、损坏报错”的注释不符 | 核定当前 scheduler 的 Goal 前置合同,再决定删除旧 helper / 更新注释还是修复检查;不把恒真入口视为已验证的 Goal 门禁 |
|
||||
|
||||
### 逐条处置索引
|
||||
|
||||
位置相对 `apps/ai-game-creator-shell/src-tauri/`,行号对应本节基线。W 编号沿用原附录;N001 是第 7 节已记录的合并后新增 `runtime_driver.rs` 重导出诊断。一条诊断可能包含多个符号,表中边界优先于按整行删除。
|
||||
|
||||
#### 可局部清理(33 条)
|
||||
|
||||
| 编号 | 当前证据入口 | 处理边界 |
|
||||
| --- | --- | --- |
|
||||
| W003 | `src/main.rs:1728` | 仅删除无读写的静态声明;panic hook/日志路径其他实现不扩删。 |
|
||||
| W010 | `src/agent/codex_app_server/mod.rs:5001-5017` | 删除无调用包装;保留 optional_observer 和 DirectProject app-server 回合。 |
|
||||
| W026 | `src/agent/direct_execution.rs:486-503` | 只删除无调用包装,保留 execution 会话持久状态和 analytics 入口。 |
|
||||
| W040 | `src/agent/direct_tools_mcp.rs:33-43` | 仅移除 registry 对象中冗余 url/token 字段及构造赋值;绝不可删除 HTTP state.token、Bearer 比对、返回值或 _bridge/task 生命周期。 |
|
||||
| W050 | `src/agent/generation/canvas_generation.rs:1749` | 只删 CanvasGeneration 所属 slice_count 方法;其他同名请求字段、Direct 参数和实际切片限制仍活跃。 |
|
||||
| W052 | `src/agent/prompt.rs:4` | 只删无调用的无 session 包装;render_agent_runtime_prompt_context_for_session 仍用于 prompt 组装。 |
|
||||
| W054 | `src/agent/prompt.rs:397` | 只删无调用的无 session 包装;build_game_creator_role_agent_context_for_session 仍为现役实现。 |
|
||||
| W064 | `src/agent/runtime_protocol/acceptance_graph.rs:257` | 未构造 FastGddFileReadCoverage;requiredEvidence 当前按工具集合校验,限删旧结构,不动验收图持久内容和校验。 |
|
||||
| W066 | `src/agent/runtime_driver/entrypoints.rs:265` | remove sink 无 caller;保留 register/validate 和现役窗口事件接收器,不推断外部 detach 协议变更。 |
|
||||
| W072 | `src/agent/runtime_protocol/autonomous_completion.rs:14467` | 只删无调用的无外部 JS 包装;autonomous_inherited_gameplay_semantics_gap_at 仍经 with_external_javascript 执行连续性核对。 |
|
||||
| W077 | `src/agent/runtime_protocol/provider_retry.rs:328` | 仅删 provider_config_fingerprint 旧包装;核对其签名内部委托的现役 fingerprint 算法和持久身份计算不变。 |
|
||||
| W078 | `src/agent/runtime_protocol/provider_retry.rs:1646` | 仅删无调用 request_slot_for_id 包装;现役请求槽分配/恢复逻辑不动。 |
|
||||
| W082 | `src/agent/runtime_state.rs:283` | 仅删无调用的 turn_at 包装;正式 turn 启动入口及状态写入不动。 |
|
||||
| W091 | `src/agent/runtime_tools/policy.rs:29` | 无调用的旧 autonomous_design_foundation_command_is_allowed 文本判断;现役工具策略/许可函数保留。 |
|
||||
| W108 | `src/config.rs:2377-2385` | 仅无调用包装器可移;保留显式 UAC 修复、SID 核验与拒绝 reparse 的安全路径。 |
|
||||
| W119 | `src/editor_adapters/execution.rs:521-522` | 仅 Unity 专属无调用包装器可移;持久 fence 文件名及通用检查/恢复不可删除。 |
|
||||
| W120 | `src/editor_adapters/execution.rs:524-525` | 仅 Unity 专属无调用包装器可移;通用 uncertain 写入、重启恢复和持久 fence 不动。 |
|
||||
| W124 | `src/error_report/queue.rs:188-193` | 仅孤立 sequence getter 可移;通知 generation 对比及队列状态保留。 |
|
||||
| W125 | `src/goal.rs:1037-1046` | 只移无调用锁包装;保留实际 goal cleared 状态写入及调用方现有锁顺序。 |
|
||||
| W128 | `src/platform_session.rs:705-708` | 只移未消费的派生 getter;平台会话存储与校验功能保留。 |
|
||||
| W132 | `src/project/agent_db.rs:2509` | 仅未消费的查询入口可移;不改变 .agent/agent.db 格式、追加扫描界限、锁或读取语义。 |
|
||||
| W133 | `src/project/agent_db.rs:3189-3230` | 只移未消费的按身份查询入口;保留 lifecycle 持久记录、扫描器、锁及现役恢复读取。 |
|
||||
| W137 | `src/project/conversation.rs:1444-1450` | 只移默认 session 两元组包装;对话文件路径规则与会话兼容读取不动。 |
|
||||
| W138 | `src/project/export.rs:573-583` | 仅无调用目录辅助入口可移;导出校验、路径安全和项目 exports 内容不动。 |
|
||||
| W145 | `src/runner/client.rs:1068-1072` | 只移无调用的无参包装;底层 shutdown_at 仍供升级/GUI 退出使用。 |
|
||||
| W147 | `src/runner/client.rs:1405-1411` | 仅删除无消费者的全局包装,不删除 _at、测试协议或 GUI 参与锁退出路径。相关协议是否退役属于后续测试用途审计,不构成本包装的保留依据。 |
|
||||
| W148 | `src/runner/client.rs:1566-1570` | 只移无调用启动包装;GUI owner flag 的现役设置和参与锁仍需保留。 |
|
||||
| W150 | `src/runner/client.rs:1839-1842` | 只移无调用的无项目包装及 W199 对应重导出;project-aware 断开协议保留。 |
|
||||
| W168 | `src/agent/direct_codex_user_item/mod.rs:7-10` | 仅移除五个未消费的顶层重导出;保留 model 类型、模块内部引用、DirectCodexUserItem 及 canonical 输入协议。 |
|
||||
| W169 | `src/agent/direct_codex_user_item/mod.rs:12-15` | 仅移除 mod.rs 重导出;保留 wire.rs 的函数和其校验、摘要路径。 |
|
||||
| W192 | `src/agent.rs:53` | agent.rs 中二次别名无消费者;codex_app_server 原身份函数/自身重导出不在本条清理范围。 |
|
||||
| W196 | `src/browser.rs:23-25` | 仅删除 browser.rs 未消费的门面 re-export;保留 process.rs 函数与其生产调用。 |
|
||||
| W199 | `src/runner.rs:25-28` | 仅该门面导出可移;project-aware 断开调用和 client 实现另按 W150 判断。 |
|
||||
|
||||
#### 需成组清理(30 条)
|
||||
|
||||
| 编号 | 当前证据入口 | 处理边界 |
|
||||
| --- | --- | --- |
|
||||
| W016 | `src/agent/direct_codex_attachments.rs:9` | 随旧 Home/sidecar 渲染清理并同步专属测试与 prompt 源边界清单;保留 canonical 附件清洗和现役 prompt bundle 其它 key。 |
|
||||
| W017 | `src/agent/direct_codex_attachments.rs:10` | 只清旧 sidecar header/渲染及相应专属测试;不能删除现役 canonical 附件摘要、路径校验。 |
|
||||
| W018 | `src/agent/direct_codex_attachments.rs:12-23` | 仅旧 Rust DTO 随 Home/sidecar 清理;保留 TS 附件映射、canonical Rust attachment reference part 和有效上传路径。 |
|
||||
| W019 | `src/agent/direct_codex_attachments.rs:55-61` | 随旧 sidecar 状态渲染清理;保留 canonical 状态约束,不把状态白名单误删。 |
|
||||
| W020 | `src/agent/direct_codex_attachments.rs:105-113` | 随旧 sidecar 的 home/project 分流删除;保留项目附件路径的 canonical 校验。 |
|
||||
| W021 | `src/agent/direct_codex_attachments.rs:115-141` | 随旧 sidecar 行渲染清理;保留 sanitize_attachment_name/media_type/local_path,wire.rs 仍直接使用。 |
|
||||
| W022 | `src/agent/direct_codex_attachments.rs:143-183` | 删旧 sidecar prompt 渲染及专属测试,不可整删附件模块:validation.rs:6-8,70-100、wire.rs:7-8,109-119 仍消费共用清洗函数/上限。 |
|
||||
| W027 | `src/agent/direct_runtime/mod.rs:74` | 与旧 Home prompt/reply/command 成组清理 marker 和专属测试;勿影响项目创建正式命令。 |
|
||||
| W029 | `src/agent/direct_runtime/mod.rs:323` | 只随旧 Home turn 清理三维首页提示;保留现役 Project 引擎指引。 |
|
||||
| W030 | `src/agent/direct_runtime/mod.rs:4732-4741` | 仅旧 Home prompt 组装与已无消费者的 direct.home.* key 在核对 bundle schema 后清理;保留共享 Direct prompt 内容和生成器完整性校验。 |
|
||||
| W031 | `src/agent/direct_runtime/mod.rs:4743-4748` | 随旧 Home reply/命令清理,保留现役 DirectProject 返回字符串和事件。 |
|
||||
| W032 | `src/agent/direct_runtime/mod.rs:4750-4773` | 与 marker、Home reply 成组清理,不改变 DirectProject 完成事件和正文投影。 |
|
||||
| W033 | `src/agent/direct_runtime/mod.rs:4775-4790` | 成组清理旧 Home turn 并复核 app-server DirectHome 分支/专属测试;保留共享 Codex connection、ToolHost 和 DirectProject mode。 |
|
||||
| W034 | `src/agent/direct_runtime/mod.rs:5776-5782` | 仅退役未注册 Home 命令及上游链;保留 create_automatic_local_game_project、DirectProject 命令和 UI 附件导入。 |
|
||||
| W036 | `src/agent/direct_tool_bridge.rs:308-324` | 旧客户端文本意图/授权启发式已由 2026-09-08 MCP 决策明确退役,三项应成组清理;不恢复旧独立语句关键词门禁。保留现役项目权限、付费计费、活动 clientTurnId、稳定 brief、幂等/恢复;同步修订主规范:1444 与共享记忆:8397 的过期叙述。 |
|
||||
| W037 | `src/agent/direct_tool_bridge.rs:326-389` | 旧客户端文本意图/授权启发式已由 2026-09-08 MCP 决策明确退役,三项应成组清理;不恢复旧独立语句关键词门禁。保留现役项目权限、付费计费、活动 clientTurnId、稳定 brief、幂等/恢复;同步修订主规范:1444 与共享记忆:8397 的过期叙述。 |
|
||||
| W038 | `src/agent/direct_tool_bridge.rs:391-646` | 旧客户端文本意图/授权启发式已由 2026-09-08 MCP 决策明确退役,三项应成组清理;不恢复旧独立语句关键词门禁。保留现役项目权限、付费计费、活动 clientTurnId、稳定 brief、幂等/恢复;同步修订主规范:1444 与共享记忆:8397 的过期叙述。 |
|
||||
| W058 | `src/agent/runtime_actions/project_gates.rs:1838` | 短等候专用常量只被 W059 包装消费;与 W059 成组处理,不动有界正式写锁语义。 |
|
||||
| W059 | `src/agent/runtime_actions/project_gates.rs:1900` | 短等候包装无 caller;连同 W058 常量清理,保留当前写锁获取函数及其调用。 |
|
||||
| W060 | `src/agent/runtime_actions/project_gates.rs:1911` | 本体除 W180 facade 无 caller;与 W180 出口成组清理,不动 with_wait 正式写锁。 |
|
||||
| W087 | `src/agent/runtime_tools/isolated_joins.rs:88` | 仅删无预算包装;ready_isolated_join_status_for_parent_with_budget_at 仍为现役路径。 |
|
||||
| W089 | `src/agent/runtime_tools/isolated_joins.rs:200` | 仅删无预算包装;claim_ready_isolated_joins_with_budget_at 及锁内 claim 提交不动。 |
|
||||
| W090 | `src/agent/runtime_tools/isolated_joins.rs:479` | 仅删无预算包装;select_isolated_join_claim_batch_with_limit 保留并继续执行 payload 限额。 |
|
||||
| W105 | `src/commands.rs:3752-3764` | 与 W106 旧包装成组;保留底层素材获取及现役 Runtime account library 投影。 |
|
||||
| W106 | `src/commands.rs:3766-3790` | 旧投影函数可与 W105 成组清理;现役工具仍须保持素材 ID/展示字段和凭据过滤。 |
|
||||
| W149 | `src/runner/client.rs:1594-1612` | 与 W151 旧 string-kind 通知适配器成组;typed runtime 通知和受限 continue_action 身份校验保留。 |
|
||||
| W151 | `src/runner/client.rs:2131-2140` | 与 W149 旧字符串通知适配器成组;现役 typed wake/resume 发送与 server dispatch 保留。 |
|
||||
| W162 | `src/ui_editor/html_renderer/mod.rs:17-54` | 孤立 HTML 渲染链可成组清理;现役 JS 导出、共享 node/component/assets 和持久化 schema 保留。 |
|
||||
| W163 | `src/ui_editor/html_renderer/mod.rs:139-155` | 仅 HTML 分支的树辅助函数与 W162 同组;不删 JS 共享渲染实现。 |
|
||||
| W164 | `src/ui_editor/html_renderer/mod.rs:157-163` | 仅 HTML 分支的无缩放包装与 W162/163 同组;保留底层共享 node renderer。 |
|
||||
|
||||
#### 调整测试或平台编译边界(20 条)
|
||||
|
||||
| 编号 | 当前证据入口 | 处理边界 |
|
||||
| --- | --- | --- |
|
||||
| N001 | `src/agent/runtime_driver.rs:370` | 测试仍经该 facade 调用现役实现;优先把所需重导出限定为 #[cfg(test)],同组无消费者的导出可删除。保留底层实现及原测试覆盖,不为消除 warning 放宽模块可见性。 |
|
||||
| W061 | `src/agent/runtime_actions/response_stream.rs:222` | 测试在 response_stream_tests.rs:215/257 直接使用 ready;生产 publisher 仍有 failed/handoff/persist 路径,需决定保留测试注入或用现役终态路径改写测试。 |
|
||||
| W075 | `src/agent/runtime_protocol/models.rs:26` | 仅 AgentRuntimePersistedProviderRequestOutcome 的 HandoffPrepared 在生产未构造:provider_retry.rs:1347-1349 用 cfg(test) 故障注入构造,随后多层同名 enum 生产分支是活跃代码;不得批量删同名变体。 |
|
||||
| W092 | `src/analytics/store.rs:24` | 当前测试使用观测计数,测试结构需保留或迁移断言;实际 analytics 队列不可一并删除。 |
|
||||
| W093 | `src/analytics/store.rs:286-294` | 测试断言队列 dropped 行为;可选择 cfg(test) 缩窄但需确认调用跨 cfg 可编译。 |
|
||||
| W154 | `src/runner/state.rs:248-252` | Unix 生产项目 owner 锁与诊断文件安全路径直接调用;Windows warning 不能作为跨平台删除依据。 |
|
||||
| W175 | `src/agent/generation.rs:29` | 测试仍经该 facade 调用现役实现;优先把所需重导出限定为 #[cfg(test)],同组无消费者的导出可删除。保留底层实现及原测试覆盖,不为消除 warning 放宽模块可见性。 |
|
||||
| W177 | `src/agent/runtime_actions.rs:60` | 测试仍经该 facade 调用现役实现;优先把所需重导出限定为 #[cfg(test)],同组无消费者的导出可删除。保留底层实现及原测试覆盖,不为消除 warning 放宽模块可见性。 |
|
||||
| W178 | `src/agent/runtime_actions.rs:76` | 测试仍经该 facade 调用现役实现;优先把所需重导出限定为 #[cfg(test)],同组无消费者的导出可删除。保留底层实现及原测试覆盖,不为消除 warning 放宽模块可见性。 |
|
||||
| W180 | `src/agent/runtime_actions.rs:98` | 混合诊断:前两个重导出供现役逻辑的测试使用,优先拆为 #[cfg(test)];try_acquire 的无调用实现与出口按 W060 联动清理。 |
|
||||
| W182 | `src/agent/runtime_driver.rs:309` | 测试仍经该 facade 调用现役实现;优先把所需重导出限定为 #[cfg(test)],同组无消费者的导出可删除。保留底层实现及原测试覆盖,不为消除 warning 放宽模块可见性。 |
|
||||
| W183 | `src/agent/runtime_driver.rs:331` | 测试仍经该 facade 调用现役实现;优先把所需重导出限定为 #[cfg(test)],同组无消费者的导出可删除。保留底层实现及原测试覆盖,不为消除 warning 放宽模块可见性。 |
|
||||
| W185 | `src/agent/runtime_protocol.rs:43` | 测试仍经该 facade 调用现役实现;优先把所需重导出限定为 #[cfg(test)],同组无消费者的导出可删除。保留底层实现及原测试覆盖,不为消除 warning 放宽模块可见性。 |
|
||||
| W186 | `src/agent/runtime_protocol.rs:73` | 测试仍经该 facade 调用现役实现;优先把所需重导出限定为 #[cfg(test)],同组无消费者的导出可删除。保留底层实现及原测试覆盖,不为消除 warning 放宽模块可见性。 |
|
||||
| W187 | `src/agent/runtime_protocol.rs:75` | 测试仍经该 facade 调用现役实现;优先把所需重导出限定为 #[cfg(test)],同组无消费者的导出可删除。保留底层实现及原测试覆盖,不为消除 warning 放宽模块可见性。 |
|
||||
| W189 | `src/agent/runtime_protocol.rs:86` | 测试仍经该 facade 调用现役实现;优先把所需重导出限定为 #[cfg(test)],同组无消费者的导出可删除。保留底层实现及原测试覆盖,不为消除 warning 放宽模块可见性。 |
|
||||
| W193 | `src/browser/playtest/mod.rs:17-27` | 测试直接消费重导出;保留测试出口及 generic.rs 现役逻辑,若调整导入需同步测试。 |
|
||||
| W194 | `src/browser/playtest/mod.rs:28` | 测试直接消费重导出;lane_defense.rs 生产算法和测试类型不可随 import 删除。 |
|
||||
| W195 | `src/browser.rs:11` | 根层重导出供 browser 子模块测试 super::*;生产 discovery 函数仍被 process 使用。 |
|
||||
| W201 | `src/tool_plan_handoff.rs:34-37` | 测试直接依赖门面;schema 常量及 ledger 类型也是现役持久化合同,不能删定义。 |
|
||||
|
||||
#### 先厘清契约与实现(3 条)
|
||||
|
||||
| 编号 | 当前证据入口 | 处理边界 |
|
||||
| --- | --- | --- |
|
||||
| W063 | `src/agent/runtime_driver.rs:391` | 常量 v3 当前仅声明,provider_control.rs:355 使用 v2;Fast GDD 文档明确 exact plan lifecycle v3,需先核实计划请求实际 writer/reader 是否别处落地,再定常量去留。 |
|
||||
| W069 | `src/agent/runtime_driver/finalization.rs:10` | Deferred 在此 enum 无构造,但 recovery_scan 有三处 continue 及同步路径 Err;注释描述通用 project→execution 重取失败,pending_recovery 没有相应释放/重取,Fast GDD 文档锁序承诺只覆盖 planning 澄清。先确认旧注释/分支是否退役。 |
|
||||
| W071 | `src/agent/runtime_driver/task_start.rs:745` | 死 helper 会读取 Goal sidecar;现役 autonomous_root_goal_contract_persisted_at 返回 Ok(true),ready-task parent validator 只查身份,和相邻注释承诺的 sidecar 未落盘 no-op/坏数据报错冲突。先裁定当前合同再动 helper。 |
|
||||
|
||||
### 实施顺序与本轮验证
|
||||
|
||||
下一批优先选择上表 33 条局部清理项,按实际受影响模块运行默认编译、测试构建和定向回归;随后分别处理 Home / 附件、旧文本判断、通知 / HTML 等成组链路。20 条编译边界项保留其测试或平台用途,3 条待核定项独立收敛。不得承诺删除 63 条候选后 warning 恰好减少 63:删除上游入口可能暴露下游未使用诊断。
|
||||
|
||||
本轮只有审计文档变更。检查逐条记录共 86 条、编号无重复、与原候选的文件及诊断消息集合一致;执行编码、文档索引和 diff 检查。未运行新的 cargo check、Rust 测试、正式 editor feature 或 Linux/macOS 构建,未修改业务实现或用户项目数据。
|
||||
|
||||
## 11. 局部候选清理实施(2026-09-23)
|
||||
|
||||
本批处理第 10 节的 33 条局部项,范围止于对应声明、无消费者包装、冗余重导出和 registry 字段;不扩展到 30 条成组链路或 3 条契约待核定项。现役会话、Provider 请求身份、编辑器不确定状态围栏、项目 / 追加锁、持久化格式、Runner 多窗口退出与 MCP 鉴权保持原行为。
|
||||
|
||||
实施前再次扫描源码调用,纠正 **W026**:`direct_execution::open_at` 实际被 `direct_tool_bridge`、`direct_delivery`、`direct_validation` 和 app-server 的测试夹具使用,因此本批保留函数并限定为 `#[cfg(test)]`,不删除测试调用或改写生产 analytics 入口。第 10 节保留实施前的审计快照;最新归类应为 32 条局部删除候选、30 条成组候选、21 条测试 / 平台边界项、3 条待核定项。本批完成的是原定 33 条诊断对应的处理,其中 32 条删除、1 条测试边界收紧。
|
||||
|
||||
W192 的外层别名删除后,首次编译暴露出 `codex_app_server/mod.rs` 中同链的 `direct_codex_canonical_project_identity_for_commands` 中间重导出也已无消费者;本批一起移除该别名。`direct_project_identity` 中实际项目身份校验及其现役调用保持不变。
|
||||
|
||||
默认 Windows dev `cargo check --locked --offline` 通过,warning **183 → 150,净减少 33 条,没有新增诊断**。减少项与第 10 节原 33 条局部清单逐项一致;其中 `dead_code` 146 → 118、`unused_imports` 27 → 22,9 条 `unused_variables` 与 1 条 `unused_assignments` 不变。另有 5 条 ts-rs 属性解析提示,未纳入上述编译器诊断计数。
|
||||
|
||||
测试目标构建通过,**85 个定向 Rust 测试全部通过**,单线程执行:Direct execution / delivery / validation、canonical userItem、app-server execution、外部 MCP HTTP 容量恢复、通用编辑器回执与围栏、Provider 配置身份、验收图证据、角色工具权限及 Runner client-exit。复用了现有用例,没有新增仅用于证明删除的测试。独立只读审查未发现现役行为变化或悬空引用;修改文件 rustfmt、编码、文档索引与 diff 检查通过。
|
||||
|
||||
本批未运行全部 Rust 用例、正式 editor features、Linux/macOS 构建、真实 Provider、GUI 或安装包验收。原 30 条成组候选、其余测试 / 平台边界项和 3 条契约待核定项仍待后续处理。
|
||||
|
||||
## 附录:237 条编译器诊断位置
|
||||
|
||||
以下是诊断的人工可读整理,不保存原始构建日志、本机路径或 target 缓存路径。位置相对 `apps/ai-game-creator-shell/src-tauri/`;行号只对应本节基线,修改后以符号搜索及重新编译为准。每条保留一个主要 span,编号用于本清单内跟踪,不表示独立业务缺陷。生成产物项须回到 `build_support/runtime_prompt_bundle.rs` 处理。
|
||||
|
||||
Reference in New Issue
Block a user