复用 validate 返回的清单,去掉 wire 输入投影里重复的一次清单读取

- apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_user_item/wire.rs 的 direct_codex_user_item_to_wire_input 直接用 validate_direct_codex_user_item 返回的 manifest
- 原先 validate 之后再 read_manifest_for_project 一次,每次投影都会多读一次项目清单(并重复 seed task 变更),与 direct_codex_user_item_to_codex_turn_input 的口径也不一致
- cargo test user_item:24 passed;cargo check 通过(本机 stale target 需先 touch shared-contracts/src/lib.rs)
This commit is contained in:
2026-09-19 23:30:22 +08:00
parent e7967cf67b
commit 926fe9ae0f
@@ -3,8 +3,8 @@ use super::model::{
};
use super::validation::validate_direct_codex_user_item;
use crate::agent::{
read_manifest_for_project, sanitize_attachment_local_path, sanitize_attachment_media_type,
sanitize_attachment_name, GameCreationAppManifest,
sanitize_attachment_local_path, sanitize_attachment_media_type, sanitize_attachment_name,
GameCreationAppManifest,
};
use serde_json::Value;
use std::path::Path;
@@ -103,8 +103,8 @@ pub(crate) fn direct_codex_user_item_to_wire_input(
root: &Path,
item: &DirectCodexUserItem,
) -> Result<Value, String> {
validate_direct_codex_user_item(root, item)?;
let manifest = read_manifest_for_project(root)?;
// validate 已经读过清单并返回它,不要再读一次(seed task 变更也会被重复触发)。
let manifest = validate_direct_codex_user_item(root, item)?;
let DirectCodexUserItem::Message(message) = item;
let mut input = Vec::with_capacity(message.content.len());
for part in &message.content {