From 2b40f65ef2785de28be20879f97710bc58592a1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=9D=E5=B0=98?= <237809796@qq.com> Date: Fri, 19 Jun 2026 02:42:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:=20BUG-260619-06=20L0=20clea?= =?UTF-8?q?r=E8=87=B4=E5=86=B7=E5=90=AF=E5=8A=A8=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E4=B8=A2=E5=A4=B1(=E6=96=B9=E6=A1=88A=20retain)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - lib.rs:62 clear → retain(!recovered): 仅清非recovered(本次会话/HMR死pending),保留restore重建(recovered=true audit.rs:331) - cr06-review跨版本git diff核验: clear批2已有(B-260616-01 d2cb38c),batch8仅合并位置非新增 → 批2+跨批遗留,非batch8回归(CR-06 PASS) - 问题真实(冷启动restore填充后clear清空→审批丢失),方案A修复对齐switchConversation retain保护意图 主代兜底: cargo check --workspace 0 + test 98 --- src-tauri/src/lib.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index f3255d9..3264d4c 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -59,7 +59,10 @@ pub fn run() { } // 顶层双写复位(批2 桥接:IPC ai_is_generating 等仍读顶层,须同步)。 session.generating = false; - session.pending_approvals.clear(); + // BUG-260619-06 修复: clear 致冷启动 restore 重建审批丢失(restore 填充后 clear 无条件清空, + // 重启后待审批工具全丢)。改 retain 仅清非 recovered(本次会话/HMR 死 pending), + // 保留 restore 重建(recovered=true,audit.rs:331),对齐 switchConversation retain 保护意图。 + session.pending_approvals.retain(|_, a| !a.recovered); // active_conversation_id 兜底入 dirty_convs:批2 双写期顶层 generating=true 但 // per_conv 为空(理论上不会发生,防御性保证 active conv 至少收一个 AiCompleted // 复位前端 streaming/generatingConvId)。