From b8a659c12f4f67b7c1e04583028d014d144a228d Mon Sep 17 00:00:00 2001 From: kdletters <61648117+kdletters@users.noreply.github.com> Date: Fri, 2 Oct 2026 13:54:50 +0800 Subject: [PATCH] =?UTF-8?q?Direct=20=E5=9B=9E=E5=90=88=E5=85=9C=E5=BA=95?= =?UTF-8?q?=E6=94=B6=E5=8F=A3=E5=90=8C=E6=97=B6=E5=86=99=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E4=BE=A7=E8=84=B1=E6=95=8F=E8=AF=8A=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TurnReservation 兜底收口时除应用日志外,再写一份 .agent/runtime/errors 脱敏诊断 诊断正文带 threadId 与 turnToken,便于与账本、运行日志对账 --- .../src-tauri/src/agent/thread_manager/dispatch.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/apps/ai-game-creator-shell/src-tauri/src/agent/thread_manager/dispatch.rs b/apps/ai-game-creator-shell/src-tauri/src/agent/thread_manager/dispatch.rs index 9e8a43357..be5bc35cb 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/agent/thread_manager/dispatch.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/agent/thread_manager/dispatch.rs @@ -94,6 +94,16 @@ impl Drop for TurnReservation { // application.log 全空)。测试态不写,避免用例污染本机 AppData。 #[cfg(not(test))] if finalized_by_guard { + // 项目侧也留一份脱敏诊断:用户在项目目录里就能看到这一轮的收场, + // 不必只依赖 AppData 的应用日志。 + let failure = DirectTurnError::TurnFailed { + stage: DirectCodexFailureStage::CodeGeneration, + detail: format!( + "DirectProject 宿主任务提前结束(panic、future 被丢弃或被取消),本轮未写下终态;threadId={} turnToken={}", + self.thread_id, self.token + ), + }; + let _ = record_direct_codex_failure(Path::new(&self.thread_id), &failure, None); let _ = crate::append_application_log( "error".to_string(), "direct-turn".to_string(),