From bc115002d457e3891c4093a7fc7417385f1370e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Sat, 3 Oct 2026 13:40:15 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=EF=BC=9A=E5=8E=BB=E6=8E=89?= =?UTF-8?q?=E7=BB=88=E6=80=81=E5=88=A4=E5=AE=9A=E9=87=8C=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E7=9A=84=20TurnError=20clone?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - turn_completion.rs:collect_outcome 按值匹配,Err(error) 已是 owned,Some(error.clone()) 改为 Some(error),省掉一次整份错误载荷的克隆 - 行为不变:host_failure 那一支仍是 &TurnError,需要 clone 的保留 --- .../src-tauri/src/agent/thread_manager/turn_completion.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/ai-game-creator-shell/src-tauri/src/agent/thread_manager/turn_completion.rs b/apps/ai-game-creator-shell/src-tauri/src/agent/thread_manager/turn_completion.rs index b84b6665c..594268d65 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/agent/thread_manager/turn_completion.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/agent/thread_manager/turn_completion.rs @@ -84,7 +84,8 @@ pub(crate) fn turn_terminal( ) -> TurnCompletion { let error = match (host_failure, collect_outcome) { (Some(failure), _) => Some(failure.clone()), - (None, Err(error)) => Some(error.clone()), + // `collect_outcome` 按值匹配,`Err(error)` 已经把 `TurnError` 移出来,不必再 clone。 + (None, Err(error)) => Some(error), // 账本读不出来时(`session_status == "failed"`)没有 typed 原因可用:报告文本就是这一轮 // 唯一的收口依据,按未分类失败发出去,不能让界面停在"已结束、没原因"。 (None, Ok(report)) if session_status == "failed" => {