2.3 KiB
2.3 KiB
进度日志
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已清理;计划文件保留用于追踪本次设计决策。