Files
cc-web/.planning/full-outline-history/task_plan.md
2026-09-13 23:59:27 +08:00

2.4 KiB
Raw Blame History

补齐定位列表的完整历史索引

目标

让“定位”列表展示当前会话的全部用户消息,即使聊天区只保留最近 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 为现有历史处理器回归夹具补充独立定位状态和合并函数桩;随后全量回归通过