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

2.3 KiB
Raw Blame History

进度日志

2026-09-13

  • 已定位问题:定位列表只读当前聊天 DOM,45 条窗口之外的旧用户消息被完全遗漏。
  • 已确认修复边界:完整历史只进入独立索引;聊天 DOM 和消息滚动空间保持最近窗口策略。
  • 已确认旧条目点击应走独立目标页请求;完整定位请求必须在 session_history_chunk 中提前截获,避免调用 prependHistoryMessages。
  • 新增失败回归:要求独立定位索引状态、分页请求函数、旧页拦截分支和按 data-message-index 定位入口;修改前按预期失败。
  • 已实现摘要索引、定位专用分页请求、旧页不渲染分支、面板加载/重试状态,以及隐藏条目按消息索引重新加载。
  • 全量 npm run regression 首次因历史处理器回归夹具缺少新状态桩失败,已补齐夹具;第二次完整回归通过。
  • 旧条目点击使用独立 load_history_page 目标页请求,只在用户明确点击时把目标所在页加载进聊天区;定位列表后台索引不会改变聊天 DOM 高度。
  • 最终验证通过:npm run regression、node --check public/app.js、node --check scripts/regression.js、git diff --check。
  • 目标页响应与完整定位分页均按独立 requestId 分支处理;断线和错误会清理悬挂请求,避免后续历史响应误消费。
  • 补齐无近期用户消息的边界:只要仍有可用旧历史,定位按钮保持可打开,以便触发完整索引分页。
  • 根据实际截图修正历史入口布局:history-load-more 移入 #messages 的首位,初始停在底部时不悬浮;滚到消息顶部才显示,继续滚动时随内容离开。
  • 为消息重绘和历史前插补充控件保留/插入锚点,避免重绘时丢失历史入口或把消息插到控件上方。
  • 用户进一步明确交互:不是“跟历史内容一起在当前视口显示”,而是“仅作为消息内容首行,滚到最顶才露出”;当前 DOM/CSS 已按此语义实现。
  • 运行中服务静态核验通过:/app.js 含定位目标页逻辑,/index.html 使用 20260913-history-control-position 样式版本,刷新即可生效。
  • 临时 补齐定位列表完整历史 TO DO list.csv 已清理;计划文件保留用于追踪本次设计决策。