Skip to content

v1.9.1 修复一个人都不续

Choose a tag to compare

@TomShi11 TomShi11 released this 02 Sep 04:33
· 2 commits to main since this release

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/ 点击本扩展的「重新加载」。