From 926fe9ae0f4ece48f135474ba1cb32bbf6a4391b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Sat, 19 Sep 2026 23:30:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=8D=E7=94=A8=20validate=20=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=9A=84=E6=B8=85=E5=8D=95=EF=BC=8C=E5=8E=BB=E6=8E=89?= =?UTF-8?q?=20wire=20=E8=BE=93=E5=85=A5=E6=8A=95=E5=BD=B1=E9=87=8C?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E7=9A=84=E4=B8=80=E6=AC=A1=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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) --- .../src-tauri/src/agent/direct_codex_user_item/wire.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 {