删除 DirectProject 聊天 IPC 的死参数 prompt

Rust 侧删掉 chat_with_game_creator_direct_codex 的 prompt 入参:回合输入只由 canonical userItem 派生,该参数从未被读取

DirectProjectTurnInput 去掉 prompt 字段,提交与排队派发不再计算 @显示名 投影文本

界面断言改读 userItem.content,并删掉退役的附件 sidecar 用例与只断言「不存在」的终止用例

同步实施计划与附件路径映射两份技术方案里的 Direct 消息契约

共享记忆补记该死参数的口径与成因
This commit is contained in:
2026-09-21 14:27:23 +08:00
parent ab52805d3c
commit ec408bfafd
8 changed files with 60 additions and 162 deletions
@@ -5755,3 +5755,10 @@ Cocos Creator 根目录由 `package.json.creator.version` 与普通 `assets/`
- **处理**:恢复订阅(正文/工具提示 → transient reply`reasoningText``planningV2Reasoning``view``applyDesignAgentViewAfterTransient`),补回订阅就绪 promise 的建/解函数;新增 `designAgentReasoningTurnRef` 让回合结束后仍认本轮 reasoning。
- **验证**`tests/appSurface/design-agent.suite.ts`「keeps the current turn reasoning after completion and supports collapse/expand」与「renders historical reasoning as independent collapsed sections」同时通过。
- **关联**`apps/ai-game-creator-shell/src/App.tsx``apps/ai-game-creator-shell/src-tauri/src/agent/design_runtime.rs`
## 2026-09-21 DirectProject 聊天 IPC 里的「可读 prompt 投影」是死参数,接回模型输入就污染标签
- **现象**`chat_with_game_creator_direct_codex` 的 Tauri 入参曾并列带一个 `prompt: String`(前端把 canonical content 渲染成 `@显示名` 文本),Rust 侧从不读取——`cargo check` 直接报 `src/agent/direct_runtime/user_input.rs``unused variable: prompt`;前端每次提交仍要算一遍,界面测试也钉着这份投影文本。
- **成因**DirectProject 回合真正的输入只来自 canonical `userItem``direct_codex_user_item_to_codex_turn_input``agent/direct_codex_user_item/wire.rs`)在 DirectProject 分支重建 `turn/start.input``LlmRunRequest` 里那份 `user_prompt` 会被覆盖;客户端投影走的是另一套口径(素材被删或改名时退化成裸 resourceId),一旦有人把它接回 Codex,就把 `@显示名` 标签污染了模型输入。
- **现行口径**IPC 只传 `projectPath``clientTurnId``userItem` 与可选 `creationType`Rust 只从 `userItem` 派生回合输入(空判定与三维契约探测用的派生 prompt 仍在 Rust 内部生成)。前端那份 `@显示名` 投影只服务本地的 `/history` 识别与队列 chip 文案,不出 IPC;界面断言只能读 `userItem.content`
- **关联**`apps/ai-game-creator-shell/src-tauri/src/agent/direct_runtime/user_input.rs``apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_user_item/wire.rs``apps/ai-game-creator-shell/src/view/project-development/chat/controller/useDirectProjectChatController.ts``apps/ai-game-creator-shell/tests/appSurface/chat-composer.suite.ts`