From faed0ec251764cf4255da855c09f624d9cb643d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Fri, 18 Sep 2026 12:54:22 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=20DirectProject=20=E5=85=A5?= =?UTF-8?q?=E5=8F=A3=E7=9A=84=E9=87=8D=E5=A4=8D=E5=9B=9E=E5=90=88=E5=AE=A1?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DirectProject 继续以 project.jsonl 作为完整回合记录。 入口不再创建 DirectCodexTurnAudit,保留底层可选审计接口供独立测试和其它路径使用。 --- .../src/agent/direct_runtime/user_input.rs | 21 +++++-------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/apps/ai-game-creator-shell/src-tauri/src/agent/direct_runtime/user_input.rs b/apps/ai-game-creator-shell/src-tauri/src/agent/direct_runtime/user_input.rs index 1e631cd1f..506c9f070 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/agent/direct_runtime/user_input.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/agent/direct_runtime/user_input.rs @@ -42,17 +42,9 @@ pub(crate) async fn chat_with_game_creator_direct_codex( redact_agent_runtime_error(root, &format!("恢复上一轮陶泥儿整包事务失败:{error}"), 500) })?; let turn_emitter = DirectGameCreatorTurnUpdateEmitter::new(root, turn_id.clone()); - let mut audit = DirectCodexTurnAudit::start(root, &turn_id, &prompt, &[]); - validate_direct_codex_user_item(root, &user_item).map_err(|error| { - audit.finish(false); - error - })?; - let user_prompt = direct_codex_user_item_to_prompt(root, &user_item).map_err(|error| { - audit.finish(false); - error - })?; + validate_direct_codex_user_item(root, &user_item)?; + let user_prompt = direct_codex_user_item_to_prompt(root, &user_item)?; if user_prompt.trim().is_empty() { - audit.finish(false); return Err("聊天内容不能为空".to_string()); } let canonical_user_item = @@ -62,18 +54,15 @@ pub(crate) async fn chat_with_game_creator_direct_codex( &user_prompt, creation_type.as_deref(), Some(&turn_emitter), - Some(&mut audit), + // DirectProject 的完整回合权威已经落在 project.jsonl;不再创建平行审计日志。 + None, canonical_user_item, ) .await { Ok(reply) => reply, - Err(error) => { - audit.finish(false); - return Err(error); - } + Err(error) => return Err(error), }; - audit.finish(true); turn_emitter.emit("completed", Some("none"), Some(reply.clone()), None); Ok(reply) }