Skip to content

fix: 适配飞书 7.73.9 的已读上报入口 - #10

Merged
starccy merged 1 commit into
starccy:mainfrom
qingbo1011:fix/support-feishu-7.73.9
Aug 13, 2026
Merged

fix: 适配飞书 7.73.9 的已读上报入口#10
starccy merged 1 commit into
starccy:mainfrom
qingbo1011:fix/support-feishu-7.73.9

Conversation

@qingbo1011

Copy link
Copy Markdown
Contributor

背景

#9 合入后,我在 2026-08-11 使用 macOS 飞书 7.53.16 完成了双账号手工验证。2026-08-12 升级到 7.73.9 后,我重新分析了新版客户端的真实 messenger.asarupdateMessagesMeRead 已读上报入口由 1 处变为 2 处,两个入口的请求对象变量分别为 _t

现有补丁会匹配所有入口,但注入的代码把请求对象固定写成了 t,因此无法可靠处理变量为 _ 的入口。本 PR 改为从每个锚点捕获实际变量名,再为当前入口生成补丁。

修改内容

  • 收紧 read-receipt-gate 的匹配规则,同时捕获当前入口的已读请求对象变量。
  • 按每次匹配结果动态生成补丁,通过局部变量 r 处理对应的请求对象,不再依赖固定变量名。
  • 保持 feat: 按会话控制发送后的已读上报并完善新版兼容 #9 已有的行为不变,包括同会话绑定、1.5 秒有效期和一次性放行。
  • 增加 _t 两种变量同时出现时的回归测试。
  • 将 README 中的已验证版本更新为 macOS 飞书 7.53.16、7.73.9。

兼容性与验证

  • python3 -m unittest discover -s tests -v:9/9 通过
  • python3 -m py_compile main.py asar.py tests/test_patch.py tests/test_asar.py
  • git diff --check
  • 使用 7.53.16 的真实原始 ASAR 完成离线扫描、修改、重打包和再次解包,共匹配 1 个已读入口、6 个发送成功入口,全部 7 个修改后的 bundle 通过 node --check
  • 使用 7.73.9 的真实原始 ASAR 完成离线扫描、修改、重打包和再次解包,共匹配 2 个已读入口、2 个发送成功入口,全部 4 个修改后的 bundle 通过 node --check
  • 2026-08-11 在 macOS 飞书 7.53.16 上完成双账号手工验证
  • 2026-08-12 在 macOS 飞书 7.73.9 上完成双账号手工验证

两次手工验证的结果一致:只打开会话时,对方仍看到未读;成功发送消息后,当前会话恢复合理的已读状态;之后收到的新消息仍保持未读。账号侧验证均由人工完成,没有通过自动化工具操作或发送飞书消息。

本 PR 不改变 #9 的已读控制策略,只补充新版入口的动态变量适配。按当前测试结果,代码兼容 macOS 飞书 7.53.16 和 7.73.9。

@qingbo1011

Copy link
Copy Markdown
Contributor Author

@starccy 感谢您合入 #9。补充说明一下,#9 中的双账号手工验证是在 2026-08-11 使用 macOS 飞书 7.53.16 完成的。今天升级到 7.73.9 后,我发现新版有两个已读上报入口,而且请求对象的变量名不同,所以补充了这次适配。

7.53.16 和 7.73.9 都已用真实 ASAR 完成离线验证,也分别通过了双账号手工测试。原有的已读控制行为保持不变,具体修改和验证记录已写在 PR 描述中,麻烦您 review。

@starccy
starccy merged commit fa51726 into starccy:main Aug 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants