v1.9.1 修复一个人都不续
v1.9.1 修复「一个人都不续」
真实故障(2026-09-02 两次执行):预扫描正确识别出 15 位有火花的好友,
但发送阶段一个都没处理,日志显示 15 人全部落入 unreached,
session_done 记录「发出 0 人」,全程仅 12 秒。
根因:预扫描为了看全整个列表会把虚拟列表滚到底部,而发送阶段开始前
只把 scrollTop 归零、没有派发 scroll 事件。后台标签页的 rAF 被浏览器暂停,
渲染窗口纹丝不动地停在列表末尾,于是程序只看到最后一屏(多为没火花的人),
而向下推进的逻辑立刻判定「已到底」并结束。
修复:
- 新增 rewindListToTop:归零 scrollTop + 派发 scroll + 首项 scrollIntoView
三招齐上,并等到渲染内容真正变化才返回;以 data-index 最小值确认已回到顶部。 - 发送阶段开始前、预扫描收尾处均改用它。
- 启用此前声明却未使用的清扫上限:推到底后若仍有人没轮到,回到顶部再清扫一轮(最多 3 轮)。
测试:新增 4 项针对本故障的回归(其中行为测试直接加载 runner.js 中的真实函数,
不再在测试里复刻实现),全量 172 项通过。
更新方法:下载解压覆盖原目录后,到 edge://extensions/ 点击本扩展的「重新加载」。