• 把 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>
    yibo authored
     
    Browse File »

  • Mac side (lemonPCRM):
    - Express server with /api/master/chat SSE endpoint
    - MasterSession multi-round orchestration
    - AgentManager + ToolRegistry
    - ClaudeCliProtocol ACP implementation
    
    Pixel side (wechat_plain/scripts/):
    - hermes_wechat_daemon.py: standalone daemon
      - SQLCipher DB decryption with WAL checkpoint fix
      - Direct LLM API calls (Kimi/Anthropic/OpenAI)
      - am broadcast to trigger LSPosed send
      - Auto wake WeChat to foreground before poll/send
    - lsposed-wechat-sendmsg: LSPosed module
      - sendTextMessageDirect via WeChat internal API
      - u01.r1.a -> builder -> m1.a() full chain
      - Background thread NetScene submission
    
    Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
    yibo authored
     
    Browse File »