修复会话切换兼容并重新打包发布
This commit is contained in:
9
.planning/history-control-position/findings.md
Normal file
9
.planning/history-control-position/findings.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# 发现记录
|
||||
|
||||
## 2026-09-13
|
||||
|
||||
- 用户截图显示“还有 16 条更早消息 / 查看更早消息”以胶囊形式停在消息内容上方,用户明确要求它回到“上面再显示”,不要悬着跟随。
|
||||
- `public/index.html` 已将控件放在 `.messages-wrap` 内、`#messages` 之前,但 `public/style.css` 给 `.history-load-more` 设置了 `position: absolute`、`top`、`left` 和水平位移,因此它覆盖消息且随可视区域悬浮。
|
||||
- `.messages-wrap` 当前没有纵向 flex 布局,`#messages` 仅使用 `height: 100%`;改为顶部普通节点 + 下方 `flex: 1` 滚动区即可保留现有分页、prepend 和滚动补偿逻辑。
|
||||
- 本次最小实现不需要改变历史消息协议或 `requestOlderHistory`;只调整布局样式并补充静态契约回归,避免引入新的滚动副作用。
|
||||
- `public/index.html` 原先固定使用旧的 `style.css` 查询版本;已更新为 `20260913-history-control-position`,避免浏览器缓存旧悬浮样式。
|
||||
16
.planning/history-control-position/progress.md
Normal file
16
.planning/history-control-position/progress.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# 进度日志
|
||||
|
||||
## 2026-09-13
|
||||
|
||||
- 建立本次历史消息入口位置修复计划,尚未开始代码修改。
|
||||
- 完成定位:`.history-load-more` 使用绝对定位覆盖消息;`.messages-wrap` 未为控件预留布局空间。
|
||||
- 确定最小修复方案:父容器纵向 flex,控件置于顶部正常流,消息区使用 `flex: 1` 独立滚动。
|
||||
- 新增 `history-recall` 位置契约,先按预期捕获当前 `position: absolute` 实现;进入 CSS 布局修复。
|
||||
- 确认 HTML 顺序已经是控件在 `#messages` 之前,无需改动历史协议或分页脚本;通过父容器布局让该顺序真正占据顶部空间。
|
||||
- CSS 已移除绝对定位、top/left/transform 和毛玻璃覆盖效果;`.messages-wrap` 改为纵向 flex,`.messages` 改为剩余空间滚动。
|
||||
- `node scripts/regression.js --target history-recall` 已通过。
|
||||
- 窄屏沿用 `max-width: min(92%, 560px)` 与内容收缩规则,不新增覆盖定位。
|
||||
- `node --check public/app.js`、`node --check scripts/regression.js`、`git diff --check` 均已通过。
|
||||
- 临时 `修复历史消息入口位置 TO DO list.csv` 已按流程清理;本次源码改动涉及 `public/index.html`、`public/style.css` 和 `scripts/regression.js`。
|
||||
- 同步更新 `public/index.html` 的样式查询版本,且历史回看回归新增缓存失效断言;新增验证仍全部通过。
|
||||
- 运行中 `127.0.0.1:8002` 已直接返回新 CSS 和新样式版本 URL;无需重启,刷新页面即可加载。
|
||||
43
.planning/history-control-position/task_plan.md
Normal file
43
.planning/history-control-position/task_plan.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# 修复历史消息入口位置
|
||||
|
||||
## 目标
|
||||
|
||||
将“还有 N 条更早消息 / 查看更早消息”入口放回消息流顶部的正常文档流中,避免它在滚动时悬浮、跟随内容或遮挡消息;同时保留连续翻页和失败重试能力。
|
||||
|
||||
## 阶段
|
||||
|
||||
| 阶段 | 状态 | 验收标准 |
|
||||
|---|---|---|
|
||||
| 1. 定位历史入口的 DOM、脚本和样式链路 | complete | 明确控件是否由 fixed/sticky 定位、插入到哪个滚动容器及滚动时的行为 |
|
||||
| 2. 补充控件位置回归断言 | complete | 回归能锁定入口必须位于消息流顶部且不使用悬浮定位 |
|
||||
| 3. 调整历史入口的 DOM 插入和滚动逻辑 | complete | 控件作为消息列表首部普通节点显示,加载后不跟随视口悬浮 |
|
||||
| 4. 调整样式并兼容窄屏布局 | complete | 桌面和窄屏下入口均保持正常流布局,不遮挡消息内容 |
|
||||
| 5. 运行定向回归、语法检查和差异检查 | complete | 相关回归、JS 语法检查、git diff --check 全部通过 |
|
||||
| 6. 清理临时记录并交付修改结果 | complete | TODO CSV 删除,工作区仅保留本次修改并明确验证结果 |
|
||||
|
||||
## 机器可读阶段状态
|
||||
|
||||
### Phase 1:定位历史入口的 DOM、脚本和样式链路
|
||||
**Status:** complete
|
||||
|
||||
### Phase 2:补充控件位置回归断言
|
||||
**Status:** complete
|
||||
|
||||
### Phase 3:调整历史入口的 DOM 插入和滚动逻辑
|
||||
**Status:** complete
|
||||
|
||||
### Phase 4:调整样式并兼容窄屏布局
|
||||
**Status:** complete
|
||||
|
||||
### Phase 5:运行定向回归、语法检查和差异检查
|
||||
**Status:** complete
|
||||
|
||||
### Phase 6:清理临时记录并交付修改结果
|
||||
**Status:** complete
|
||||
|
||||
## 错误记录
|
||||
|
||||
| 错误 | 尝试 | 处理 |
|
||||
|---|---|---|
|
||||
| 定向历史回归按预期失败:历史控件仍为绝对定位 | 1 | 已证明新增契约能捕获当前悬浮实现,进入布局修复 |
|
||||
| `curl` 返回 23 | 1 | 仅因输出管道被 `rg -m 1` 提前关闭;同一响应已成功打印目标 CSS 片段,非服务错误 |
|
||||
Reference in New Issue
Block a user