Bug: 切回旧会话时历史消息不渲染

Bug: 切回旧会话时历史消息不渲染

版本: 0.0.795


描述

切换到新会话再切回旧会话后,旧会话的消息列表在 UI 中显示为空白。数据实际上存在于数据库中,可通过 API 正常读取。


复现步骤

  1. 在某个会话中与助手进行多轮对话(例如 10+ 条消息)

  2. 点击"新建会话"切换到新会话

  3. 在侧边栏点击旧会话切回去

  4. 聊天区域显示空白,没有任何历史消息


预期行为

切回旧会话时,历史消息应正常加载并渲染显示,滚动可查看全部对话记录。


实际行为

UI 聊天区域空白,不显示任何消息。但数据未丢失。


影响

用户无法在 UI 阅读历史记录,只能通过 API 手动捞取。严重影响日常使用体验。


技术排查

  • shared_proto_db LevelDB 中消息数据完整

  • GET /api/threads/:id 正确返回完整 messages 数组(测试用例:34 条消息,全部可读取)

  • 问题不在数据层,在 前端渲染层


建议排查方向

  • 会话切换时,前端是否正确监听了 threadId 变化并触发消息加载

  • messageIds 字段(可能仅包含顶层消息)与 messages 字段(含完整消息树)的读取逻辑是否有混淆

  • 消息列表组件的 useEffect 依赖数组是否包含 threadId

  • 状态管理中历史消息是否在切换时被清空而未重新填充


环境

  • 版本:0.0.795

  • 平台:macOS

  • 数据存储:shared_proto_db(LevelDB)

Please authenticate to join the conversation.

Upvoters
Status

In Review

Board
🐛

Bug Reports

Date

About 3 hours ago

Author

mk

Subscribe to post

Get notified by email when there are changes.