From 9b82d2903750cfd7a3c5ed7e564656f8d19f78ac Mon Sep 17 00:00:00 2001 From: Wxw-Gu <84499436+Wxw-Gu@users.noreply.github.com> Date: Fri, 18 Sep 2026 14:41:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=85=BC=E5=AE=B9=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E6=96=B0=E7=89=88=E7=B3=BB=E7=BB=9F=E6=B6=88=E6=81=AF=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E6=A0=BC=E5=BC=8F=EF=BC=8C=E5=85=A5=E7=BE=A4=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E4=B8=8D=E5=86=8D=E6=98=BE=E7=A4=BA=E6=88=90=E3=80=8C?= =?UTF-8?q?=E6=92=A4=E9=94=80=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 1 + .../wechat-system-message-parsing.md | 92 ++++++++++++++++++ src/main/message-parser.ts | 95 +++++++++++++++++-- tests/unit/message-parser.test.ts | 49 ++++++++++ 4 files changed, 230 insertions(+), 7 deletions(-) create mode 100644 docs/development/wechat-system-message-parsing.md diff --git a/docs/README.md b/docs/README.md index 28f73a9..347e4f8 100644 --- a/docs/README.md +++ b/docs/README.md @@ -50,6 +50,7 @@ Agent Hub 让微信机器人调用本机 TraceMemo;Reader Skill / Local HTTP A - [开发、测试与构建](./development/overview.md) - [界面开发规范:按钮与主题色](./development/ui-guidelines.md) +- [微信系统消息解析与格式兼容](./development/wechat-system-message-parsing.md) - [Query Agent POC(开发测试入口)](./development/query-agent-poc.md) - [本地启动排障](./development/local-startup-troubleshooting.md) - [macOS 数据访问说明](./platform/macos.md) diff --git a/docs/development/wechat-system-message-parsing.md b/docs/development/wechat-system-message-parsing.md new file mode 100644 index 0000000..cb7afc2 --- /dev/null +++ b/docs/development/wechat-system-message-parsing.md @@ -0,0 +1,92 @@ +# 微信系统消息(sysmsg)解析与格式兼容 + +微信的「系统消息」(入群、撤回、成员变动等)以 XML(``)存放在消息内容里, +但**同一类提示的 XML 结构会随客户端版本变化**。本文说明 TraceMemo 的解析方式, +以及在遇到新格式时应当怎么扩展。 + +## 两类格式 + +### 旧格式:正文直接放在 `` + +```xml + + + + + + qrcode + + + + +``` + +解析:命中 `delchatroommember`,直接取 ``。 + +### 新格式:正文在 `