新增: 任务推进链(7态状态机+advance_task CAS原子写)+软删除+前后端7态对齐
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
mod commands;
|
||||
mod state;
|
||||
|
||||
use tauri::Manager;
|
||||
use tauri::{Emitter, Listener, Manager};
|
||||
|
||||
use state::AppState;
|
||||
|
||||
@@ -29,7 +29,40 @@ pub fn run() {
|
||||
) {
|
||||
tracing::warn!("[FR-S1] 启动密钥迁移失败(非阻断): {}", e);
|
||||
}
|
||||
// B-260616-01: L0 握手 — 提前 clone ai_session(Arc),因 manage() 会 move app_state
|
||||
let session_for_handshake = app_state.ai_session.clone();
|
||||
app.manage(app_state);
|
||||
|
||||
// B-260616-01: L0 握手 — 监听前端就绪事件,清除 HMR/刷新导致的残留 generating 状态
|
||||
let app_handle = app.handle().clone();
|
||||
app.listen("ai-client-ready", move |_event| {
|
||||
let session_arc = session_for_handshake.clone();
|
||||
let app_h = app_handle.clone();
|
||||
tauri::async_runtime::spawn(async move {
|
||||
let mut session = session_arc.lock().await;
|
||||
let was_generating = session.generating;
|
||||
let conv_id = session.active_conversation_id.clone();
|
||||
if was_generating {
|
||||
session.generating = false;
|
||||
session.pending_approvals.clear();
|
||||
drop(session);
|
||||
// 补偿事件:通知前端收尾(复位 streaming / generatingConvId)
|
||||
let _ = app_h.emit(
|
||||
"ai-chat-event",
|
||||
commands::ai::AiChatEvent::AiCompleted {
|
||||
total_tokens: 0,
|
||||
prompt_tokens: 0,
|
||||
completion_tokens: 0,
|
||||
conversation_id: conv_id,
|
||||
},
|
||||
);
|
||||
} else {
|
||||
session.pending_approvals.clear();
|
||||
}
|
||||
tracing::info!("[L0-handshake] 前端重连握手完成, was_generating={}", was_generating);
|
||||
});
|
||||
});
|
||||
|
||||
Ok(())
|
||||
})
|
||||
.invoke_handler(tauri::generate_handler![
|
||||
@@ -53,7 +86,9 @@ pub fn run() {
|
||||
commands::task::create_task,
|
||||
commands::task::update_task,
|
||||
commands::task::delete_task,
|
||||
commands::task::restore_task,
|
||||
commands::task::get_task_by_id,
|
||||
commands::task::advance_task,
|
||||
// 灵感
|
||||
commands::idea::list_ideas,
|
||||
commands::idea::create_idea,
|
||||
@@ -69,6 +104,7 @@ pub fn run() {
|
||||
commands::workflow::cancel_workflow_node,
|
||||
// AI 聊天
|
||||
commands::ai::ai_chat_send,
|
||||
commands::ai::ai_chat_force_send,
|
||||
commands::ai::ai_chat_stop,
|
||||
commands::ai::ai_approve,
|
||||
commands::ai::ai_pending_tool_calls,
|
||||
|
||||
Reference in New Issue
Block a user