Files
Jyotisha/docs/testing/rectification-timeline-20260909.md
T

4.4 KiB
Raw Blame History

生时校正常驻时间轴:真实环境走查清单(2026-09-09)

分支 codex/rectification-timeline-20260909,任务书 docs/tasks/TASK-rectification-timeline-20260909.md

执行环境无登录态、无 Chrome、无 Docker,以下条目全部未做,交给有真实会话的人。自动化替代证据见 frontend/tests/rectification-timeline-20260909.test.ts(17 项):它锁得住 DOM、类名、CSS 声明与几何换算,锁不住浏览器里的真实像素与滚动行为。BUG-218/252 的教训正是这一条——纯源码合同测试能固定属性,固定不了几何位置。

1. 两条任务书点名、本环境判断不了的

1.1 桌面端时间轴与右侧板「换升时刻」是否显得重复

桌面宽屏打开一个已进入分钟阶段的 Case,让时间轴与右侧板同屏。

  • 两者是否读起来像同一份信息重复了两遍?
  • 时间轴的刻度只标整点/整刻(不标每个候选分钟的数字),板上的「换升时刻」才逐分钟列出并带 LayerChips——这个粗细差别在真实屏幕上是否足以让人不觉得重复?
  • 若判断为重复,产品需在两条出路里选一条:时间轴取代板上「换升时刻」段,或时间轴只留区间带、把分钟点也去掉。本轮未做取舍(任务书决策记录第 7 条留下的问题)。

1.2 移动端键盘弹出后是否仍同屏

iOS Safari 与 Android Chrome 各走一次,在校正对话里点输入框唤起键盘。

  • 时间轴 + 输入框 + 至少一条完整消息气泡是否仍同屏可见?
  • 时间轴是否随视觉视口收缩按比例缩小,而不是被键盘顶出屏幕或盖住输入框?
  • 键盘收起后布局是否回到原样、没有残留空白?

2. 贴底跟随(本设计最大的技术风险)

时间轴在滚动容器之外,它的高度变化不会被 useConversationScrollAnchorResizeObserver 看到。代码上高度是固定的,但需要真实验证没有别的路径改变它。

  • 滚到底部后连续答 3 道题:新消息到达时是否始终自动贴底,没有内容停在视野下缘之外?
  • 手动向上滚一段,再答一题:是否正确解除贴底(不强行拉回),且「跳到最新」按钮出现?
  • 「跳到最新」按钮是否仍挂在输入框上沿,没有被时间轴遮住,点击后正常落底?
  • Case 从未载入切到已载入的那一瞬间,时间轴是否没有改变高度(不应看到对话区跳动,也不应看到「跳到最新」凭空弹出)?

3. 轴缩放与两个阶段

需要一个「完全不知道出生时间」的 Case 才能走到时段阶段。

  • 开场(整天或 ±120)时:条上是否不出现分钟圆点,区间带铺满整条轴,读数写整个窗口的宽度(如「24 小时」)?
  • 选定时段后:轴是否重新对到新窗口,读数变小?
  • 进入分钟阶段后:候选圆点是否出现?
  • 触发一次放宽(吻合率低且代表分钟贴边缘,BUG-572):轴是否向外扩,区间带没有被裁掉或溢出轴外?
  • 系统开启「减弱动效」后,上述变化是否瞬间完成、没有过渡动画?

4. 二元编码与只读

  • 答完一道区分题后,被排除的分钟是否留在原地变成空心且不消失(数据来自推断层)?
  • 所有圆点是否一样大?(不得有任何按可能性大小分级的迹象——BUG-560 状态是 blocked
  • 鼠标悬停在条上任何位置:是否没有任何浮层、提示、文案变化?
  • 点击条上任何位置:是否没有任何反应?(采用只在交付卡上)
  • 条上是否只有两样东西:轴,和形如 05:0705:09 · 3 分钟 的读数?不应出现计数、图例、阶段名、「已对照 N 件经历」或任何注脚。

5. 跨午夜窗口

需要一个声明为「夜里到凌晨」(23:00–03:59)的 Case。

  • 轴是否从 23:00 单调走到 03:59(刻度依次 23:00 / 00:00 / 01:00 / 02:00 / 03:00),而不是首尾颠倒或空白?
  • 区间带与圆点是否落在正确位置?

6. 视觉

  • 浅色与深色主题下条的背景、发丝线、区间带、空心点是否都清晰可辨?
  • 开启「增强对比度」与「减少透明度」后是否仍可读?(本条用纯色背景、未用 backdrop-filter,预期不受影响)
  • 长时间会话滚动时,条是否稳定不抖动?