创建子话题并开始对话后,历史对话会出现不属于此分支的对话

用户使用 LobeChat Cloud 官方云服务(Web 桌面浏览器 / Firefox),版本 v2.2.4。开启子话题功能并开始新对话后,历史对话列表中出现不属于该分支的消息,导致无法从主话题正常分支展开对话。

创建子话题并开始对话后,历史对话会出现不属于此分支的对话

创建子话题并开始对话后,历史对话会出现不属于此分支的对话

快速结论:在 LobeChat v2.2.4 (Web / Firefox) 中,创建子话题并继续对话后,主话题或其他子话题的消息“泄露”到当前子话题的历史记录中。优先排查是否使用了包含修复的版本,以及避免在创建子话题后继续操作主话题。

问题场景

用户使用 LobeChat Cloud 官方云服务(Web 桌面浏览器 / Firefox),版本 v2.2.4。开启子话题功能并开始新对话后,历史对话列表中出现不属于该分支的消息,导致无法从主话题正常分支展开对话。

报错原文

创建子话题并开始对话后,历史对话会出现不属于此分支的对话

(非代码报错,表现为 UI 逻辑错误,英文社区对此行为的描述为:parent topic messages or sibling sub‑topic messages “bleed” into child branches)

原因分析

可能原因:子话题(sub‑topic / thread)的上下文组装逻辑存在缺陷。收集对话历史时,threadId 的过滤未能正确处理祖先、兄弟、后代与当前子话题之间的关系,导致其他分支的消息被错误地包含在当前子话题的历史记录中。多个已有 Issue(#8327、#14390)报告了相同问题。

尽管相关 PR(如 #15908)已合入以重构消息链解析,但 v2.2.4 版本中问题仍未完全修复。

环境排查

  • 确认 LobeChat 版本:v2.2.4(官方云部署)
  • 确认浏览器及版本:Firefox(具体版本号未在 Issue 中提供)
  • 检查是否已属于已知 bug,可查询 Create sub‑topicthread isolation 相关 Issue

解决步骤

  1. 临时绕过:避免在创建子话题后继续对主话题发送新消息。这似乎是当前最有效的临时措施,能显著减少消息泄露的频率。
  2. 确认修复状态:检查 LobeChat 后续版本(如 v2.5.x 或更高)是否已合并来自 PR #15908 及相关 thread 隔离的完整修复。如果可行,升级到最新版。
  3. 回退测试:(如果条件允许)尝试在干净的浏览器环境或不同设备上复现问题,排除缓存或扩展冲突。

验证方法

创建子话题后,发送一条新消息,滚动查看历史记录——确认其中是否出现了主话题或其他子话题的消息。若不再出现“不属于此分支的对话”,则问题已解决。

参考来源

lobehub/lobe-chat #16012

celebrityanime
celebrityanime
文章: 9629

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注