修复: sendQueuedNow立即发送退化入队+裸diff围栏渲染+工具卡轮次自动收起

This commit is contained in:
2026-06-17 13:00:37 +08:00
parent 9d1e5c2737
commit ca9b3187b5
4 changed files with 727 additions and 7 deletions

View File

@@ -469,7 +469,13 @@ async function sendQueuedNow(index: number) {
if (index < 0 || index >= state.queue.length) return
const spliced = state.queue.splice(index, 1)[0]
await stopChat()
await sendMessage(spliced.text, spliced.skill, false, spliced.parts)
// B-260617-01: forceMode=true 跳过 L1 预检(ai_is_generating)直走 force_send。
// stopChat() 仅 await stop IPC 发出(置 stop_flag=true),不等后端 loop 跑到
// agentic.rs:444/:819 检测点+guard.reset()(generating 才复位)。紧接 sendMessage
// 命中 L1 的 backendGenerating(后端真值仍 true)→ spliced 被入队而非立即发,
// 与"立即发送"语义不符。force_send(commands.rs:742-748)原子复位 generating=false
// 再发,无竞态窗口;stopChat 的 stop_flag 让旧 loop 在下个检测点退出,不冲突。
await sendMessage(spliced.text, spliced.skill, true, spliced.parts)
}
/** 停止当前生成:本地先复位 streaming再发停止信号。