2.1 KiB
2.1 KiB
修复标题显示归属
背景
会话中的自动标题用于标记某条用户消息所开启的新主题。当前标题条再次显示在 目标消息之后,造成视觉上像是标题属于下一条消息。该逻辑此前已调整为标题显示 在所属消息上方。源码、持久化事件和当前服务返回的静态脚本均已包含该修复, 实际回归来自长期打开的标签页仍运行旧的内存脚本。
用户故事
作为查看长会话的用户,我希望自动标题显示在它所概括的消息上方,从而能快速 识别每个主题从哪条消息开始。
功能要求
- 标题事件有明确锚点时,按锚点消息索引在该消息上方渲染。
- 实时收到标题事件与重新加载持久化会话时,显示位置必须一致。
- 历史事件缺少显式锚点时,使用已定义的兼容回退,不得丢失标题。
- 不改变标题文本、标题生成时机和其他消息顺序。
- 服务端应以当前
app.js内容生成稳定资源指纹,并注入入口页、随 WebSocket 鉴权成功消息下发。 - 已加载本次版本自检逻辑的客户端,发现自己加载的资源指纹与服务端不一致时, 应只触发一次页面刷新,防止重连或异常数据造成刷新循环。
验收场景
- 给定标题事件
messageIndex = 1、anchorMessageIndex = 0,标题应出现在 索引 0 的目标消息上方。 - 刷新页面后,同一标题仍在同一消息上方。
- 仅含旧
messageIndex的标题事件仍能显示,且行为由测试明确锁定。 - 入口页脚本 URL 带服务端生成的当前资源指纹。
- 已具备自检逻辑的页面在前后端资源指纹一致时不刷新;不一致时调用一次刷新, 重复握手不重复触发。
非目标
- 不重做标题条视觉样式。
- 不改变模型生成标题的提示词。
- 不迁移或批量改写历史会话文件。
- 不引入 service worker、构建系统或第三方前端依赖。
- 不尝试远程刷新本机制上线前已经打开、且自身没有版本自检代码的旧页面; 这些页面在本次上线后需要用户手动刷新一次。