diff --git a/src/views/home/index.vue b/src/views/home/index.vue index 5251653..e6e4449 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -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 结果转换为正常对话消息流展示