diff --git a/apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_user_item/wire.rs b/apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_user_item/wire.rs index ba635aeda..021db31f6 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_user_item/wire.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/agent/direct_codex_user_item/wire.rs @@ -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 { - 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 {