v1.9.2 修复重复发送与漏发
v1.9.2 修复重复发送与「聊天记录没加载出来」
两个现象其实是同一个根因。感谢反馈并提供页面数据 —— 定位完全基于真实采集,未作猜测。
问题表现
- 已手动续过火花的好友,扩展又发了一遍(张艺航、杨斌洲、郭星宇)
- 部分该续的好友被跳过,日志显示「聊天记录没加载出来」(张嘉豪、吕世贤、何子帆)
- 同一批里另一些好友却判断正确(李源西、谷超凡、丁思博)
根因
真实页面中每条消息各自包裹在独立的 [data-index] 容器内,没有共同的消息列表类名。
旧逻辑按 parentElement 分组取「消息最多的父节点」,而每个父节点只含 1 条消息,
于是把 [data-index="0"](仅最新一条)当成了整个消息区:
· 最新一条是对方发的 → 判定「今天没发过」→ 重复发送
· 那唯一一条是表情或图片(无文字)→ 被文本过滤丢弃 → 0 条 → 报「读不到聊天记录」
判断正确的那几位,纯粹因为最新一条恰好是自己发的 —— 相当于抛硬币。
修复内容
- 消息区容器改为取所有消息气泡的最近公共祖先,不依赖任何类名;
语义选择器命中时也会校验其是否真正包含全部消息。 - 表情、图片、语音等无文字气泡不再被丢弃(仅排除虚拟列表占位块)。
- 修正倒序渲染:消息区为 rotate(180deg) 倒序(data-index=0 为最新),
判定前先按几何位置排成「旧 → 新」,确保时间戳继承方向正确。
测试
新增 9 项回归测试,fixture 由真实采集数据生成,并已验证其中 7 项在旧版本上失败。
全量 181 项通过。
更新方法
下载解压覆盖原目录后,前往 edge://extensions/ 点击本扩展的「重新加载」。