重构: F-09批2 调用方迁移per-conv(双写桥接共存期)

- agentic.rs: GeneratingGuard加conv_id + 三处退出校验改conv存在性(决策e) + stop_flag/notify/messages/iteration per-conv + try_continue加conv_id参数
- commands.rs: IPC写路径双写桥接(per_conv新真相源+顶层双写,批4删) + ai_is_generating读per_conv fallback顶层
- audit/conversation/title/knowledge_inject/lib.rs: per_conv读写迁移
- conv()/conv_read()去allow(批2有调用方)
共存期双写: per_conv主+顶层双写兼容批4前IPC,批4签名改后删顶层
主代兜底: cargo check --workspace 0 + test 96 passed + grep三处退出/GeneratingGuard/双写印证
This commit is contained in:
2026-06-19 02:01:06 +08:00
parent 2c8764abee
commit 2a4d745c5b
9 changed files with 578 additions and 202 deletions

View File

@@ -40,9 +40,19 @@ pub fn run() {
let app_h = app_handle.clone();
tauri::async_runtime::spawn(async move {
let mut session = session_arc.lock().await;
let was_generating = session.generating;
// F-260616-09 B 批2:读 active conv 的 per_conv.generating + 双写复位。
// conv_id 来源:active_conversation_id(HMR 重连场景的当前展示 conv)。
let conv_id = session.active_conversation_id.clone();
let active_for_check = conv_id.clone().unwrap_or_default();
let was_generating = if active_for_check.is_empty() {
session.generating
} else {
session.conv_read(&active_for_check).map(|c| c.generating).unwrap_or(session.generating)
};
if was_generating {
if !active_for_check.is_empty() {
session.conv(&active_for_check).generating = false;
}
session.generating = false;
session.pending_approvals.clear();
drop(session);