修复首页会话切换时正在执行的工作流被历史详情覆盖的问题

切回正在执行的会话时保留内存中的实时消息流(running 表单卡片 + 实时节点进度),
不再用 session/get 历史详情重建覆盖;普通对话生成中同样受益

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-08-21 10:25:49 +08:00
co-authored by Claude
parent c432eb431a
commit c441ccec94
+7 -2
View File
@@ -1478,8 +1478,13 @@ const handleSelectHistory = async (id: string) => {
// 加载会话内结果列表(session/get),用它判断会话类型:普通会话(无 workflow 结果)只依赖这一个接口,不再调 execution/get
const results = await loadSessionResults(id);
const hasWorkflow = Array.isArray(results) && results.some((r) => r.type === 'workflow');
// 工作流会话:回显为消息流(带值表单卡片 + 结果消息),不再跳整页表单页
if (hasWorkflow) {
// 目标会话正在执行(工作流/对话进行中,sendingSessions 标记为 true):
// 保留内存中的实时消息流(running 表单卡片 + 实时进度),不能用历史详情重建覆盖,
// 本轮 handler 完成后自然追加结果消息并刷新结果列表
if (sendingSessions[id]) {
// 仅刷新结果列表,消息流保留实时状态
} else if (hasWorkflow) {
// 工作流会话:回显为消息流(带值表单卡片 + 结果消息),不再跳整页表单页
await loadWorkflowSessionMessages(id, results);
} else {
// 普通对话会话 / 虚拟会话:切回对话页,把 session/get 结果转换为正常对话消息流展示