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