2.4 KiB
2.4 KiB
补齐定位列表的完整历史索引
目标
让“定位”列表展示当前会话的全部用户消息,即使聊天区只保留最近 45 条用于显示;旧消息只进入定位索引,不重新插入聊天 DOM,也不额外占用聊天滚动空间。
阶段
| 阶段 | 状态 | 验收标准 |
|---|---|---|
| 1. 核对定位列表与历史分页的数据链路 | complete | 明确当前定位数据仅来自 DOM,并确认可复用的历史分页响应 |
| 2. 补充完整定位索引的失败回归 | complete | 回归能证明隐藏旧消息时定位列表仍应获得完整用户消息 |
| 3. 增加独立的定位历史索引缓存 | complete | 打开定位列表时可按页读取完整历史,且不改变聊天消息 DOM |
| 4. 支持旧消息定位加载与滚动 | complete | 点击未渲染旧消息会按消息索引加载所需页并滚动到目标 |
| 5. 运行定向回归、语法和差异检查 | complete | 定向回归、JS 语法检查、git diff --check 全部通过 |
| 6. 清理临时记录并交付修改结果 | complete | TODO CSV 删除,明确完整列表与聊天空间隔离的实现和验证结果 |
机器可读阶段状态
Phase 1:核对定位列表与历史分页的数据链路
Status: complete
Phase 2:补充完整定位索引的失败回归
Status: complete
Phase 3:增加独立的定位历史索引缓存
Status: complete
Phase 4:支持旧消息定位加载与滚动
Status: complete
Phase 5:运行定向回归、语法和差异检查
Status: complete
Phase 6:清理临时记录并交付修改结果
Status: complete
关键决策
- 不改变聊天区“最近 45 条 + 手动回看”的显示策略。
- 不把定位列表的完整历史通过隐藏 DOM 塞进消息滚动区;旧消息只保存在轻量索引对象中。
- 复用
load_history_page的现有分页协议,新增请求标识分支,避免与用户点击“查看更早消息”的聊天分页互相抢状态。
错误记录
| 错误 | 尝试 | 处理 |
|---|---|---|
定向历史回归按预期失败:缺少 currentOutlineHistoryState |
1 | 证明旧实现没有独立定位索引;已补充失败契约后进入实现 |
全量回归提取历史处理器时报 activeOutlineHistoryRequest is not defined |
1 | 为现有历史处理器回归夹具补充独立定位状态和合并函数桩;随后全量回归通过 |