Skip to content

v1.9.2 修复重复发送与漏发

Choose a tag to compare

@TomShi11 TomShi11 released this 02 Sep 05:03
· 1 commit to main since this release

v1.9.2 修复重复发送与「聊天记录没加载出来」

两个现象其实是同一个根因。感谢反馈并提供页面数据 —— 定位完全基于真实采集,未作猜测。

问题表现

  • 已手动续过火花的好友,扩展又发了一遍(张艺航、杨斌洲、郭星宇)
  • 部分该续的好友被跳过,日志显示「聊天记录没加载出来」(张嘉豪、吕世贤、何子帆)
  • 同一批里另一些好友却判断正确(李源西、谷超凡、丁思博)

根因
真实页面中每条消息各自包裹在独立的 [data-index] 容器内,没有共同的消息列表类名。
旧逻辑按 parentElement 分组取「消息最多的父节点」,而每个父节点只含 1 条消息,
于是把 [data-index="0"](仅最新一条)当成了整个消息区:
· 最新一条是对方发的 → 判定「今天没发过」→ 重复发送
· 那唯一一条是表情或图片(无文字)→ 被文本过滤丢弃 → 0 条 → 报「读不到聊天记录」
判断正确的那几位,纯粹因为最新一条恰好是自己发的 —— 相当于抛硬币。

修复内容

  • 消息区容器改为取所有消息气泡的最近公共祖先,不依赖任何类名;
    语义选择器命中时也会校验其是否真正包含全部消息。
  • 表情、图片、语音等无文字气泡不再被丢弃(仅排除虚拟列表占位块)。
  • 修正倒序渲染:消息区为 rotate(180deg) 倒序(data-index=0 为最新),
    判定前先按几何位置排成「旧 → 新」,确保时间戳继承方向正确。

测试
新增 9 项回归测试,fixture 由真实采集数据生成,并已验证其中 7 项在旧版本上失败。
全量 181 项通过。

更新方法
下载解压覆盖原目录后,前往 edge://extensions/ 点击本扩展的「重新加载」。