清理已退役的Direct审计与计时代码

删除旧平行审计和请求计时模块及沿途参数
保留代理透传、模型记录与现役历史链路测试
同步契约和验证记录,消除12条编译警告
This commit is contained in:
2026-09-23 11:36:32 +00:00
parent 5a86a64e48
commit 268f45015c
14 changed files with 58 additions and 3402 deletions
@@ -913,9 +913,9 @@ Godot 编辑器操控复用既有 AGC 插件宿主、EditorAdapter、Runner 和
## DirectProject 平行审计与请求分段计时退役边界(2026-09-23 核准)
- 当前合同:完整用户与 Codex 完成 item 保存在 `.agent/conversations/project.jsonl`GUI 回合不再创建 `runtime/direct-codex/turns/<id>.jsonl` 或对应 `agent.db``direct.codex.turn` 摘要。旧 `offeredRead` / `firstDesign` 和请求分段计时不再属于生产保证,旧审计专题仅作历史追溯。
- 代码依据:`agent/direct_runtime/user_input.rs` 明确传入 `audit: None``DirectCodexTurnAudit::start` 仅有测试调用,`DirectTurnMetrics` 和 Provider proxy 的 timing scope 随之不在生产构造。Provider proxy 本体及独立 model-usage observer 仍有现役用途,不能随旧计时链退役。
- 实现边界:旧 `DirectCodexTurnAudit``DirectTurnMetrics`、可选审计 / 计时参数及专用批量 JSONL 追加包装已删除。Provider proxy 本体及独立 model-usage observer 仍有现役用途,不能随旧计时链退役;字节流透传和上游错误传递继续由现有测试验证
- 保留边界:运行中的界面对话 / 工具耗时、`.agent/model-usage.jsonl`、产品埋点及 Runtime Agent 审计保持各自合同。`project.jsonl` 的完成 item 写入时间不等于 turn 起止或请求阶段计时;不据此补造旧历史耗时。本次不清理或迁移用户项目内的旧审计文件。
- 维护依据:AGC 实施计划“Direct 历史、审计与耗时的现行边界”和“DirectProject Codex 原始历史与异常恢复”。残留旧 writer 与测试按未使用代码范围清理,不能以原审计方案为由永久保留或恢复
- 维护依据:AGC 实施计划“Direct 历史、审计与耗时的现行边界”和“DirectProject Codex 原始历史与异常恢复”。不能以原审计方案或已退役测试为由恢复旧 writer
## 2026-08-31 Direct 本轮附件只映射路径,不灌正文、不区别 GDD
@@ -7,7 +7,7 @@
## 1. 基线与范围
首次诊断的基线提交为 `016356e509f11a1a638ce45ed51b9e40ef3e36a2`,诊断时工作树干净。环境为 Windows x64、Rust `1.98.1`、Node `v24.15.0`、npm `12.0.2`。第 2~6 节和附录保留首次诊断快照;后续处理状态及契约核查见第 7~8 节,不能将附录的全部条目视为仍未解决。
首次诊断的基线提交为 `016356e509f11a1a638ce45ed51b9e40ef3e36a2`,诊断时工作树干净。环境为 Windows x64、Rust `1.98.1`、Node `v24.15.0`、npm `12.0.2`。第 2~6 节和附录保留首次诊断快照;后续处理状态及契约核查见第 7~9 节,不能将附录的全部条目视为仍未解决。
AGC Rust 使用默认 features、dev profile237 是本轮编译器诊断数,不代表 237 个独立根因,也不是所有平台、features 和 test targets 的总数。另有 5 条不带常规源码 span 的 ts-rs 宏提示,不计入 237。
@@ -143,7 +143,8 @@ three、FBX/GLTF loader、OrbitControls 已动态 import。不能把“改为动
### 剩余工作
- [x] 第一批:清理确认不改变行为的低风险项,修复预览部署器嵌套 npm 及移动 smoke 的 Windows 调用。
- [x]前 158 条 dead_code 和 27 条 unused_imports 完成调用、构建条件及保留契约的静态初审,结论见第 8 节;尚未执行第二批删除
- [x]清理前 158 条 dead_code 和 27 条 unused_imports 完成调用、构建条件及保留契约的静态初审,结论快照见第 8 节。
- [x] 第二批首组:清理已明确退役的 Direct 审计 / 计时链 12 条诊断,结果见第 9 节。
- [ ] 单独核查保留的兼容重导出、身份/锁/门禁参数及 Direct 重试回合初始化,确认合同后再修改。
- [ ] 第二批:对当前 158 条 dead_code(首次快照为 165 条)核对测试、正式 features、平台及退役合同,逐项确定保留、条件编译或删除;涉及退役范围扩大时先补方案。
- [ ] 第三批:核实 5 条 ts-rs 提示的源类型及 TS 输出,保留现有反序列化约束。
@@ -199,6 +200,26 @@ three、FBX/GLTF loader、OrbitControls 已动态 import。不能把“改为动
本次仅补充核查文档,未删除或修改业务代码。实际执行 AGC 默认 Windows dev 编译;未重跑 Rust 单元测试、正式 editor features、Linux/macOS 编译或 GUI 端到端验收。后续实施按改动范围补定向验证。
## 9. Direct 审计 / 计时链清理(2026-09-23
契约文档提交 `5a86a64e4` 后,删除 `direct_codex_audit.rs``direct_turn_metrics.rs`、专属批量 JSONL 追加包装,以及 Direct Runtime / app-server / Provider proxy 中的审计和计时参数、作用域与观察分支。退役模块的专属测试一并删除;原代理测试保留分块 SSE 字节透传和上游流错误传递断言,独立模型使用记录测试继续维护。
未改动现役 Provider 代理的鉴权 / 路由、模型使用记录、`project.jsonl`、GUI 回合与工具事件、付费 / 资产审计或用户项目内已有文件。
默认 Windows dev `cargo check --locked --offline` 通过,**195 → 183 条**,没有新增诊断:
| 类别 | 清理前 | 清理后 |
| --- | ---: | ---: |
| `dead_code` | 158 | 146 |
| `unused_imports` | 27 | 27 |
| `unused_variables` | 9 | 9 |
| `unused_assignments` | 1 | 1 |
| **合计** | **195** | **183** |
消除的是首次清单 W023W025、W041W048、W134,共 12 条;5 条 ts-rs 提示不在本次范围。第 8 节保留清理前的静态分类,其中 Direct 审计 / 计时 12 条已完成代码清理,其余候选仍按实际调用与测试范围推进。
验证:默认编译、修改文件 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 或安装包验收。
## 附录:237 条编译器诊断位置
以下是诊断的人工可读整理,不保存原始构建日志、本机路径或 target 缓存路径。位置相对 `apps/ai-game-creator-shell/src-tauri/`;行号只对应本节基线,修改后以符号搜索及重新编译为准。每条保留一个主要 span,编号用于本清单内跟踪,不表示独立业务缺陷。生成产物项须回到 `build_support/runtime_prompt_bundle.rs` 处理。
@@ -109,7 +109,7 @@
### Direct 历史、审计与耗时的现行边界(2026-09-23 核准)
- DirectProject 的完整回合条目只写入 `.agent/conversations/project.jsonl`,按 [原始历史与异常恢复](./【技术方案】DirectProject%20Codex原始历史与异常恢复-2026-09-04.md) 保存 canonical 用户条目和 Codex 完成的原始 item。工具调用与结果从同一事实源读取,前端继续使用安全投影;完整私有历史不能直接作为埋点或上传报告。
- GUI 回合不再创建 `.agent/runtime/direct-codex/turns/<clientTurnId>.jsonl` 平行审计日志,也不再由该链写入 `agent.db``direct.codex.turn` 摘要。`direct_runtime/user_input.rs` 明确向回合执行器传入 `audit: None``DirectCodexTurnAudit``DirectTurnMetrics` 构造和配套测试不构成现役行为承诺。旧审计专题归入历史,不要求恢复其 writer、`offeredRead` / `firstDesign` 投影或分段计时落盘。
- GUI 回合不再创建 `.agent/runtime/direct-codex/turns/<clientTurnId>.jsonl` 平行审计日志,也不再由该链写入 `agent.db``direct.codex.turn` 摘要。旧 `DirectCodexTurnAudit``DirectTurnMetrics`、沿途审计 / 计时参数、专用批量 JSONL 追加包装和退役测试已删除。旧审计专题归入历史,不要求恢复其 writer、`offeredRead` / `firstDesign` 投影或分段计时落盘;代理的字节流透传、错误传递和独立模型记录测试继续维护
- 会话运行中的对话和工具界面耗时仍按生命周期事件显示;模型请求 / 响应身份仍由 `.agent/model-usage.jsonl` 独立记录,Provider proxy 本体继续承担路由与响应型号观察。两者都不能证明 HTTP 首包、首 SSE、首内容 delta 或各阶段占用已形成生产分段计时记录;旧计时 fixture 通过也不能作为生产接入证据。`project.jsonl``recordedAt` 只是完成 item 的写入时间,不是 turn 起止时间;重进历史缺终态边界时不能承诺精确耗时,也不得补造请求阶段统计。
- 历史项目可能留有旧审计文件或摘要;本次契约收敛不删除、迁移或重写用户数据,也不要求新回合继续追加。现役模型使用记录、产品埋点、Runtime Agent 审计和付费 / 恢复凭证各守原有合同,不因 Direct 平行日志停用而退役。
@@ -6,7 +6,7 @@
DirectProject 只使用 `.agent/conversations/project.jsonl` 作为对话历史。历史保存 Codex Responses API 的完整 item,使聊天展示与新线程恢复使用同一份事实来源;两者只是不同读取动作。
本方案只适用于 DirectProject,不改变 Agent session 历史。DirectProject 已停用 `runtime/direct-codex/turns` 平行审计账本GUI 入口不再构造旧审计对象;完整回合条目统一来自本方案的 `project.jsonl`旧文件不作为新回合必需产物,也不因本次契约更新被删除或迁移。
本方案只适用于 DirectProject,不改变 Agent session 历史。DirectProject 已退役 `runtime/direct-codex/turns` 平行审计账本并删除旧审计 / 计时实现;完整回合条目统一来自本方案的 `project.jsonl`用户项目中的旧日志不作为新回合必需产物,也不因代码清理被删除或迁移。
## 文件格式
@@ -323,7 +323,7 @@ chat_with_game_creator_direct_codex
## 9. 代码落地
新增 [`apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_audit.rs`](../../apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_audit.rs)
原方案新增 `apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_audit.rs`(现已删除,以下仅作历史追溯)
- `DirectCodexTurnAudit`
- `start` / `observe_item` / `finish`
@@ -473,7 +473,7 @@ session.json 是本地恢复元数据,不是待上传事件;事件文件不
- 生命周期与配置:`apps/ai-game-creator-shell/src-tauri/src/main.rs``config.rs``platform_session.rs`
- 项目创建与打开:`apps/ai-game-creator-shell/src-tauri/src/commands.rs``src/features/app-shell/useHomeProjectCreation.ts`;离开登记由 `WorkspaceLauncher.tsx` 保持。
- Direct 前端尝试与终态确认:`apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectChatController.ts`;沿用 `services/clientAnalytics.ts` 冻结账号代次、每次原生重试生成 attempt ID、只确认最后一次尝试。不在已退役的 App 聊天状态链恢复接线。
- Direct 执行与审计`apps/ai-game-creator-shell/src-tauri/src/agent/direct_runtime/user_input.rs``agent/direct_runtime/mod.rs``agent/direct_codex_audit.rs`
- Direct 执行与现役历史`apps/ai-game-creator-shell/src-tauri/src/agent/direct_runtime/user_input.rs``agent/direct_runtime/mod.rs``agent/direct_project_history.rs`;旧 `direct_codex_audit.rs` 已删除,不作为埋点接入点
- Design 执行与持久化:`apps/ai-game-creator-shell/src-tauri/src/agent/design_runtime.rs``agent/runtime_protocol/design_session.rs``agent/design_tools.rs`
- revision`apps/ai-game-creator-shell/src-tauri/src/agent/runtime_actions/project_gates.rs`,结合各实际写入调用方。
- 预览与保存:`apps/ai-game-creator-shell/src-tauri/src/preview.rs``ui_editor/persistence.rs``project/checkpoint.rs`