From f395a6ed361ce7363a83eb3b1bbb799051010eab Mon Sep 17 00:00:00 2001 From: kdletters Date: Wed, 12 Aug 2026 22:38:59 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A8=B3=E5=AE=9AAgent=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E5=AE=A1=E8=AE=A1=E6=97=B6=E5=BA=8F=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 等待 Runtime 失败后的审计记录有界落盘 保持 final-reply-failed 审计最终存在的强断言 连续五次验证流式连接中断回归 --- .../src-tauri/src/tests/response_stream.rs | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/apps/ai-game-creator-shell/src-tauri/src/tests/response_stream.rs b/apps/ai-game-creator-shell/src-tauri/src/tests/response_stream.rs index 0dd733f80..b0dadfb3f 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/tests/response_stream.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/tests/response_stream.rs @@ -757,11 +757,22 @@ async fn response_stream_final_disconnect_with_retry_disabled_fails_without_comm final_lifecycle[0]["requestSlot"], final_lifecycle[1]["requestSlot"] ); - assert!(read_agent_db_records_for_test(&root).iter().any(|record| { - record["recordType"] == "agent.runtime.background_task.failed" - && record["runId"] == run_id - && record["failureKind"] == "final-reply-failed" - })); + let mut final_reply_failed_audit = false; + for _ in 0..250 { + final_reply_failed_audit = read_agent_db_records_for_test(&root).iter().any(|record| { + record["recordType"] == "agent.runtime.background_task.failed" + && record["runId"] == run_id + && record["failureKind"] == "final-reply-failed" + }); + if final_reply_failed_audit { + break; + } + std::thread::sleep(Duration::from_millis(20)); + } + assert!( + final_reply_failed_audit, + "final reply transport failure audit must eventually persist" + ); assert_response_stream_public_surfaces_exclude(&root, "design-director", &[planning_fallback]); fs::remove_dir_all(root).ok();