删除 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
@@ -44,7 +44,7 @@
## DirectProject 用户消息契约验证
`chat_with_game_creator_direct_codex` 必须携带 `projectPath``prompt`稳定的 `clientTurnId` 和完整 `userItem``creationType``attachments` 按实际输入传递。Rust 通过 `projectPath` 解析项目身份,不接收额外 `projectId`。界面测试必须核对 `userItem` 的消息身份、角色、正文及附件内容,拒绝回合用例仍验证实际返回的错误原因。重开项目的历史恢复测试使用 `read_direct_project_history_slice` 的 canonical raw items 与 `hasMore`,首屏 `limit: 20`。资源图和生成任务的读取继续遵守原有工作台恢复逻辑,不因聊天断言失败延迟、关闭或改变它们。
`chat_with_game_creator_direct_codex` 必须携带 `projectPath`、稳定的 `clientTurnId` 和完整 `userItem`(文本、`@` 素材引用与附件引用都在同一份 content 里);`creationType` 按实际输入传递。Rust 只从 canonical `userItem` 派生回合输入,不接收前端渲染的 `@显示名` 文本投影。Rust 通过 `projectPath` 解析项目身份,不接收额外 `projectId`。界面测试必须核对 `userItem` 的消息身份、角色、正文及附件内容,拒绝回合用例仍验证实际返回的错误原因。重开项目的历史恢复测试使用 `read_direct_project_history_slice` 的 canonical raw items 与 `hasMore`,首屏 `limit: 20`。资源图和生成任务的读取继续遵守原有工作台恢复逻辑,不因聊天断言失败延迟、关闭或改变它们。
## 2026-09-16 DirectProject 回合展示唯一归属
@@ -227,7 +227,7 @@ initialAttachments={currentProjectContext.attachments}
1. [`home.suite.ts`](../../apps/ai-game-creator-shell/tests/appSurface/home.suite.ts)「imports home attachments…」:Direct invoke 必须带 `attachments`,其中 `name``角色参考.png``localPath` 为 upload 返回路径、`status: 'imported'`。用 png 证明不是 md 特例。
2. 无附件的 Direct invoke 仍不得出现 `attachments` 键(或等价:不传该字段)。
3. `planningStartMode` 首轮仍走 Supervisor`chat_with_game_creator_agent` 的 payload 不含附件 sidecar。
4. 工作台后发的普通消息:`chat_with_game_creator_direct_codex` 只有 `projectPath/prompt/clientTurnId`(及既有 creationType 规则),不带 attachments。
4. 工作台后发的普通消息:`chat_with_game_creator_direct_codex` 只有 `projectPath/clientTurnId`(及既有 creationType 规则),不带 attachments。
5. 若本分支已能跑 PR #210 的 home.suite / plan-gdd 做成游戏用例:只断言它仍调用 `createHomeDraftAutomatically` / 仍使用原固定 prompt;**不要**给做成游戏加第二条附件协议。sidecar 由通用 Direct 断言覆盖。
### 不测