把 6 步链路接到唯一可用的发送路径(HermesAccessibilityService):
1. termux-notification-list 监听通知(息屏兜底)
2. input keyevent 224 点亮屏幕 + wm dismiss-keyguard 解锁
3. am start LauncherUI 切微信前台
4. sqlcipher 轮询 EnMicroMsg.db 拉新消息 + 最近 N 条上下文
5. 调 hermes-agent /v1/chat/completions 生成回复
6. am broadcast com.hermes.wechat.SEND_MSG → A11y UI 自动化发送
关键改动:
- android-wechat-sender.js
- sendTextMessageBroadcast 增加 options.toUserDisplayName(A11y 搜索必传)
- 新增 checkAccessibilityServiceEnabled / enableAccessibilityService
- android-wechat-tracker-sqlcipher.js
- 新增 getContactNickname(wxid):查 rcontact 拿 conRemark/nickname,
带 filehelper/weixin 等内置 helper 的硬编码 fallback
- 新增 fetchHistory(talker, limit):拉最近 N 条文本消息正序返回
- auto-reply.js
- 移除已废弃的 sendTextMessageFrida
- 启动时校验 A11y service,未启用则尝试自动启用并打印 manual fix 命令
- handleMessage 中:先 getContactNickname 拿 displayName、再 fetchHistory
给 hermes 做多轮上下文,最后用 broadcast + displayName 发送
- buildHermesMessages 重写:自动把历史按 isSend 转 user/assistant 多轮
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>