修复: 切会话残片覆盖回复与收尾工具卡丢失

- flushCurrentText 加非流式守卫,非流式只清不写
- 后台会话终止即清流式态,残片不跨轮引爆
- 异常收尾尾部工具气泡折进轨迹卡不再蒸发
- 停止与看门狗超时先保文再复位
This commit is contained in:
lxy
2026-10-01 19:35:21 +08:00
parent e1dd0bc3a3
commit 524120b110
5 changed files with 26 additions and 2 deletions
+4 -1
View File
@@ -889,7 +889,10 @@ const renderItems = computed<RenderItem[]>(() => {
if (c && c.trim() && !isToolResultJson(c)) { fi = i; break }
}
const finalMsg = fi >= 0 ? msgs[fi] : msgs[msgs.length - 1]
const traceMsgs = msgs.slice(0, msgs.indexOf(finalMsg))
// 过程消息 = finalMsg 之外全部(含其后尾气泡):异常收尾(错误/停止/流中断)时末轮气泡
// 常只有 toolCalls 无正文,按「finalMsg 之前」切片会把尾气泡丢出渲染与轨迹卡,
// 执行中可见的工具卡在收尾瞬间整块消失(用户实测「空白覆盖一大堆内容」)。
const traceMsgs = msgs.filter(m => m !== finalMsg)
// 完成:轨迹折叠为一张卡,轮次内容在卡内 rail 面板展开(不再摊平成独立消息项)
if (traceMsgs.length > 0) {
const key = 'trace-' + traceMsgs[0].id