更新Direct审计计时退役契约
核查未使用代码的保留依据并更新警告清单 将旧平行审计方案归为历史并同步文档入口 明确项目历史、界面计时与模型使用记录的现役边界
This commit is contained in:
@@ -55,7 +55,6 @@
|
||||
- [AGC 模板库与模板建项](./technical/【技术方案】AGC模板库与模板建项-2026-09-17.md):`templates/` 前缀的模板库契约、下载安装与「用模板建项目」链路。
|
||||
- [AGC 模板包组织指南](./【模板规范】AGC模板包组织指南-2026-09-21.md):模板 ZIP 的根目录结构、Cocos 工程保留项、禁止放入的内容、封面与体积上限、版本不可变与发布前自检。
|
||||
- [DirectProject 本轮附件路径映射](./technical/【技术方案】DirectProject本轮附件路径映射-2026-08-31.md):Direct 首轮只映射附件原名与项目相对路径,不灌正文、不区别 GDD。
|
||||
- [Direct 回合行为审计账本](./technical/【技术方案】Direct回合行为审计账本-2026-08-31.md):Direct GUI 回合把 native 读 / MCP / 写文件落成项目内有界时间线,用于判断有没有打开本轮附件。
|
||||
- [项目开发工作台 PRD](./prd/【AI游戏创作】项目开发工作台PRD-2026-07-20.md):当前工作台页面和验收边界。
|
||||
- [AGC 错误报告与诊断上传](./technical/【技术方案】AGC错误报告与诊断上传-2026-08-31.md):当前进程错误事件、应用级日志和管理员查看器合同。
|
||||
- [立项策划 Agent(Fast GDD)](<./technical/【技术方案】立项策划Agent(Fast GDD)-2026-08-10.md>):历史 V1 方案,仅用于追溯;旧 `project-supervisor-plan` / `project-planning` 入口、审批、恢复和测试均已删除。
|
||||
|
||||
@@ -875,7 +875,7 @@ Godot 编辑器操控复用既有 AGC 插件宿主、EditorAdapter、Runner 和
|
||||
- 决策:Direct 过程卡顶部标题只由 `GameCreatorDirectTurnUpdateStatus` 决定(accepted=需求已接收 / running=任务执行中 / streaming=回复生成中 / finalizing=结果整理中 / completed=回复已生成 / failed=处理失败),小字只展示当前正在执行的具体内容并统一加“正在”前缀;真实回复增量(AccumulatedText)才标记 streaming,计划、推理、工具输出与 Activity 一律 running。生成中的累计回复直接作为 assistant 消息气泡在会话列表中原位更新,不再拼进过程卡;进入 finalizing / completed 时保留完整累计回复直到正式消息接管,失败时清除未完成正文。移除合成打字机回放;工具说明/中间文本不再触发 streaming。计划/推理通知收敛为 `preparing` 活动并在界面显示“正在思考中”,原始推理/计划正文不进入 UI,思考期的心跳按 1.2s 限流。命令/文件/工具执行细节与回复流解耦,`stream=false` 时仍展示在过程卡;MCP 工具按用户语义显示(例如 `agc_write_file` 为“正在写入文件:<项目相对路径>”、图片/素材/搜索/试玩分别显示生成、导入、搜索、试玩等动作),未知工具只显示“正在调用工具”不暴露内部工具名;命令显示“正在执行命令:<命令>”,验证类命令显示“正在验证游戏:<命令>”。同一活动后续无正文的心跳不得用通用文案覆盖已展示的具体工作。展开/收起是同一 `project + clientTurnId` 内的持久状态,内容更新不重置,切换新回合才收起;展开详情的滚动条轨道和角落保持透明。
|
||||
- 影响范围:`apps/ai-game-creator-shell/src-tauri/src/agent/direct_runtime.rs` 的 DirectProject observer、`apps/ai-game-creator-shell/src/App.tsx` 的事件投影、`ProjectSupervisorView` 过程卡渲染与对应 AppSurface 回归。
|
||||
- 验证方式:Rust 单测证明只有开启流式时的 AccumulatedText 是 streaming、preparing 通知只产生 thinking 活动词且不携带原始推理文本、执行细节在 `stream=false` 时仍保留,并覆盖全部 AGC MCP 工具语义、未知工具不泄漏、绝对路径 / 上跳路径不展示;AppSurface 覆盖接受态、preparing 显示“正在思考中”、running 长文本展开、command-exec 与写文件心跳不覆盖具体工作、streaming 正文进入 assistant 气泡且过程卡只显示阶段、同一回合后续 running 不覆盖正文也不收起、失败后清除未完成正文、正式消息接管不重复;样式核对确认展开详情的滚动条轨道与角落透明;AGC typecheck、全量 appSurface、rustfmt、`npm run check:encoding`、`git diff --check` 通过。
|
||||
- 关联文档:`docs/technical/【技术方案】Direct回合行为审计账本-2026-08-31.md`、分支 `feat/agc-llm-router-official-chain`。
|
||||
- 当前行为依据:`docs/technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md`;旧 `docs/technical/【技术方案】Direct回合行为审计账本-2026-08-31.md` 仅用于追溯,不承诺继续生成平行日志。
|
||||
|
||||
---
|
||||
|
||||
@@ -910,13 +910,12 @@ Godot 编辑器操控复用既有 AGC 插件宿主、EditorAdapter、Runner 和
|
||||
|
||||
---
|
||||
|
||||
## 2026-08-31 Direct 回合把 Codex item 落成有界行为账本
|
||||
## DirectProject 平行审计与请求分段计时退役边界(2026-09-23 核准)
|
||||
|
||||
- 背景:sidecar 已让模型看见本轮附件路径,但 native 读 / MCP / 写文件只存在于隔离 `CODEX_HOME` 的瞬时 stdout,回合结束即删。无法判断「没读附件」还是「读了仍走默认收集类」。
|
||||
- 决策:GUI DirectProject 每个 `clientTurnId` 追加 `.agent/runtime/direct-codex/turns/<id>.jsonl`,并在 `agent.db` 写一条 `direct.codex.turn` 摘要。记 sidecar 提供的路径与文件 hash、`item/completed` 的 Read/List/Search/MCP/写文件(不含 stdout、patch、MCP result),以及 `offeredRead` / `firstDesign`。审计 fail-open,不阻断做游戏。Home、CLI、Supervisor 收据模型不接。不灌附件正文,不强制读取,不为 GDD 开特例。
|
||||
- 影响范围:`direct_codex_audit.rs`、Direct GUI command 边界、Codex collect 循环;前端 / jsonl 气泡 / sidecar 文案不变。
|
||||
- 验证方式:Rust fixture 覆盖 turn_start hash、绝对路径相对化、stdout/diff 不落盘、art brief 保留、list/search 不算已读、firstDesign 顺序、256 条截断、写盘失败不 panic;sidecar 渲染与 Direct 活动词测试保持通过。
|
||||
- 关联文档:`docs/technical/【技术方案】Direct回合行为审计账本-2026-08-31.md`、issue #212。
|
||||
- 当前合同:完整用户与 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 仍有现役用途,不能随旧计时链退役。
|
||||
- 保留边界:运行中的界面对话 / 工具耗时、`.agent/model-usage.jsonl`、产品埋点及 Runtime Agent 审计保持各自合同。`project.jsonl` 的完成 item 写入时间不等于 turn 起止或请求阶段计时;不据此补造旧历史耗时。本次不清理或迁移用户项目内的旧审计文件。
|
||||
- 维护依据:AGC 实施计划“Direct 历史、审计与耗时的现行边界”和“DirectProject Codex 原始历史与异常恢复”。残留旧 writer 与测试按未使用代码范围清理,不能以原审计方案为由永久保留或恢复。
|
||||
|
||||
## 2026-08-31 Direct 本轮附件只映射路径,不灌正文、不区别 GDD
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ AI 游戏创作 / DirectProject / UI workflow:
|
||||
8. `docs/prd/【AI游戏创作】项目开发工作台PRD-2026-07-20.md`
|
||||
9. `docs/technical/【技术方案】立项策划Agent(Fast GDD)-2026-08-10.md`
|
||||
10. `docs/technical/【技术方案】DirectProject本轮附件路径映射-2026-08-31.md`
|
||||
11. `docs/technical/【技术方案】Direct回合行为审计账本-2026-08-31.md`
|
||||
11. Direct 历史、审计与耗时按 AGC 实施计划及原始历史专题;`docs/technical/【技术方案】Direct回合行为审计账本-2026-08-31.md` 已归历史,不作为实现入口。
|
||||
12. `docs/technical/【技术方案】GameAgent资源自由画板与快速编辑-2026-08-20.md`
|
||||
13. `docs/【技术方案】UI工作流资源桥接与Runtime执行-2026-08-24.md`
|
||||
14. UI 编辑器、宿主壳和当前测试专题文档
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
## 开发中
|
||||
|
||||
- DirectProject 工具可并行调度,依赖由调用方等待,同资源事务与付费动作幂等不能放松。Web 创作先用客户端环境预检,分层验证共用持久的 `validation.maxRuns`,不改写 Provider 的 `llm.maxRetries`;成功证据按输入指纹复用,达标后交付。模型请求计时只保存安全元数据与可观测边界,未知不补零,写盘不能阻塞响应流。详见 AGC 主专题的“DirectProject 交付效率与可观测性”。
|
||||
- DirectProject 工具可并行调度,依赖由调用方等待,同资源事务与付费动作幂等不能放松。Web 创作先用客户端环境预检,分层验证共用持久的 `validation.maxRuns`,不改写 Provider 的 `llm.maxRetries`;成功证据按输入指纹复用,达标后交付。完整回合条目统一保存在 `project.jsonl`;旧平行审计和附属请求分段计时已退出生产入口,不能因残留实现或测试而恢复旧契约。界面生命周期耗时与独立模型使用记录继续有效,未知边界不补零。详见 AGC 主专题的“Direct 历史、审计与耗时的现行边界”。
|
||||
|
||||
- DirectProject 源码修改走 `agc_apply_patch`、进度走 `agc_update_plan`:SDK 原生的 `apply_patch` / `update_plan` 注册会被按回合移除(全局串行单例),不要恢复它们或用伪造工具注解换取并发。补丁只在当前项目内、受当前回合 Write 许可和受控进程约束,失败可能已部分写入,未知结果不自动重放;计划完成不构成验收证据。
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
## 1. 基线与范围
|
||||
|
||||
首次诊断的基线提交为 `016356e509f11a1a638ce45ed51b9e40ef3e36a2`,诊断时工作树干净。环境为 Windows x64、Rust `1.98.1`、Node `v24.15.0`、npm `12.0.2`。第 2~6 节和附录保留首次诊断快照;后续处理状态以第 7 节为准,不能将附录的全部条目视为仍未解决。
|
||||
首次诊断的基线提交为 `016356e509f11a1a638ce45ed51b9e40ef3e36a2`,诊断时工作树干净。环境为 Windows x64、Rust `1.98.1`、Node `v24.15.0`、npm `12.0.2`。第 2~6 节和附录保留首次诊断快照;后续处理状态及契约核查见第 7~8 节,不能将附录的全部条目视为仍未解决。
|
||||
|
||||
AGC Rust 使用默认 features、dev profile;237 是本轮编译器诊断数,不代表 237 个独立根因,也不是所有平台、features 和 test targets 的总数。另有 5 条不带常规源码 span 的 ts-rs 宏提示,不计入 237。
|
||||
|
||||
@@ -143,6 +143,7 @@ three、FBX/GLTF loader、OrbitControls 已动态 import。不能把“改为动
|
||||
### 剩余工作
|
||||
|
||||
- [x] 第一批:清理确认不改变行为的低风险项,修复预览部署器嵌套 npm 及移动 smoke 的 Windows 调用。
|
||||
- [x] 对当前 158 条 dead_code 和 27 条 unused_imports 完成调用、构建条件及保留契约的静态初审,结论见第 8 节;尚未执行第二批删除。
|
||||
- [ ] 单独核查保留的兼容重导出、身份/锁/门禁参数及 Direct 重试回合初始化,确认合同后再修改。
|
||||
- [ ] 第二批:对当前 158 条 dead_code(首次快照为 165 条)核对测试、正式 features、平台及退役合同,逐项确定保留、条件编译或删除;涉及退役范围扩大时先补方案。
|
||||
- [ ] 第三批:核实 5 条 ts-rs 提示的源类型及 TS 输出,保留现有反序列化约束。
|
||||
@@ -151,6 +152,53 @@ three、FBX/GLTF loader、OrbitControls 已动态 import。不能把“改为动
|
||||
|
||||
每批按实际修改范围运行定向测试、类型/编译检查及编码与 diff 检查;不为清理 warning 无差别扩大门禁。关闭条件是已复现项均消除或有明确保留原因,原检查入口通过,未覆盖配置仍明确标注。完成后将长期有效规则融合到父规范,删除本开放事项;历史由 Git 保存。
|
||||
|
||||
## 8. 未使用代码的保留契约核查(2026-09-23)
|
||||
|
||||
### 范围与判断口径
|
||||
|
||||
基线为 `018697203`。再次执行第 2 节 AGC 默认 Windows dev `cargo check --locked --offline`,通过且仍为 **195 条**编译器 warning(另有 5 条 ts-rs 提示)。本次逐条静态核查其中 **158 条 dead_code + 27 条 unused_imports = 185 条**,交叉检查源码调用、测试、平台 / feature / build.rs 路径、Tauri 命令注册和当前专题文档。其余 9 条 unused_variables 与 1 条 unused_assignments 未纳入下表分类。
|
||||
|
||||
结论是:**不能把 185 条统一归因于必须保留的兼容契约,也不能把编译器未使用诊断直接当成删除白名单。** 一条诊断可能覆盖多个方法,计数不等于独立对象数。
|
||||
|
||||
| 初审分类 | 诊断数 | 当前处理依据 |
|
||||
| --- | ---: | --- |
|
||||
| 其他平台、feature 或构建脚本实际使用 | 11 | 保留实际调用行为,按编译目标整理声明;不能按 Windows 默认构建删除 |
|
||||
| 目前只找到测试用途 | 74 | 评估改为 `#[cfg(test)]`,或随已退役实现一起移除专属测试;测试引用不等于永久生产契约 |
|
||||
| 未找到现行保留依据 / 已明确旧契约退役 | 98 | 包括初审 86 条及本轮澄清的 Direct 审计计时链 12 条;清理时仍须检查局部调用、条件构建及受影响测试 |
|
||||
| 文档行为承诺与断链 / 旧入口需进一步决策 | 2 | 修订 lineage 和旧固定切片入口仍需确认现役实现与去留;不能靠屏蔽 warning 结案 |
|
||||
| **合计** | **185** | 静态初审,不代表所有平台已编译或候选代码已获完整删除验证 |
|
||||
|
||||
### 明确保留要求的适用范围
|
||||
|
||||
- [AGC 实施计划](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md) 的第二、三轮拆分记录(本基线第 1263~1269 行)明确要求保留稳定 facade、不要机械删除兼容重导出;[后端框架整理路线](../../technical/【技术方案】AGC后端框架整理与演进路线-2026-09-18.md) 第 244 行也要求拆分时保持导出、命令名和测试契约。这些是结构搬迁时的兼容约束,不能独立证明当前每个内部 `pub(crate)` 出口都有现役消费者或永久公开契约。
|
||||
- 仓库 [AGENTS.md](../../../AGENTS.md) 第 33~34 行要求:已退役且无现役调用、公开契约、持久化数据、活跃实例或迁移要求的对象直接清理;实际需要兼容的对象保留最小范围。后续清理应列明具体消费者或数据 / 协议约束,并同步收敛过期文档,不能只写“兼容保留”。
|
||||
- 函数所在功能有持久化协议,不代表该函数的 Rust 包装签名也受协议保护。例如保留 Runtime finalization 语义,并不要求保留未构造的普通内部 enum 分支;保留工具授权,也不要求保留已经被现役授权实现替代的旧文本判断 helper。
|
||||
|
||||
### 已定位的代表性证据
|
||||
|
||||
下列源码位置相对 `apps/ai-game-creator-shell/src-tauri/`,行号对应本节基线。
|
||||
|
||||
| 对象 | 证据与判断 | 后续方向 |
|
||||
| --- | --- | --- |
|
||||
| `build_support/codex_bundle.rs` 的 `npm_package`、`validate_package_metadata` | `build.rs:67,102` 实际读取 / 调用;同一源文件也被运行时编译,后者产生 warning | 保留构建校验,按两个编译目标处理 |
|
||||
| Linux 命令沙箱、进程组终止及 Runner listener | `src/command_exec.rs:1555,1814`、`src/process_session_bridge.rs:89`、`src/runner/server.rs:141` 有条件调用 | 保留 Linux 路径,平台编译验证后再补精确 cfg |
|
||||
| `RunnerManagedEditorAdapter`、插件适配器注册 | `src/editor_adapters.rs:124,130` 有 Windows editor feature 分支 | 保留 feature 注册;`plugin_host` 同一条 warning 包含五个方法,只有注册方法找到 feature 调用,其余四个应分别判断 |
|
||||
| Direct 审计与计时链(连同批量 JSONL 追加,共 12 条诊断) | `direct_runtime/user_input.rs:64` 明确不再创建平行日志并传入 `None`;旧审计和 metrics 构造仅测试可达。2026-09-23 已将 [旧审计方案](../../technical/【技术方案】Direct回合行为审计账本-2026-08-31.md) 归为历史,主规范和共享记忆同步改为当前边界 | 不再存在要求保留旧 writer / 分段计时链的现行合同,转为清理候选;保留现役 Provider proxy、model-usage、界面计时与项目完整历史,不删除用户旧数据 |
|
||||
| `static_delegate_original_awaits_user_revision_at` | `src/delegation.rs:1293` 无调用,注释仍声称用于用户修订 lineage;[立项策划 Agent(Fast GDD)](../../technical/【技术方案】立项策划Agent(Fast GDD)-2026-08-10.md) 中仍有修订交付约束 | 查明现役实现是否承担同一行为,再决定旧入口去留 |
|
||||
| `generate_platform_art_asset_with_required_slices_at` | `src/agent/generation/canvas_generation.rs:2589` 无调用;主实施计划第 1301 行改为按需求选择素材,第 1448 行仍要求标准核心图集严格四切片 | 两种范围不能混为一谈;保留标准核心图集合同不自动要求保留这个旧包装入口 |
|
||||
| 旧 DirectHome 命令及 prompt / reply 链 | `chat_with_game_creator_home_direct_codex` 未注册;`scripts/check-config.mjs:1257` 明确禁止首页暴露无项目 Codex 会话 | 未找到保留该旧入口的依据,可成组清理并同步旧说明 |
|
||||
| 旧附件 sidecar prompt 渲染链 | `direct_codex_attachments.rs` 旧渲染由未注册 Home 链调用;现行主实施计划第 314、323 行将附件并入 canonical `userItem` | 旧输入链是清理候选;审计附件投影与上面的审计决策一起处理,不能删除现役 canonical 附件能力 |
|
||||
| 简单包装、旧 HTML renderer、部分重导出 | 如 `direct_execution::open_at` 无调用,现役走 `open_with_analytics_at`;`ui_editor/html_renderer` 的入口无生产调用;部分 facade 导出无外部消费者 | 优先从这些边界清晰的候选开始,避免扩大到现役实现 |
|
||||
| 未构造内部 variant 与未读取 payload | `runtime_protocol/models.rs:26` 只有该 enum 的 `HandoffPrepared` 未构造,其他同名 variant 活跃;第 87 行 `Pending(String)` 变体活跃,payload 仅测试读取 | 按具体类型 / 字段处理,不能批量删除同名分支或整个变体 |
|
||||
|
||||
另发现 `runtime_actions/project_gates.rs:1206` 的固定视觉素材门禁直接返回 `None`,后面留有不可达旧实现,`runtime_driver/task_start.rs:1687` 的对应判断恒为 `false`。这解释了部分未使用诊断,但主实施计划相邻段落仍混有旧固定素材要求与新按需选择要求;应先明确退役范围并同步文档,不能通过改成下划线参数掩盖这一状态。
|
||||
|
||||
### 下一步与本次验证边界
|
||||
|
||||
优先处理测试专用入口、已无消费者的局部包装和明确退役的 Home 链;条件构建项按真实平台 / feature 整理。Direct 审计计时旧契约已收敛,残留实现待清理;素材与修订 lineage 的合同问题仍单独处理。98 条候选不承诺能通过 98 次独立删除消除 warning,删除上游孤立入口也可能产生新的下游诊断。
|
||||
|
||||
本次仅补充核查文档,未删除或修改业务代码。实际执行 AGC 默认 Windows dev 编译;未重跑 Rust 单元测试、正式 editor features、Linux/macOS 编译或 GUI 端到端验收。后续实施按改动范围补定向验证。
|
||||
|
||||
## 附录:237 条编译器诊断位置
|
||||
|
||||
以下是诊断的人工可读整理,不保存原始构建日志、本机路径或 target 缓存路径。位置相对 `apps/ai-game-creator-shell/src-tauri/`;行号只对应本节基线,修改后以符号搜索及重新编译为准。每条保留一个主要 span,编号用于本清单内跟踪,不表示独立业务缺陷。生成产物项须回到 `build_support/runtime_prompt_bundle.rs` 处理。
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
| 分层验证 | 视觉、定点玩法、项目测试和必要完整闭环按已登记标准执行;不混淆证明范围 | 双端正例与单端失败反例 |
|
||||
| 统一预算 | 内置验证、托管脚本和原生命令执行受同一宿主预算约束;不以命令文本猜测“是不是试玩”,不把每条普通开发命令单独计为一次返修 | 捆绑 app-server 的执行前控制、拒绝无副作用、跨入口/重启/耗尽/超时用例 |
|
||||
| 稳定基线 | 可复用的固定种子跑酷基线,真实短按/长按跳跃、单次收力、滑铲释放及公平越障窗口 | 物理单测、双端真实输入、原案例缺陷参数反例 |
|
||||
| 速度可归因 | 已实现请求分段计时继续有效;新增实际并行批读与宿主首轮上下文预取 | 有界读取/并发屏障/安全边界/减少独立读取往返证据 |
|
||||
| 速度可归因 | 实际并行批读与宿主首轮上下文预取按真实调用验证;界面耗时与模型使用记录各守其证明范围,旧请求分段计时链不算生产能力 | 有界读取/并发屏障/安全边界/减少独立读取往返证据 |
|
||||
| 工具并行 | 现有全部工具并行、在途上限、同资源事务和付费防重继续有效 | 混合调用、图片双 POST 同时到达、同参防重回归 |
|
||||
|
||||
### 自动预检与可信脚手架
|
||||
@@ -106,12 +106,12 @@
|
||||
- 外部验证只通过客户端提供的 Node/npm 入口运行,在同一预算内保存退出码和有界输出;生产 Skill 明确禁止转到原生 shell 自建并重复执行另一套试玩来规避预算。任意原生 shell 的语义不能由字符串猜测可靠识别,本合同不声称已通过权限沙箱硬阻断所有绕行。
|
||||
- 鉴权、权限、余额、项目身份、传输丢失、取消及付费结果不确定继续遵守原终止/对账边界;确定性参数错误先修参数,不原样重复付费请求。
|
||||
|
||||
### 分段耗时
|
||||
### Direct 历史、审计与耗时的现行边界(2026-09-23 核准)
|
||||
|
||||
- 在既有 Direct 回合审计记录中追加计时,关联 clientTurnId、独立 attempt 和 request 身份。记录 configured/requested model、reasoning effort 与封闭的路由分类;上游返回的 model 单独标明,不能把配置值冒充实际模型。
|
||||
- 区分连接准备、客户端回合锁等待、turn/start 应答、HTTP 发出到响应头、首 body chunk、首 SSE event、首内容 delta、流终态、工具与上下文压缩。不可见的上游排队/推理保持未知,缺字段不得补零。
|
||||
- 并发时按区间并集计算占用,同时保留分维度统计,不能把重叠时间累加为整轮墙钟。条目记录达到上限后统计仍继续;流 EOF、错误、取消和 Drop 均正确收尾。
|
||||
- 只保留时间、计数、模型安全标识和状态,不保留凭据、端点 URL、请求/响应正文或推理内容;统计失败不能覆盖本来的业务结果。旧历史不回填推测值。
|
||||
- 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` 投影或分段计时落盘。
|
||||
- 会话运行中的对话和工具界面耗时仍按生命周期事件显示;模型请求 / 响应身份仍由 `.agent/model-usage.jsonl` 独立记录,Provider proxy 本体继续承担路由与响应型号观察。两者都不能证明 HTTP 首包、首 SSE、首内容 delta 或各阶段占用已形成生产分段计时记录;旧计时 fixture 通过也不能作为生产接入证据。`project.jsonl` 的 `recordedAt` 只是完成 item 的写入时间,不是 turn 起止时间;重进历史缺终态边界时不能承诺精确耗时,也不得补造请求阶段统计。
|
||||
- 历史项目可能留有旧审计文件或摘要;本次契约收敛不删除、迁移或重写用户数据,也不要求新回合继续追加。现役模型使用记录、产品埋点、Runtime Agent 审计和付费 / 恢复凭证各守原有合同,不因 Direct 平行日志停用而退役。
|
||||
|
||||
### 工具并发
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
| 环境可用 | 运行时分发/完整性定向测试,真实 Node/npm 与浏览器 CDP smoke,缺失与损坏失败关闭 |
|
||||
| 验证收敛 | 同轮跨入口与重启预算测试,超限停止,成功复用与源码/素材变更失效,层级不混淆 |
|
||||
| 交付收尾 | 内置 Skill/提示词与工具合同一致,定向回归,无旁路无限试玩指引 |
|
||||
| 可观测 | 本地 mock SSE 分片/错误/Drop/跨轮测试、区间并集测试、模型身份与敏感数据边界 |
|
||||
| 可观测 | 现役历史写入与安全投影、界面生命周期耗时、模型使用记录及敏感数据边界;旧审计 / 计时测试不替代生产调用证据 |
|
||||
| 工具并发 | 不同工具可在首个响应前开始且乱序按 ID 回包;两个不同图片同时到达 mock 平台,同参只提交一次,容量和 manifest 合并测试 |
|
||||
| 整体 | 范围匹配 Rust/脚本测试、类型检查、Skill 包校验、文档索引、编码与 diff 检查;真实 Provider/安装包未运行时单独列明 |
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
DirectProject 只使用 `.agent/conversations/project.jsonl` 作为对话历史。历史保存 Codex Responses API 的完整 item,使聊天展示与新线程恢复使用同一份事实来源;两者只是不同读取动作。
|
||||
|
||||
本方案只适用于 DirectProject,不改变 DirectHome、Agent session 历史或 `runtime/direct-codex/turns` 审计账本。
|
||||
本方案只适用于 DirectProject,不改变 Agent session 历史。DirectProject 已停用 `runtime/direct-codex/turns` 平行审计账本,GUI 入口不再构造旧审计对象;完整回合条目统一来自本方案的 `project.jsonl`。旧文件不作为新回合必需产物,也不因本次契约更新被删除或迁移。
|
||||
|
||||
## 文件格式
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
- 不把附件全文拼进 prompt,不按扩展名决定是否读取。
|
||||
- 不把「没读到就阻断」做成门禁。
|
||||
- 不扫 manifest 里历史 `kind=uploaded`。
|
||||
- 不做 native 读取审计;该项由 [`【技术方案】Direct回合行为审计账本-2026-08-31.md`](./【技术方案】Direct回合行为审计账本-2026-08-31.md) 承接。
|
||||
- 不新增附件专用 native 读取审计。现役回合工具条目从 `project.jsonl` 完整历史读取;旧平行审计日志及 `offeredRead` / `firstDesign` 投影已停用,不再由旧审计专题承接。
|
||||
- 不改 DirectHome 在「无项目路径」时的现有文案和列表格式。
|
||||
- 不改 `enterCreatedHomeProject` 的空正文兜底句(与做方案共用)。
|
||||
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
# Direct 回合行为审计账本
|
||||
|
||||
> 文档状态:`historical`(旧平行审计日志已停用,仅用于历史追溯,不作为当前实现或保留代码的依据)
|
||||
|
||||
2026-09-23 核准:DirectProject 已以 `.agent/conversations/project.jsonl` 保存完整回合条目,GUI 入口不再构造本方案的审计对象,也不承诺继续追加旧日志、`direct.codex.turn` 摘要或附属请求分段计时。当前边界见 [AGC 实施计划](./【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md) 的“Direct 历史、审计与耗时的现行边界”。既有用户项目内的旧审计数据不在本次文档修正中删除或迁移。以下保留原设计供追溯。
|
||||
|
||||
- 日期:2026-08-31
|
||||
- 状态:现行合同(已按本文落地)
|
||||
- 状态:历史设计,原实现已退出生产回合入口
|
||||
- 问题:Gitea issue #212 的第二段(Direct 原生读 / 工具行为无法从项目产物判断);用于分析「附件已映射仍未按文档实施」
|
||||
- 关联:[`【技术方案】DirectProject本轮附件路径映射-2026-08-31.md`](./【技术方案】DirectProject本轮附件路径映射-2026-08-31.md)、[`【技术说明】DirectProject未消费用户上传权威文档-2026-08-30.md`](./【技术说明】DirectProject未消费用户上传权威文档-2026-08-30.md)
|
||||
- 原则:落地后代码简洁可维护;审计是 Direct 行为时间线,不是 GDD 特例,也不替代 sidecar
|
||||
|
||||
@@ -46,7 +46,7 @@ Date: 2026-09-21
|
||||
| 现有记录 | 当前事实 | 本阶段复用方式 |
|
||||
| --- | --- | --- |
|
||||
| `.agent/conversations/project.jsonl` | Game Agent 正式对话历史,包含正文 | 复用正式受理、终态的业务入口;不复制正文到埋点 |
|
||||
| `.agent/runtime/direct-codex/turns/<clientTurnId>.jsonl` | 回合工具审计,条目有上限,写入可失败 | 参考执行事实;不能把其条数作为完整产品事件数量 |
|
||||
| `.agent/runtime/direct-codex/turns/<clientTurnId>.jsonl` | 已停用的平行审计日志,旧项目可能残留;新回合不再生成 | 不作为现役埋点来源或完整产品事件计数依据,不要求补写或回填 |
|
||||
| `.agent/agent.db` | 逐行 JSON 本地索引与审计,非 SQLite | 保持原用途,不作为待上传队列 |
|
||||
| `.agent/design-agent/session.json` | 策划会话、对话、工具结果、阶段、审批、当前回合与恢复状态 | 审批通过且实际推进阶段成功持久化后记录成果事件;不上传完整会话文件 |
|
||||
| `design_artifacts/` | 正式策划成果 | 保持原文件保存行为,本版不为统计新增 revision;文件内容不进入事件 |
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
|
||||
以下文档明确是历史记录、实施记录、专利材料或问题记录:
|
||||
|
||||
- `docs/technical/【技术方案】Direct回合行为审计账本-2026-08-31.md`
|
||||
- `docs/technical/【需求来源】GameAgent埋点设计原始方案-2026-09-05.md`
|
||||
|
||||
- `docs/【实施记录】SFX生成优化V2.0T6测试与发布门禁-2026-08-07.md`
|
||||
|
||||
Reference in New Issue
Block a user