• 顶层「项目概述」从「lemonPCRM 单项目」改成「3 个互相关联但独立的
    子项目(lemonPCRM / wechat_plain / lifelog-recorder)」总览表。
    
    新增「lifelog-recorder」整章(位于「微信集成架构」与「注意事项」
    之间),覆盖:
    
    - 项目目标(Pixel 当永远开机的麦克风,0 元 0 网络,下接 lemonPCRM
      人脉图谱当个人记忆库)
    - 架构骨架 ASCII 图 + 技术栈摘要(Kotlin 2.1 / Compose / Room /
      sherpa-onnx)
    - 组件间数据流接口表 + 外部 HTTP/WS 接口
    - 历史沿革 Round 1-3:全云 ASR(讯飞 80 元包根本不存在)/
      whisper.cpp on-device(0.6× 跑不动)/ sherpa-onnx paraformer
      (20-32× realtime 真机实测,选定),含完整 RTF/质量对比表
    - 关键坑摘要 6 条(asset mmap SIGSEGV / silero LFS 拦截 /
      线程甜点 4 / AID_INET / keys.properties / 232MB 模型不进仓库)
    - 未来计划摘要(详细见 lifelog-recorder/HANDOFF.md §五)
    - 与 lemonPCRM 的关系(目前独立,v2 计划打通 GraphStore
      MENTIONED_IN 边)
    
    细节避雷清单、命令速查、Pipeline 详图都不在此重复,全指向
    lifelog-recorder/HANDOFF.md。CLAUDE.md 只勒住架构骨架 + 决策来源
    便于每次 session 加载时快速建立心智模型。
    
    Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
    yibo authored
     
    Browse File »

  • 通过 DB 实证与 LSPosed 日志对比定位到:
    
    - LSPosed `HermesWeChatModule.sendTextMessageDirect` 在 WeChat 8.0.72 上
      返回 `Send result: true` 后,主线程异步 NetScene 提交触发 NPE 被 swallow,
      消息**不进 message 表**。这是误报。
    - Frida daemon 队列方案(`android-wechat-sender-frida.js`)在 Frida 17 +
      微信 8.0.72 上注入会触发反调试,进程崩溃,无法生产使用。
    - 实际可用路径是 `HermesAccessibilityService`(lsposed-wechat-sendmsg 模块内):
      监听同一广播 `com.hermes.wechat.SEND_MSG`,纯 UI 自动化点击微信完成发送。
    - A11y service 易被系统关闭(`enabled_accessibility_services = null`),
      这是消息发送失败的最常见根因,docs 中加上启用 / 验证命令。
    
    更新范围:
    - CLAUDE.md
    - server/services/wechat/README.md, SKILL.md
    - server/services/wechat/android-wechat-sender-frida.js(标注废弃)
    - wechat_plain/scripts/local-testkit/docs/README.md, HERMES_WECHAT_ARCHITECTURE.md
    - wechat_plain/scripts/lsposed-wechat-sendmsg/README.md
    
    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 »