From dfcd67bd05a592223f5769c32c780c1819afa051 Mon Sep 17 00:00:00 2001 From: kdletters Date: Sat, 8 Aug 2026 22:33:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=BF=9B=E7=A8=8B=E4=BC=9A?= =?UTF-8?q?=E8=AF=9D=E7=BB=88=E6=AD=A2=E6=B8=85=E7=90=86=E7=AB=9E=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在发布终态通知前先移除 live registry 会话\n避免取消清理瞬时误判仍有未收束进程 --- .../src-tauri/src/process_session/lifecycle.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/ai-game-creator-shell/src-tauri/src/process_session/lifecycle.rs b/apps/ai-game-creator-shell/src-tauri/src/process_session/lifecycle.rs index 8f259dad5..d5e5f166d 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/process_session/lifecycle.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/process_session/lifecycle.rs @@ -1435,11 +1435,13 @@ fn finalize_live_process_session( output.needs_reconciliation = true; } let needs_reconciliation = output.needs_reconciliation; - live.output_changed.notify_all(); - drop(output); + // 只有 live registry 已收束后才能发布可信终态。等待 `output_changed` 的调用方 + // 可能立即执行 run 级取消清理,而 registry 中的任何 live 条目都会被视为未完成会话。 if record_persisted && !needs_reconciliation { if let Ok(mut registry) = process_session_registry().lock() { registry.sessions.remove(&live.process_id); } } + live.output_changed.notify_all(); + drop(output); }