openclaw-weixin 3.0.0 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,45 @@
6
6
 
7
7
  ## [未发布]
8
8
 
9
+ ## [3.0.2] - 2026-08-05
10
+
11
+ ### 变更
12
+
13
+ - **入站媒体按 Agent 隔离:** 图片、视频、文件和语音现在按已路由的 Agent 存入
14
+ `weixin/<agentId>/inbound`,避免多 Agent 部署中的媒体文件混放及跨 Agent
15
+ 访问;无法解析 Agent 时继续使用兼容旧版本的 `inbound` 路径。
16
+
17
+ ### 修复
18
+
19
+ - **入站 getUpdates 双投递:** ordinary / approval 两条 admission 车道在处理前通过
20
+ OpenClaw `createClaimableDedupe`(账号隔离的 `resolveFilePath`,落在
21
+ `openclaw-weixin/replay-dedupe/`,兼容最低宿主 `2026.6.1`)认领稳定去重键
22
+ (`message_id` → `client_id` → `seq` → 正文指纹),成功后写入 24 小时墓碑,
23
+ 避免 iLink 长轮询至少一次投递(约 1 秒重放)以及长任务卡住后的更长窗口重投
24
+ 把同一条消息跑两遍 AI,并在进程重启后仍生效。失败与 abort 会 release 以便
25
+ 重试。进行中的重放会立刻释放 admission 车道,在车道外观察持有者,仅在
26
+ release 时重新入队,避免挡住后续不同消息。认领成功后的每一步都在 claim
27
+ 生命周期内。Fallback 优先用 item `msg_id` 摘要,绝不只按发送者建键。重复
28
+ 投递日志只记录非敏感的 identity 种类。该窗口是**重放去重 / 墓碑窗口**,不
29
+ 会吞掉用户故意再发且带有新 `message_id` 的消息。存在传输层 id 时
30
+ `MessageSid` 使用同一稳定键。移植自
31
+ [Tencent/openclaw-weixin#240](https://github.com/Tencent/openclaw-weixin/pull/240);
32
+ 跟踪
33
+ [NewFuture/openclaw-weixin#36](https://github.com/NewFuture/openclaw-weixin/issues/36)。
34
+
35
+ ## [3.0.1] - 2026-08-02
36
+
37
+ ### 变更
38
+
39
+ - 将 npm 发布绑定到受保护的 `npm-publish` environment;自动检查全部通过后需由
40
+ 仓库管理员审批,且 OIDC 发布权限仅授予审批后的发布 job。
41
+ - npmjs 发布成功后由同一工作流同步发布 GitHub Packages 镜像
42
+ `@newfuture/openclaw-weixin`,再创建使用中英文变更日志说明的 GitHub Release;
43
+ 重试时会分别跳过已存在的包版本并补齐缺失目标;包括 registry 为空的情况,前一
44
+ 仓库版本尚未完成镜像时不会发布后续 GitHub Packages 版本。
45
+ - 将最低支持的 OpenClaw 宿主扩展至 `2026.6.1`,保留 `2026.7.1` 作为常规开发
46
+ 基线,并增加最低宿主版本的完整 CI 构建与测试。
47
+
9
48
  ## [3.0.0] - 2026-07-31
10
49
 
11
50
  ### 新增
package/CHANGELOG_EN.md CHANGED
@@ -6,6 +6,52 @@ This project follows the [Keep a Changelog](https://keepachangelog.com/) format.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [3.0.2] - 2026-08-05
10
+
11
+ ### Changed
12
+
13
+ - **Per-agent inbound media isolation:** images, videos, files, and voice messages
14
+ are now stored under `weixin/<agentId>/inbound` for the routed agent, preventing
15
+ mixed media and cross-agent access in multi-agent deployments. Unresolved
16
+ routes continue to use the legacy-compatible `inbound` path.
17
+
18
+ ### Fixed
19
+
20
+ - **Inbound getUpdates duplicate delivery:** ordinary and approval admission
21
+ lanes claim a stable dedupe key (`message_id` → `client_id` → `seq` → body
22
+ fingerprint) via OpenClaw `createClaimableDedupe` (account-scoped
23
+ `resolveFilePath` under `openclaw-weixin/replay-dedupe/`, compatible with the
24
+ minimum host `2026.6.1`) before processing, then commit a 24h tombstone so
25
+ at-least-once iLink long-poll replays (~1s) and longer redeliveries after
26
+ stuck long turns do not run the AI pipeline twice — including across process
27
+ restart. Failures and abort release the claim for retry. In-flight replays
28
+ release the admission lane immediately, observe the owner out of band, and
29
+ re-enqueue only if the owner releases — so a distinct follow-up message is
30
+ not blocked. Claim ownership wraps every step after admission. Fallback keys
31
+ prefer item `msg_id` digests and never key by sender alone. Duplicate logs
32
+ record only a non-sensitive identity kind. The window is a **replay-dedupe /
33
+ tombstone window**, not a content dedupe that swallows intentional re-sends
34
+ with a new `message_id`. Stable `MessageSid` uses the same key when transport
35
+ ids are present. Port of
36
+ [Tencent/openclaw-weixin#240](https://github.com/Tencent/openclaw-weixin/pull/240);
37
+ tracks [NewFuture/openclaw-weixin#36](https://github.com/NewFuture/openclaw-weixin/issues/36).
38
+
39
+ ## [3.0.1] - 2026-08-02
40
+
41
+ ### Changed
42
+
43
+ - Bound npm publishing to the protected `npm-publish` environment, requiring a
44
+ repository administrator's approval after automated validation and granting
45
+ OIDC publish permission only to the approved job.
46
+ - Made the same workflow mirror each npmjs release to GitHub Packages as
47
+ `@newfuture/openclaw-weixin`, then create a GitHub Release from the bilingual
48
+ changelogs; retries skip existing package versions and reconcile missing
49
+ destinations; publication remains blocked, including when the registry is
50
+ empty, until the preceding repository release reaches GitHub Packages.
51
+ - Expanded the minimum supported OpenClaw host to `2026.6.1`, retained
52
+ `2026.7.1` as the normal development baseline, and added a full minimum-host
53
+ CI build and test.
54
+
9
55
  ## [3.0.0] - 2026-07-31
10
56
 
11
57
  ### Added
package/NOTICE CHANGED
@@ -9,3 +9,7 @@ Copyright (C) 2026 Tencent. All rights reserved.
9
9
  openclaw-weixin is licensed under the MIT.
10
10
 
11
11
  Modifications Copyright (C) 2026 Contributors to NewFuture/openclaw-weixin.
12
+
13
+ The OpenClaw lobster artwork in docs/site/logo.svg is adapted from
14
+ openclaw/openclaw ui/public/favicon.svg.
15
+ Copyright (C) 2026 OpenClaw Foundation. Licensed under the MIT License.
package/README.md CHANGED
@@ -1,31 +1,25 @@
1
1
  # openclaw-weixin
2
2
 
3
- [English](./README_EN.md)
3
+ [English](./README_EN.md) · [文档站点](https://openclaw-weixin.newfuture.cc/)
4
4
 
5
5
  这是 [Tencent/openclaw-weixin](https://github.com/Tencent/openclaw-weixin)
6
6
  的社区维护发行版,用于连接 OpenClaw 与微信,并提供更好的使用体验。
7
7
 
8
8
  ## 安装或替换
9
9
 
10
- 需要 [OpenClaw](https://docs.openclaw.ai/install) `>=2026.7.1`。请使用运行
10
+ 需要 [OpenClaw](https://docs.openclaw.ai/install) `>=2026.6.1`。请使用运行
11
11
  OpenClaw 的同一用户,并在同一环境中执行。
12
12
 
13
13
  **命令行——一行安装或替换:**
14
14
 
15
+ > 提示:**不要**先卸载 `@tencent-weixin/openclaw-weixin`;直接原位替换通常会保留现有配置和登录状态。
16
+
15
17
  ```bash
16
18
  openclaw plugins install npm:openclaw-weixin --force
17
19
  ```
18
20
 
19
21
  <details>
20
- <summary>替换腾讯官方插件?先看这里</summary>
21
-
22
- > **警告:**不要先卸载 `@tencent-weixin/openclaw-weixin` 或重新扫码。直接执行
23
- > 上面的命令;原位替换通常会保留现有配置和登录状态。
24
-
25
- </details>
26
-
27
- <details>
28
- <summary>绑定微信账号</summary>
22
+ <summary>绑定微信账号(全新安装)</summary>
29
23
 
30
24
  如需将微信账号绑定到当前 OpenClaw,请启用插件并开始扫码绑定:
31
25
 
@@ -39,7 +33,7 @@ openclaw channels login --channel openclaw-weixin
39
33
  </details>
40
34
 
41
35
  <details>
42
- <summary>重载并检查</summary>
36
+ <summary>重载检查</summary>
43
37
 
44
38
  确保正在运行的 Gateway 已重载插件。必要时重启承载 OpenClaw 的服务、容器或
45
39
  Pod,然后执行:
@@ -53,34 +47,34 @@ openclaw channels status --probe
53
47
 
54
48
  </details>
55
49
 
56
- ### 通过 Agent 安装
57
50
 
58
- OpenClaw `>=2026.7.2-beta.1` 时,如果已设置 `commands.plugins: true`,并且你是
59
- owner/admin,直接发送:
51
+ ### 提示词自动安装
52
+
53
+ 将下面的提示词直接发送 OpenClaw Agent,用于安全安装或原位替换插件:
60
54
 
61
55
  ```text
62
- /plugins install npm:openclaw-weixin --force
56
+ 请在不改变现有配置和登录状态的前提下,安装或原位替换 `openclaw-weixin`:
57
+ 1. 先确认 `openclaw --version` 不低于 2026.6.1。
58
+ 2. 我信任 npm 来源 `openclaw-weixin`。执行
59
+ `openclaw plugins install npm:openclaw-weixin --force`,不要先卸载。
60
+ 3. 仅在 `openclaw plugins list` 显示已停用时启用插件。不要主动重启 Gateway 或发起
61
+ 扫码登录;安装可能使启用了配置重载的受管 Gateway 自动重启。若已自动重启,执行
62
+ `openclaw channels status --probe`;否则询问是否重启 Gateway。
63
+ 4. 只报告结果;若未登录过微信,提示我手动运行
64
+ `openclaw channels login --channel openclaw-weixin` 扫码绑定微信。
63
65
  ```
64
66
 
65
- 然后按上面的**重载并检查**操作。
67
+ ### 通过 Agent 命令安装
66
68
 
67
- ### Shell Agent 提示词
68
-
69
- 将下面的提示词直接发送给有 Shell 权限的 Agent,用于安全安装或原位替换插件。
70
- 安装期间,启用了配置重载的受管 Gateway 可能自动重启;否则由你按 Agent 的提示重载,
71
- 扫码仍由你完成:
69
+ OpenClaw `>=2026.7.2-beta.1` 时,如果已设置 `commands.plugins: true`,并且你是
70
+ owner/admin,直接发送:
72
71
 
73
72
  ```text
74
- 请在不改变现有配置和登录状态的前提下,安装或原位替换 `openclaw-weixin`。先确认
75
- `openclaw --version` 不低于 2026.7.1。我信任 npm 来源 `openclaw-weixin`。执行
76
- `openclaw plugins install npm:openclaw-weixin --force`;不要先卸载,也不要查看
77
- 或复制工作区、凭据及账号状态文件。仅在 `openclaw plugins list` 显示已停用时
78
- 启用插件。不要主动重启 Gateway 或发起扫码登录;安装可能使启用了配置重载的受管
79
- Gateway 自动重启。若已自动重启,执行 `openclaw channels status --probe`;否则只
80
- 告诉我需重载的实际 Gateway、服务、容器或 Pod,待我确认重载后再探测。只报告脱敏
81
- 结果;若未登录,提示我手动扫码。
73
+ /plugins install npm:openclaw-weixin --force
82
74
  ```
83
75
 
76
+ 然后按上面的**重载检查**操作。
77
+
84
78
  ## 多账号
85
79
 
86
80
  再次执行登录命令即可绑定其他微信账号:
@@ -100,3 +94,5 @@ openclaw config set session.dmScope per-account-channel-peer
100
94
  - [详细指南](docs/guide.zh_CN.md):安装行为、BotAgent、卸载和故障排查
101
95
  - [后端 API 协议](docs/backend-api.zh_CN.md)
102
96
  - [架构说明](docs/architecture.md)
97
+ - [文档站点](https://openclaw-weixin.newfuture.cc/):多语言在线文档,同时提供
98
+ Markdown 原文与 [llms.txt](https://openclaw-weixin.newfuture.cc/llms.txt) 索引
package/README_EN.md CHANGED
@@ -1,25 +1,27 @@
1
1
  # openclaw-weixin
2
2
 
3
- [简体中文](./README.md)
3
+ [简体中文](./README.md) · [Documentation site](https://openclaw-weixin.newfuture.cc/en/)
4
4
 
5
5
  Community-maintained distribution of
6
6
  [Tencent/openclaw-weixin](https://github.com/Tencent/openclaw-weixin) that
7
7
  connects OpenClaw with WeChat for a better messaging experience.
8
- Requires [OpenClaw](https://docs.openclaw.ai/install) `>=2026.7.1`.
9
8
 
10
9
  ## Install or Replace
11
10
 
11
+ Requires [OpenClaw](https://docs.openclaw.ai/install) `>=2026.6.1`. Run commands
12
+ as the same user and in the same environment as OpenClaw.
12
13
 
13
- ### CLI — one-command install or replacement
14
+ **CLI—one-command install or replacement:**
14
15
 
15
- > Run in the same user and environment as OpenClaw. Do not uninstall `@tencent-weixin/openclaw-weixin`.
16
+ > Tip: **Do not** uninstall `@tencent-weixin/openclaw-weixin` first; replacing it
17
+ > in place usually preserves the existing configuration and login state.
16
18
 
17
19
  ```bash
18
20
  openclaw plugins install npm:openclaw-weixin --force
19
21
  ```
20
22
 
21
23
  <details>
22
- <summary>Bind a WeChat account</summary>
24
+ <summary>Bind a WeChat account (new installations)</summary>
23
25
 
24
26
  To bind a WeChat account to this OpenClaw instance, enable the plugin and start
25
27
  the QR flow:
@@ -34,7 +36,7 @@ The login command displays a QR code in the terminal.
34
36
  </details>
35
37
 
36
38
  <details>
37
- <summary>Reload and check</summary>
39
+ <summary>Reload check</summary>
38
40
 
39
41
  Ensure the running Gateway has reloaded the plugin. If needed, restart the
40
42
  service, container, or pod that runs OpenClaw, then run:
@@ -49,38 +51,36 @@ the probe. If the probe reports no login, use the login command above.
49
51
 
50
52
  </details>
51
53
 
52
- ### Install Through an Agent via messages
54
+ ### Automatic Installation Prompt
53
55
 
54
- On OpenClaw `>=2026.7.2-beta.1`, if `commands.plugins: true` is set and you are
55
- an owner/admin, send this command to the chat:
56
+ Send the following prompt directly to an OpenClaw Agent to safely install or
57
+ replace the plugin in place:
56
58
 
57
59
  ```text
58
- /plugins install npm:openclaw-weixin --force
60
+ Install or replace `openclaw-weixin` without changing the existing configuration
61
+ or login state:
62
+ 1. Verify that `openclaw --version` is at least 2026.6.1.
63
+ 2. I trust the npm source `openclaw-weixin`. Run
64
+ `openclaw plugins install npm:openclaw-weixin --force`; do not uninstall first.
65
+ 3. Enable the plugin only if `openclaw plugins list` shows it disabled. Do not
66
+ restart the Gateway yourself or start QR login. Installation may automatically
67
+ restart a managed Gateway with config reload enabled. If it does, run
68
+ `openclaw channels status --probe`; otherwise, ask whether to restart the Gateway.
69
+ 4. Report only the result. If WeChat is not logged in, ask me to manually run
70
+ `openclaw channels login --channel openclaw-weixin` and scan the QR code.
59
71
  ```
60
72
 
61
- Then follow **Reload and check** above.
62
-
63
- ### Shell Agent Prompt
73
+ ### Install Through an Agent Command
64
74
 
65
- Copy and send this prompt directly to an agent with Shell access. It safely
66
- installs or replaces the plugin in place. During installation, a managed Gateway
67
- with config reload enabled may restart automatically; otherwise, reload it when
68
- the agent asks. You still handle any QR scan:
75
+ On OpenClaw `>=2026.7.2-beta.1`, if `commands.plugins: true` is set and you are
76
+ an owner/admin, send:
69
77
 
70
78
  ```text
71
- Install or replace `openclaw-weixin` in place without changing its existing
72
- configuration or login state. Verify `openclaw --version` is at least 2026.7.1.
73
- I trust the npm source `openclaw-weixin`. Run
74
- `openclaw plugins install npm:openclaw-weixin --force`; do not uninstall first
75
- or inspect or copy workspace, credential, or account-state files. Enable the
76
- plugin only if `openclaw plugins list` shows it disabled. Do not restart the
77
- Gateway yourself or start QR login. Installation may automatically restart a
78
- managed Gateway with config reload enabled. If it does, run
79
- `openclaw channels status --probe`; otherwise, tell me which Gateway, service,
80
- container, or pod to reload and wait for my confirmation before probing. Report
81
- only redacted results. If not logged in, ask me to scan manually.
79
+ /plugins install npm:openclaw-weixin --force
82
80
  ```
83
81
 
82
+ Then follow **Reload check** above.
83
+
84
84
  ## Multiple Accounts
85
85
 
86
86
  Run the login command again to bind another WeChat account:
@@ -101,3 +101,6 @@ openclaw config set session.dmScope per-account-channel-peer
101
101
  troubleshooting
102
102
  - [Backend API protocol](docs/backend-api.md)
103
103
  - [Architecture](docs/architecture.md)
104
+ - [Documentation site](https://openclaw-weixin.newfuture.cc/en/): multilingual
105
+ documentation that also serves the raw Markdown and an
106
+ [llms.txt](https://openclaw-weixin.newfuture.cc/llms.txt) index
@@ -6,7 +6,7 @@
6
6
  * the supported range for this plugin version.
7
7
  */
8
8
  import { logger } from "./util/logger.js";
9
- export const SUPPORTED_HOST_MIN = "2026.7.1";
9
+ export const SUPPORTED_HOST_MIN = "2026.6.1";
10
10
  /**
11
11
  * Parse an OpenClaw date version string (e.g. "2026.3.22") into components.
12
12
  * Returns null for unparseable strings.
@@ -10,6 +10,7 @@ const WEIXIN_MEDIA_MAX_BYTES = 100 * 1024 * 1024;
10
10
  */
11
11
  export async function downloadMediaFromItem(item, deps) {
12
12
  const { cdnBaseUrl, saveMedia, errLog, label } = deps;
13
+ const subdir = deps.subdir ?? "inbound";
13
14
  const result = {};
14
15
  if (item.type === MessageItemType.IMAGE) {
15
16
  const img = item.image_item;
@@ -21,7 +22,7 @@ export async function downloadMediaFromItem(item, deps) {
21
22
  const buf = aesKeyBase64
22
23
  ? await downloadAndDecryptBuffer(img.media.encrypt_query_param ?? "", aesKeyBase64, cdnBaseUrl, `${label} image`, img.media.full_url)
23
24
  : await downloadPlainCdnBuffer(img.media.encrypt_query_param ?? "", cdnBaseUrl, `${label} image-plain`, img.media.full_url);
24
- const saved = await saveMedia(buf, undefined, "inbound", WEIXIN_MEDIA_MAX_BYTES);
25
+ const saved = await saveMedia(buf, undefined, subdir, WEIXIN_MEDIA_MAX_BYTES);
25
26
  result.decryptedPicPath = saved.path;
26
27
  logger.debug(`${label} image saved: ${saved.path}`);
27
28
  }
@@ -39,13 +40,13 @@ export async function downloadMediaFromItem(item, deps) {
39
40
  logger.debug(`${label} voice: decrypted ${silkBuf.length} bytes, attempting silk transcode`);
40
41
  const wavBuf = await silkToWav(silkBuf);
41
42
  if (wavBuf) {
42
- const saved = await saveMedia(wavBuf, "audio/wav", "inbound", WEIXIN_MEDIA_MAX_BYTES);
43
+ const saved = await saveMedia(wavBuf, "audio/wav", subdir, WEIXIN_MEDIA_MAX_BYTES);
43
44
  result.decryptedVoicePath = saved.path;
44
45
  result.voiceMediaType = "audio/wav";
45
46
  logger.debug(`${label} voice: saved WAV to ${saved.path}`);
46
47
  }
47
48
  else {
48
- const saved = await saveMedia(silkBuf, "audio/silk", "inbound", WEIXIN_MEDIA_MAX_BYTES);
49
+ const saved = await saveMedia(silkBuf, "audio/silk", subdir, WEIXIN_MEDIA_MAX_BYTES);
49
50
  result.decryptedVoicePath = saved.path;
50
51
  result.voiceMediaType = "audio/silk";
51
52
  logger.debug(`${label} voice: silk transcode unavailable, saved raw SILK to ${saved.path}`);
@@ -63,7 +64,7 @@ export async function downloadMediaFromItem(item, deps) {
63
64
  try {
64
65
  const buf = await downloadAndDecryptBuffer(fileItem.media.encrypt_query_param ?? "", fileItem.media.aes_key, cdnBaseUrl, `${label} file`, fileItem.media.full_url);
65
66
  const mime = getMimeFromFilename(fileItem.file_name ?? "file.bin");
66
- const saved = await saveMedia(buf, mime, "inbound", WEIXIN_MEDIA_MAX_BYTES, fileItem.file_name ?? undefined);
67
+ const saved = await saveMedia(buf, mime, subdir, WEIXIN_MEDIA_MAX_BYTES, fileItem.file_name ?? undefined);
67
68
  result.decryptedFilePath = saved.path;
68
69
  result.fileMediaType = mime;
69
70
  logger.debug(`${label} file: saved to ${saved.path} mime=${mime}`);
@@ -79,7 +80,7 @@ export async function downloadMediaFromItem(item, deps) {
79
80
  return result;
80
81
  try {
81
82
  const buf = await downloadAndDecryptBuffer(videoItem.media.encrypt_query_param ?? "", videoItem.media.aes_key, cdnBaseUrl, `${label} video`, videoItem.media.full_url);
82
- const saved = await saveMedia(buf, "video/mp4", "inbound", WEIXIN_MEDIA_MAX_BYTES);
83
+ const saved = await saveMedia(buf, "video/mp4", subdir, WEIXIN_MEDIA_MAX_BYTES);
83
84
  result.decryptedVideoPath = saved.path;
84
85
  logger.debug(`${label} video: saved to ${saved.path}`);
85
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"media-download.js","sourceRoot":"","sources":["../../../src/media/media-download.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media-download.js","sourceRoot":"","sources":["../../../src/media/media-download.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ import { createHash } from "node:crypto";
2
+ import path from "node:path";
3
+ import { createClaimableDedupe } from "openclaw/plugin-sdk/persistent-dedupe";
4
+ import { MessageItemType } from "../api/types.js";
5
+ import { resolveStateDir } from "../storage/state-dir.js";
6
+ import { logger } from "../util/logger.js";
7
+ /**
8
+ * Replay-dedupe tombstone TTL for getUpdates at-least-once delivery.
9
+ * Covers ~1s iLink replays and longer redeliveries (e.g. 30–50 min after a
10
+ * stuck long turn). Not a content-dedupe window: a new user send with a new
11
+ * `message_id` is always claimed.
12
+ *
13
+ * Uses OpenClaw `createClaimableDedupe` with the resolveFilePath shape that
14
+ * works on the minimum host (2026.6.1 JSON files) and newer hosts (path used
15
+ * as a stable SQLite namespace). Account isolation is via claim `namespace`
16
+ * (= accountId) and per-account files under
17
+ * `$OPENCLAW_STATE_DIR/openclaw-weixin/replay-dedupe/`.
18
+ */
19
+ export const WEIXIN_INBOUND_DEDUPE_TTL_MS = 24 * 60 * 60 * 1000;
20
+ const WEIXIN_INBOUND_DEDUPE_MEMORY_MAX = 20_000;
21
+ const WEIXIN_INBOUND_DEDUPE_FILE_MAX = 20_000;
22
+ function sanitizeSegment(value) {
23
+ const trimmed = value.trim();
24
+ if (!trimmed)
25
+ return "global";
26
+ return trimmed.replace(/[^a-zA-Z0-9_-]/g, "_");
27
+ }
28
+ function resolveReplayDedupeFilePath(namespace) {
29
+ return path.join(resolveStateDir(), "openclaw-weixin", "replay-dedupe", `${sanitizeSegment(namespace)}.json`);
30
+ }
31
+ function onReplayDedupeDiskError(error) {
32
+ logger.warn(`[weixin] inbound replay-dedupe disk error: ${error instanceof Error ? error.message : String(error)}`);
33
+ }
34
+ function createWeixinInboundDedupe(options) {
35
+ const base = {
36
+ ttlMs: WEIXIN_INBOUND_DEDUPE_TTL_MS,
37
+ memoryMaxSize: WEIXIN_INBOUND_DEDUPE_MEMORY_MAX,
38
+ };
39
+ if (options?.persistent === false) {
40
+ return createClaimableDedupe(base);
41
+ }
42
+ return createClaimableDedupe({
43
+ ...base,
44
+ fileMaxEntries: WEIXIN_INBOUND_DEDUPE_FILE_MAX,
45
+ resolveFilePath: resolveReplayDedupeFilePath,
46
+ onDiskError: onReplayDedupeDiskError,
47
+ });
48
+ }
49
+ let inboundDedupe = createWeixinInboundDedupe();
50
+ function extractTextForFallback(itemList) {
51
+ if (!itemList?.length)
52
+ return "";
53
+ for (const item of itemList) {
54
+ if (!item)
55
+ continue;
56
+ if (item.type === MessageItemType.TEXT && item.text_item?.text != null) {
57
+ return String(item.text_item.text);
58
+ }
59
+ if (item.type === MessageItemType.VOICE && item.voice_item?.text) {
60
+ return String(item.voice_item.text);
61
+ }
62
+ }
63
+ return "";
64
+ }
65
+ /** Canonical sorted item msg_id list for collision-safe media identity. */
66
+ export function collectWeixinItemMsgIds(itemList) {
67
+ if (!itemList?.length)
68
+ return [];
69
+ const ids = [];
70
+ for (const item of itemList) {
71
+ const id = item?.msg_id?.trim();
72
+ if (id)
73
+ ids.push(id);
74
+ }
75
+ return ids.sort();
76
+ }
77
+ /**
78
+ * Stable inbound identity for dedupe + MessageSid.
79
+ * Prefer transport ids from iLink; then item msg_id digests; then text body.
80
+ * Returns null when no message-specific identity exists (never key by sender alone).
81
+ */
82
+ export function buildWeixinInboundDedupeKey(accountId, msg) {
83
+ const from = msg.from_user_id ?? "";
84
+ if (!accountId)
85
+ return null;
86
+ if (msg.message_id != null && Number.isFinite(msg.message_id)) {
87
+ return `weixin:v1:${accountId}:${from}:mid:${msg.message_id}`;
88
+ }
89
+ if (msg.client_id) {
90
+ return `weixin:v1:${accountId}:${from}:cid:${msg.client_id}`;
91
+ }
92
+ if (msg.seq != null && Number.isFinite(msg.seq)) {
93
+ return `weixin:v1:${accountId}:${from}:seq:${msg.seq}`;
94
+ }
95
+ const itemIds = collectWeixinItemMsgIds(msg.item_list);
96
+ if (itemIds.length > 0) {
97
+ const digest = createHash("sha256").update(itemIds.join("\0")).digest("hex").slice(0, 16);
98
+ return `weixin:v1:${accountId}:${from}:items:${digest}`;
99
+ }
100
+ const body = extractTextForFallback(msg.item_list);
101
+ if (!body) {
102
+ // Empty-body media without transport/item ids must not share a sender-only key.
103
+ return null;
104
+ }
105
+ const t = msg.create_time_ms ?? 0;
106
+ const digest = createHash("sha256").update(body).update("\0").update(String(t)).digest("hex").slice(0, 16);
107
+ return `weixin:v1:${accountId}:${from}:body:${digest}`;
108
+ }
109
+ /** Non-sensitive identity kind for logs (no account / user / client ids). */
110
+ export function describeWeixinInboundDedupeIdentity(key) {
111
+ if (key.includes(":mid:"))
112
+ return "mid";
113
+ if (key.includes(":cid:"))
114
+ return "cid";
115
+ if (key.includes(":seq:"))
116
+ return "seq";
117
+ if (key.includes(":items:"))
118
+ return "items";
119
+ if (key.includes(":body:"))
120
+ return "body";
121
+ return "unknown";
122
+ }
123
+ /**
124
+ * Non-blocking claim attempt for admission lanes.
125
+ * Callers must not await `inflight.pending` while holding a lane slot.
126
+ */
127
+ export async function tryClaimWeixinInboundMessage(key, options) {
128
+ const result = await inboundDedupe.claim(key, {
129
+ namespace: options?.namespace,
130
+ now: options?.now,
131
+ });
132
+ if (result.kind === "claimed")
133
+ return { kind: "claimed" };
134
+ if (result.kind === "duplicate")
135
+ return { kind: "duplicate" };
136
+ return { kind: "inflight", pending: result.pending };
137
+ }
138
+ /** Observe an in-flight owner without holding an admission lane. */
139
+ export async function waitForInflightWeixinInboundOwner(pending) {
140
+ try {
141
+ await pending;
142
+ return "duplicate";
143
+ }
144
+ catch {
145
+ return "released";
146
+ }
147
+ }
148
+ /** Persist the claim after successful handling (survives restart for TTL). */
149
+ export async function commitWeixinInboundMessage(key, options) {
150
+ await inboundDedupe.commit(key, {
151
+ namespace: options?.namespace,
152
+ now: options?.now,
153
+ });
154
+ }
155
+ /** Release a held claim so a later delivery can retry after a thrown failure. */
156
+ export function releaseWeixinInboundMessage(key, options) {
157
+ inboundDedupe.release(key, {
158
+ namespace: options?.namespace,
159
+ error: options?.error,
160
+ });
161
+ }
162
+ /** Test helper — switch to memory-only guard and clear. */
163
+ export function resetWeixinInboundDedupeForTests(options) {
164
+ inboundDedupe.clearMemory();
165
+ inboundDedupe = createWeixinInboundDedupe({
166
+ persistent: options?.persistent ?? false,
167
+ });
168
+ }
169
+ export function logWeixinInboundDuplicate(params) {
170
+ const identity = describeWeixinInboundDedupeIdentity(params.key);
171
+ logger.info(`[weixin] dropping duplicate inbound message identity=${identity} hasMsgId=${params.messageId != null} hasSeq=${params.seq != null}`);
172
+ }
173
+ //# sourceMappingURL=inbound-dedupe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbound-dedupe.js","sourceRoot":"","sources":["../../../src/messaging/inbound-dedupe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAG9E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAChE,MAAM,gCAAgC,GAAG,MAAM,CAAC;AAChD,MAAM,8BAA8B,GAAG,MAAM,CAAC;AAE9C,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,2BAA2B,CAAC,SAAiB;IACpD,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAChH,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc;IAC7C,MAAM,CAAC,IAAI,CAAC,8CAA8C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACtH,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAkC;IACnE,MAAM,IAAI,GAAG;QACX,KAAK,EAAE,4BAA4B;QACnC,aAAa,EAAE,gCAAgC;KAChD,CAAC;IACF,IAAI,OAAO,EAAE,UAAU,KAAK,KAAK,EAAE,CAAC;QAClC,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,qBAAqB,CAAC;QAC3B,GAAG,IAAI;QACP,cAAc,EAAE,8BAA8B;QAC9C,eAAe,EAAE,2BAA2B;QAC5C,WAAW,EAAE,uBAAuB;KACrC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,aAAa,GAAG,yBAAyB,EAAE,CAAC;AAEhD,SAAS,sBAAsB,CAAC,QAAwB;IACtD,IAAI,CAAC,QAAQ,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;YACvE,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;YACjE,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,uBAAuB,CAAC,QAAwB;IAC9D,IAAI,CAAC,QAAQ,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAChC,IAAI,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,SAAiB,EAAE,GAAkB;IAC/E,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9D,OAAO,aAAa,SAAS,IAAI,IAAI,QAAQ,GAAG,CAAC,UAAU,EAAE,CAAC;IAChE,CAAC;IACD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAClB,OAAO,aAAa,SAAS,IAAI,IAAI,QAAQ,GAAG,CAAC,SAAS,EAAE,CAAC;IAC/D,CAAC;IACD,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,aAAa,SAAS,IAAI,IAAI,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,OAAO,GAAG,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1F,OAAO,aAAa,SAAS,IAAI,IAAI,UAAU,MAAM,EAAE,CAAC;IAC1D,CAAC;IAED,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,gFAAgF;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,GAAG,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3G,OAAO,aAAa,SAAS,IAAI,IAAI,SAAS,MAAM,EAAE,CAAC;AACzD,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,mCAAmC,CAAC,GAAW;IAC7D,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,OAAO,CAAC;IAC5C,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1C,OAAO,SAAS,CAAC;AACnB,CAAC;AAaD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,GAAW,EACX,OAAoC;IAEpC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE;QAC5C,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,GAAG,EAAE,OAAO,EAAE,GAAG;KAClB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC1D,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC9D,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AACvD,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,iCAAiC,CAAC,OAAyB;IAC/E,IAAI,CAAC;QACH,MAAM,OAAO,CAAC;QACd,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,UAAU,CAAC;IACpB,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,GAAW,EAAE,OAAoC;IAChG,MAAM,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE;QAC9B,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,GAAG,EAAE,OAAO,EAAE,GAAG;KAClB,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,2BAA2B,CACzC,GAAW,EACX,OAA0D;IAE1D,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE;QACzB,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,KAAK,EAAE,OAAO,EAAE,KAAK;KACtB,CAAC,CAAC;AACL,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,gCAAgC,CAAC,OAAkC;IACjF,aAAa,CAAC,WAAW,EAAE,CAAC;IAC5B,aAAa,GAAG,yBAAyB,CAAC;QACxC,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,KAAK;KACzC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAyD;IACjG,MAAM,QAAQ,GAAG,mCAAmC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,MAAM,CAAC,IAAI,CACT,wDAAwD,QAAQ,aAAa,MAAM,CAAC,SAAS,IAAI,IAAI,WAAW,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CACrI,CAAC;AACJ,CAAC"}
@@ -4,6 +4,7 @@ import { MessageItemType } from "../api/types.js";
4
4
  import { resolveStateDir } from "../storage/state-dir.js";
5
5
  import { logger } from "../util/logger.js";
6
6
  import { generateId } from "../util/random.js";
7
+ import { buildWeixinInboundDedupeKey } from "./inbound-dedupe.js";
7
8
  // ---------------------------------------------------------------------------
8
9
  // Context token store (in-process cache + disk persistence)
9
10
  // ---------------------------------------------------------------------------
@@ -163,6 +164,7 @@ function bodyFromItemList(itemList) {
163
164
  */
164
165
  export function weixinMessageToMsgContext(msg, accountId, opts) {
165
166
  const from_user_id = msg.from_user_id ?? "";
167
+ const stableSid = buildWeixinInboundDedupeKey(accountId, msg);
166
168
  const ctx = {
167
169
  Body: bodyFromItemList(msg.item_list),
168
170
  From: from_user_id,
@@ -170,7 +172,7 @@ export function weixinMessageToMsgContext(msg, accountId, opts) {
170
172
  AccountId: accountId,
171
173
  OriginatingChannel: "openclaw-weixin",
172
174
  OriginatingTo: from_user_id,
173
- MessageSid: generateMessageSid(),
175
+ MessageSid: stableSid ?? generateMessageSid(),
174
176
  SenderId: from_user_id,
175
177
  Timestamp: msg.create_time_ms,
176
178
  Provider: "openclaw-weixin",
@@ -1 +1 @@
1
- {"version":3,"file":"inbound.js","sourceRoot":"","sources":["../../../src/messaging/inbound.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbound.js","sourceRoot":"","sources":["../../../src/messaging/inbound.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import path from "node:path";
3
3
  import { createTypingCallbacks } from "openclaw/plugin-sdk/channel-runtime";
4
4
  import { resolveDirectDmAuthorizationOutcome, resolveSenderCommandAuthorizationWithRuntime, } from "openclaw/plugin-sdk/command-auth";
5
5
  import { resolvePreferredOpenClawTmpDir } from "openclaw/plugin-sdk/infra-runtime";
6
+ import { normalizeAgentId } from "openclaw/plugin-sdk/routing";
6
7
  import { sendTyping } from "../api/api.js";
7
8
  import { MessageItemType, TypingStatus } from "../api/types.js";
8
9
  import { loadWeixinAccount } from "../auth/accounts.js";
@@ -34,7 +35,12 @@ function extractTextBody(itemList) {
34
35
  return "";
35
36
  }
36
37
  /**
37
- * Process a single inbound message: route → download media → dispatch reply.
38
+ * Process a single inbound message: resolve route → download media → authorize → dispatch reply.
39
+ * Route is resolved first so the agentId can isolate media under
40
+ * `weixin/<agentId>/inbound` in the framework media store, preventing one agent
41
+ * from observing another agent's inbound files. Authorization still gates
42
+ * dispatch — `route` is reused for session/ctx bookkeeping but is not consulted
43
+ * for accept/reject decisions.
38
44
  * Extracted from the monitor loop to keep monitoring and message handling separate.
39
45
  */
40
46
  export async function processOneMessage(full, deps) {
@@ -67,6 +73,37 @@ export async function processOneMessage(full, deps) {
67
73
  const itemTypes = full.item_list?.map((i) => i.type).join(",") ?? "none";
68
74
  debugTrace.push("── 收消息 ──", `│ seq=${full.seq ?? "?"} msgId=${full.message_id ?? "?"} from=${full.from_user_id ?? "?"}`, `│ body="${textBody.slice(0, 40)}${textBody.length > 40 ? "…" : ""}" (len=${textBody.length}) itemTypes=[${itemTypes}]`, `│ sessionId=${full.session_id ?? "?"} contextToken=${full.context_token ? "present" : "none"}`);
69
75
  }
76
+ // Resolve the agent route early so downloadMedia can place the file under a
77
+ // per-agent subdirectory in the framework media store. Authorization still
78
+ // gates dispatch below; the early route resolution only drives storage scoping.
79
+ const senderId = full.from_user_id ?? "";
80
+ const route = deps.channelRuntime.routing.resolveAgentRoute({
81
+ cfg: deps.config,
82
+ channel: "openclaw-weixin",
83
+ accountId: deps.accountId,
84
+ peer: { kind: "direct", id: senderId },
85
+ });
86
+ logger.debug(`resolveAgentRoute: agentId=${route.agentId ?? "(none)"} sessionKey=${route.sessionKey ?? "(none)"} mainSessionKey=${route.mainSessionKey ?? "(none)"}`);
87
+ if (!route.agentId) {
88
+ logger.error(`resolveAgentRoute: no agentId resolved for peer=${senderId} accountId=${deps.accountId} — message will not be dispatched`);
89
+ }
90
+ // Sanitize the agentId into a portable, filesystem-safe path component before
91
+ // embedding it under the media store. OpenClaw's media store rejects path
92
+ // traversal, absolute paths, empty segments, and null bytes (per the
93
+ // saveMediaBuffer contract). We deliberately use `normalizeAgentId` (from
94
+ // `openclaw/plugin-sdk/routing`) rather than `normalizeAccountId`: the latter
95
+ // is intended for account keys and collapses JS-reserved names like
96
+ // `constructor` / `prototype` / `__proto__` to `default`, which would
97
+ // collide distinct agents into the same directory and defeat this isolation.
98
+ // `normalizeAgentId` only collapses unsafe characters and keeps reserved
99
+ // names literal; it falls back to `main` for empty input, but we already
100
+ // gate that case above and emit the legacy `inbound` subdir instead.
101
+ const sanitizedAgentId = route.agentId ? normalizeAgentId(route.agentId) : "";
102
+ const mediaSubdir = sanitizedAgentId ? `weixin/${sanitizedAgentId}/inbound` : "inbound";
103
+ logger.debug(`mediaSubdir: subdir=${mediaSubdir} (agentId=${route.agentId ?? "(none)"})`);
104
+ if (debug) {
105
+ debugTrace.push("── 路由 ──", `│ route: agent=${route.agentId ?? "none"} session=${route.sessionKey ?? "none"}`);
106
+ }
70
107
  const mediaOpts = {};
71
108
  // Find the first downloadable media item (priority: IMAGE > VIDEO > FILE > VOICE).
72
109
  // When none found in the main item_list, fall back to media referenced via a quoted message.
@@ -88,6 +125,7 @@ export async function processOneMessage(full, deps) {
88
125
  const downloaded = await downloadMediaFromItem(mediaItem, {
89
126
  cdnBaseUrl: deps.cdnBaseUrl,
90
127
  saveMedia: deps.channelRuntime.media.saveMediaBuffer,
128
+ subdir: mediaSubdir,
91
129
  log: deps.log,
92
130
  errLog: deps.errLog,
93
131
  label,
@@ -102,7 +140,6 @@ export async function processOneMessage(full, deps) {
102
140
  // --- Framework command authorization ---
103
141
  const rawBody = textBody.trim() || (ctx.Body?.trim() ?? "");
104
142
  ctx.CommandBody = rawBody;
105
- const senderId = full.from_user_id ?? "";
106
143
  const { senderAllowedForCommands, commandAuthorized } = await resolveSenderCommandAuthorizationWithRuntime({
107
144
  cfg: deps.config,
108
145
  rawBody,
@@ -134,22 +171,12 @@ export async function processOneMessage(full, deps) {
134
171
  ctx.CommandAuthorized = commandAuthorized;
135
172
  logger.debug(`authorization: senderId=${senderId} commandAuthorized=${String(commandAuthorized)} senderAllowed=${String(senderAllowedForCommands)}`);
136
173
  if (debug) {
137
- debugTrace.push("── 鉴权 & 路由 ──", `│ auth: cmdAuthorized=${String(commandAuthorized)} senderAllowed=${String(senderAllowedForCommands)}`);
138
- }
139
- const route = deps.channelRuntime.routing.resolveAgentRoute({
140
- cfg: deps.config,
141
- channel: "openclaw-weixin",
142
- accountId: deps.accountId,
143
- peer: { kind: "direct", id: ctx.To },
144
- });
145
- logger.debug(`resolveAgentRoute: agentId=${route.agentId ?? "(none)"} sessionKey=${route.sessionKey ?? "(none)"} mainSessionKey=${route.mainSessionKey ?? "(none)"}`);
146
- if (!route.agentId) {
147
- logger.error(`resolveAgentRoute: no agentId resolved for peer=${ctx.To} accountId=${deps.accountId} — message will not be dispatched`);
148
- }
149
- if (debug) {
150
- debugTrace.push(`│ route: agent=${route.agentId ?? "none"} session=${route.sessionKey ?? "none"}`);
174
+ debugTrace.push("── 鉴权 ──", `│ auth: cmdAuthorized=${String(commandAuthorized)} senderAllowed=${String(senderAllowedForCommands)}`);
151
175
  debugTs.preDispatch = Date.now();
152
176
  }
177
+ // Note: `route` was resolved earlier so downloadMedia could pick the
178
+ // per-agent subdirectory. Session/storePath/dispatch below reuse the same
179
+ // resolved object; no second routing call is needed.
153
180
  // Propagate the resolved session key into ctx so dispatchReplyFromConfig uses
154
181
  // the correct session (matching the dmScope from config) instead of falling back
155
182
  // to agent:main:main.
@@ -1 +1 @@
1
- {"version":3,"file":"process-message.js","sourceRoot":"","sources":["../../../src/messaging/process-message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-message.js","sourceRoot":"","sources":["../../../src/messaging/process-message.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { WeixinConfigManager } from "../api/config-cache.js";
3
3
  import { getRemainingPauseMs, pauseSession, STALE_TOKEN_ERRCODE } from "../api/session-guard.js";
4
4
  import { MessageItemType } from "../api/types.js";
5
5
  import { setContextToken } from "../messaging/inbound.js";
6
+ import { buildWeixinInboundDedupeKey, commitWeixinInboundMessage, logWeixinInboundDuplicate, releaseWeixinInboundMessage, tryClaimWeixinInboundMessage, waitForInflightWeixinInboundOwner, } from "../messaging/inbound-dedupe.js";
6
7
  import { processOneMessage } from "../messaging/process-message.js";
7
8
  import { getSyncBufFilePath, loadGetUpdatesBuf, saveGetUpdatesBuf } from "../storage/sync-buf.js";
8
9
  import { logger } from "../util/logger.js";
@@ -41,34 +42,82 @@ export async function monitorWeixinProvider(opts) {
41
42
  aLog.info(`No previous get_updates_buf found, starting fresh`);
42
43
  }
43
44
  const configManager = new WeixinConfigManager({ baseUrl, token }, log);
44
- const processInboundMessage = async (full, onReplyAdmitted) => {
45
- if (abortSignal?.aborted)
46
- return;
47
- aLog.info(`inbound message: from=${full.from_user_id} types=${full.item_list?.map((i) => i.type).join(",") ?? "none"}`);
48
- const now = Date.now();
49
- setStatus?.({ accountId, lastEventAt: now, lastInboundAt: now });
50
- // allowFrom filtering is delegated to processOneMessage via the framework
51
- // authorization pipeline (resolveSenderCommandAuthorizationWithRuntime).
52
- const fromUserId = full.from_user_id ?? "";
53
- const cachedConfig = await configManager.getForUser(fromUserId, full.context_token);
54
- if (abortSignal?.aborted)
55
- return;
56
- await processOneMessage(full, {
57
- accountId,
58
- config,
59
- channelRuntime,
60
- baseUrl,
61
- cdnBaseUrl,
62
- token,
63
- typingTicket: cachedConfig.typingTicket,
64
- log: opts.runtime?.log ?? (() => { }),
65
- errLog,
66
- onReplyAdmitted,
67
- });
45
+ /**
46
+ * Process one inbound delivery that already owns `dedupeKey` (or has none).
47
+ * Every step after admission is inside the claim guard so exceptions release.
48
+ */
49
+ const processInboundMessage = async (full, onReplyAdmitted, dedupeKey) => {
50
+ let committed = false;
51
+ try {
52
+ if (abortSignal?.aborted) {
53
+ throw new Error("aborted");
54
+ }
55
+ const itemTypes = full.item_list
56
+ ?.map((item) => item?.type)
57
+ .filter((type) => type !== undefined)
58
+ .join(",") ?? "none";
59
+ aLog.info(`inbound message: from=${full.from_user_id} types=${itemTypes}`);
60
+ const now = Date.now();
61
+ setStatus?.({ accountId, lastEventAt: now, lastInboundAt: now });
62
+ // allowFrom filtering is delegated to processOneMessage via the framework
63
+ // authorization pipeline (resolveSenderCommandAuthorizationWithRuntime).
64
+ const fromUserId = full.from_user_id ?? "";
65
+ const cachedConfig = await configManager.getForUser(fromUserId, full.context_token);
66
+ if (abortSignal?.aborted) {
67
+ throw new Error("aborted");
68
+ }
69
+ await processOneMessage(full, {
70
+ accountId,
71
+ config,
72
+ channelRuntime,
73
+ baseUrl,
74
+ cdnBaseUrl,
75
+ token,
76
+ typingTicket: cachedConfig.typingTicket,
77
+ log: opts.runtime?.log ?? (() => { }),
78
+ errLog,
79
+ onReplyAdmitted,
80
+ });
81
+ if (dedupeKey) {
82
+ await commitWeixinInboundMessage(dedupeKey, { namespace: accountId });
83
+ committed = true;
84
+ }
85
+ }
86
+ catch (error) {
87
+ if (dedupeKey && !committed) {
88
+ releaseWeixinInboundMessage(dedupeKey, { namespace: accountId, error });
89
+ }
90
+ if (abortSignal?.aborted) {
91
+ return;
92
+ }
93
+ throw error;
94
+ }
68
95
  };
69
96
  // Serialize preprocessing until core accepts the turn; approvals use an independent lane.
97
+ // Claim attempts are non-blocking for inflight: release the lane immediately and observe
98
+ // pending out of band, re-enqueueing only if the owner releases without commit.
70
99
  let ordinaryLane = Promise.resolve();
71
100
  let approvalLane = Promise.resolve();
101
+ const observeInflightReplay = (full, dedupeKey, pending) => {
102
+ void (async () => {
103
+ const outcome = await waitForInflightWeixinInboundOwner(pending);
104
+ if (outcome === "duplicate") {
105
+ logWeixinInboundDuplicate({
106
+ key: dedupeKey,
107
+ messageId: full.message_id,
108
+ seq: full.seq,
109
+ });
110
+ return;
111
+ }
112
+ if (abortSignal?.aborted)
113
+ return;
114
+ // Owner released — re-enter admission so the message is not lost.
115
+ scheduleInboundMessage(full);
116
+ })().catch((err) => {
117
+ errLog(`weixin inbound inflight observe failed: ${String(err)}`);
118
+ aLog.error(`Inbound inflight observe failed: ${String(err)}, stack=${err.stack ?? "none"}`);
119
+ });
120
+ };
72
121
  const scheduleInboundMessage = (full) => {
73
122
  const isApproval = isPluginApprovalMessage(full);
74
123
  const previous = isApproval ? approvalLane : ordinaryLane;
@@ -80,7 +129,26 @@ export async function monitorWeixinProvider(opts) {
80
129
  released = true;
81
130
  releaseLane();
82
131
  };
83
- void processInboundMessage(full, releaseOnce)
132
+ void (async () => {
133
+ const dedupeKey = buildWeixinInboundDedupeKey(accountId, full);
134
+ if (dedupeKey) {
135
+ const attempt = await tryClaimWeixinInboundMessage(dedupeKey, { namespace: accountId });
136
+ if (attempt.kind === "duplicate") {
137
+ logWeixinInboundDuplicate({
138
+ key: dedupeKey,
139
+ messageId: full.message_id,
140
+ seq: full.seq,
141
+ });
142
+ return;
143
+ }
144
+ if (attempt.kind === "inflight") {
145
+ // Do not hold this lane while waiting on the owner.
146
+ observeInflightReplay(full, dedupeKey, attempt.pending);
147
+ return;
148
+ }
149
+ }
150
+ await processInboundMessage(full, releaseOnce, dedupeKey);
151
+ })()
84
152
  .catch((err) => {
85
153
  errLog(`weixin inbound message failed: ${String(err)}`);
86
154
  aLog.error(`Inbound message failed: ${String(err)}, stack=${err.stack ?? "none"}`);
@@ -175,7 +243,7 @@ export async function monitorWeixinProvider(opts) {
175
243
  aLog.info(`Monitor ended`);
176
244
  }
177
245
  function isPluginApprovalMessage(message) {
178
- const text = message.item_list?.find((item) => item.type === MessageItemType.TEXT)?.text_item?.text;
246
+ const text = message.item_list?.find((item) => item?.type === MessageItemType.TEXT)?.text_item?.text;
179
247
  return PLUGIN_APPROVAL_RE.test(String(text ?? "").trim());
180
248
  }
181
249
  function sleep(ms, signal) {
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../src/monitor/monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../src/monitor/monitor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,eAAe,EAAsB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,iCAAiC,GAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAA6B,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAElG,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAC5C,MAAM,wBAAwB,GAAG,CAAC,CAAC;AACnC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,MAAM,cAAc,GAAG,KAAK,CAAC;AAC7B,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAsBnD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAuB;IACjE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAChH,IAAI,CAAC;IACP,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAW,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEnD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,kGAAkG,CAAC;QAC/G,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,2BAA2B,OAAO,aAAa,SAAS,GAAG,CAAC,CAAC;IACjE,IAAI,CAAC,IAAI,CAAC,4BAA4B,OAAO,cAAc,iBAAiB,IAAI,4BAA4B,EAAE,CAAC,CAAC;IAChH,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,iBAAiB,YAAY,EAAE,CAAC,CAAC;IAE5C,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC9D,IAAI,aAAa,GAAG,qBAAqB,IAAI,EAAE,CAAC;IAEhD,IAAI,qBAAqB,EAAE,CAAC;QAC1B,GAAG,CAAC,6CAA6C,aAAa,CAAC,MAAM,SAAS,CAAC,CAAC;QAChF,IAAI,CAAC,KAAK,CAAC,mCAAmC,aAAa,CAAC,MAAM,SAAS,CAAC,CAAC;IAC/E,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,+CAA+C,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,mBAAmB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;IAEvE;;;OAGG;IACH,MAAM,qBAAqB,GAAG,KAAK,EACjC,IAAmB,EACnB,eAA2B,EAC3B,SAAwB,EACT,EAAE;QACjB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC;YACH,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;YAED,MAAM,SAAS,GACb,IAAI,CAAC,SAAS;gBACZ,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;iBAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;iBACpC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAC,YAAY,UAAU,SAAS,EAAE,CAAC,CAAC;YAE3E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;YAEjE,0EAA0E;YAC1E,yEAAyE;YAEzE,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;YAC3C,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACpF,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;YAED,MAAM,iBAAiB,CAAC,IAAI,EAAE;gBAC5B,SAAS;gBACT,MAAM;gBACN,cAAc;gBACd,OAAO;gBACP,UAAU;gBACV,KAAK;gBACL,YAAY,EAAE,YAAY,CAAC,YAAY;gBACvC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;gBACpC,MAAM;gBACN,eAAe;aAChB,CAAC,CAAC;YACH,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,0BAA0B,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;gBACtE,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC5B,2BAA2B,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,0FAA0F;IAC1F,yFAAyF;IACzF,gFAAgF;IAChF,IAAI,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IACrC,IAAI,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAErC,MAAM,qBAAqB,GAAG,CAAC,IAAmB,EAAE,SAAiB,EAAE,OAAyB,EAAQ,EAAE;QACxG,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,OAAO,GAAG,MAAM,iCAAiC,CAAC,OAAO,CAAC,CAAC;YACjE,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;gBAC5B,yBAAyB,CAAC;oBACxB,GAAG,EAAE,SAAS;oBACd,SAAS,EAAE,IAAI,CAAC,UAAU;oBAC1B,GAAG,EAAE,IAAI,CAAC,GAAG;iBACd,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,IAAI,WAAW,EAAE,OAAO;gBAAE,OAAO;YACjC,kEAAkE;YAClE,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,MAAM,CAAC,2CAA2C,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,CAAC,oCAAoC,MAAM,CAAC,GAAG,CAAC,WAAY,GAAa,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;QACzG,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,CAAC,IAAmB,EAAQ,EAAE;QAC3D,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;QAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CACxB,GAAG,EAAE,CACH,IAAI,OAAO,CAAO,CAAC,WAAW,EAAE,EAAE;YAChC,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM,WAAW,GAAG,GAAG,EAAE;gBACvB,IAAI,QAAQ;oBAAE,OAAO;gBACrB,QAAQ,GAAG,IAAI,CAAC;gBAChB,WAAW,EAAE,CAAC;YAChB,CAAC,CAAC;YACF,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,MAAM,SAAS,GAAG,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAC/D,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,OAAO,GAAG,MAAM,4BAA4B,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;oBACxF,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;wBACjC,yBAAyB,CAAC;4BACxB,GAAG,EAAE,SAAS;4BACd,SAAS,EAAE,IAAI,CAAC,UAAU;4BAC1B,GAAG,EAAE,IAAI,CAAC,GAAG;yBACd,CAAC,CAAC;wBACH,OAAO;oBACT,CAAC;oBACD,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBAChC,oDAAoD;wBACpD,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;wBACxD,OAAO;oBACT,CAAC;gBACH,CAAC;gBACD,MAAM,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YAC5D,CAAC,CAAC,EAAE;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,MAAM,CAAC,kCAAkC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxD,IAAI,CAAC,KAAK,CAAC,2BAA2B,MAAM,CAAC,GAAG,CAAC,WAAY,GAAa,CAAC,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;YAChG,CAAC,CAAC;iBACD,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1B,CAAC,CAAC,CACL,CAAC;QACF,IAAI,UAAU,EAAE,CAAC;YACf,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,aAAa,GAAG,iBAAiB,IAAI,4BAA4B,CAAC;IACtE,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAE5B,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,+BAA+B,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,aAAa,EAAE,CAAC,CAAC;YAC3G,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC;gBAC5B,OAAO;gBACP,KAAK;gBACL,eAAe,EAAE,aAAa;gBAC9B,SAAS,EAAE,aAAa;gBACxB,oEAAoE;gBACpE,4DAA4D;gBAC5D,WAAW;aACZ,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CACR,4BAA4B,IAAI,CAAC,GAAG,UAAU,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,4BAA4B,IAAI,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC,EAAE,CACpI,CAAC;YAEF,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,IAAI,IAAI,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC;gBAC3E,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC;gBAC5C,IAAI,CAAC,KAAK,CAAC,8BAA8B,aAAa,IAAI,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM,UAAU,GACd,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC;YACnG,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,KAAK,mBAAmB,CAAC;gBAE9F,IAAI,YAAY,EAAE,CAAC;oBACjB,YAAY,CAAC,SAAS,CAAC,CAAC;oBACxB,MAAM,OAAO,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;oBAC/C,IAAI,CAAC,KAAK,CACR,yBAAyB,SAAS,uCAAuC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3G,CAAC;oBACF,mBAAmB,GAAG,CAAC,CAAC;oBACxB,MAAM,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;oBAClC,SAAS;gBACX,CAAC;gBAED,mBAAmB,IAAI,CAAC,CAAC;gBACzB,MAAM,CACJ,iCAAiC,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,OAAO,WAAW,IAAI,CAAC,MAAM,IAAI,EAAE,KAAK,mBAAmB,IAAI,wBAAwB,GAAG,CACrJ,CAAC;gBACF,IAAI,CAAC,KAAK,CACR,0BAA0B,IAAI,CAAC,GAAG,YAAY,IAAI,CAAC,OAAO,WAAW,IAAI,CAAC,MAAM,aAAa,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAChI,CAAC;gBACF,IAAI,mBAAmB,IAAI,wBAAwB,EAAE,CAAC;oBACpD,MAAM,CAAC,sBAAsB,wBAAwB,wCAAwC,CAAC,CAAC;oBAC/F,IAAI,CAAC,KAAK,CAAC,eAAe,wBAAwB,wCAAwC,CAAC,CAAC;oBAC5F,mBAAmB,GAAG,CAAC,CAAC;oBACxB,MAAM,KAAK,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;gBAC3C,CAAC;gBACD,SAAS;YACX,CAAC;YACD,mBAAmB,GAAG,CAAC,CAAC;YACxB,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACpD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,KAAK,EAAE,EAAE,CAAC;gBAChE,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gBACtD,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC;gBACrC,IAAI,CAAC,KAAK,CAAC,8BAA8B,aAAa,CAAC,MAAM,SAAS,CAAC,CAAC;YAC1E,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;gBACnC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC1E,CAAC;gBACD,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBACvC,OAAO;YACT,CAAC;YACD,mBAAmB,IAAI,CAAC,CAAC;YACzB,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,CACJ,4BAA4B,mBAAmB,IAAI,wBAAwB,MAAM,MAAM,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,IAAI,gBAAgB,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACjN,CAAC;YACF,IAAI,CAAC,KAAK,CACR,qBAAqB,MAAM,CAAC,GAAG,CAAC,UAAU,UAAU,CAAC,IAAI,SAAS,UAAU,CAAC,IAAI,IAAI,MAAM,WAAY,GAAa,CAAC,KAAK,EAAE,CAC7H,CAAC;YACF,IAAI,mBAAmB,IAAI,wBAAwB,EAAE,CAAC;gBACpD,MAAM,CAAC,sBAAsB,wBAAwB,wCAAwC,CAAC,CAAC;gBAC/F,IAAI,CAAC,KAAK,CAAC,eAAe,wBAAwB,wCAAwC,CAAC,CAAC;gBAC5F,mBAAmB,GAAG,CAAC,CAAC;gBACxB,MAAM,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAsB;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC;IACrG,OAAO,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,KAAK,CAAC,EAAU,EAAE,MAAoB;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClC,MAAM,EAAE,gBAAgB,CACtB,OAAO,EACP,GAAG,EAAE;YACH,YAAY,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/B,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -103,6 +103,7 @@ override applies.
103
103
  | `openclaw-weixin/accounts/<accountId>.json` | Token, backend URL, save time, and linked user ID |
104
104
  | `openclaw-weixin/accounts/<accountId>.sync.json` | `getUpdates` cursor |
105
105
  | `openclaw-weixin/accounts/<accountId>.context-tokens.json` | Recipient context tokens for that account |
106
+ | `openclaw-weixin/replay-dedupe/<accountId>.json` | Inbound getUpdates replay tombstones (24h; newer hosts may map the path to SQLite) |
106
107
  | `credentials/openclaw-weixin-<accountId>-allowFrom.json` | Framework pairing allow-list |
107
108
  | `openclaw.json` | Channel configuration and account overrides |
108
109
 
package/docs/guide.md CHANGED
@@ -82,7 +82,7 @@ openclaw plugins uninstall openclaw-weixin
82
82
 
83
83
  ## Troubleshooting
84
84
 
85
- ### "requires OpenClaw >=2026.7.1" error
85
+ ### "requires OpenClaw >=2026.6.1" error
86
86
 
87
87
  Your OpenClaw version is too old for this plugin version. Check with:
88
88
 
@@ -74,7 +74,7 @@ openclaw plugins uninstall openclaw-weixin
74
74
 
75
75
  ## 故障排查
76
76
 
77
- ### "requires OpenClaw >=2026.7.1" 报错
77
+ ### "requires OpenClaw >=2026.6.1" 报错
78
78
 
79
79
  你的 OpenClaw 版本太旧,不兼容当前插件版本。检查版本:
80
80
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "id": "openclaw-weixin",
3
- "version": "3.0.0",
3
+ "version": "3.0.2",
4
4
  "channels": ["openclaw-weixin"],
5
5
  "channelConfigs": {
6
6
  "openclaw-weixin": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-weixin",
3
- "version": "3.0.0",
3
+ "version": "3.0.2",
4
4
  "description": "Community-maintained OpenClaw WeChat channel plugin",
5
5
  "license": "MIT",
6
6
  "author": "Tencent",
@@ -33,7 +33,6 @@
33
33
  "README.zh_CN.md",
34
34
  "CHANGELOG.md",
35
35
  "CHANGELOG_EN.md",
36
- "CHANGELOG.zh_CN.md",
37
36
  "LICENSE",
38
37
  "NOTICE"
39
38
  ],
@@ -50,7 +49,7 @@
50
49
  "check:versions": "node scripts/check-versions.mjs",
51
50
  "check:static": "npm run check:versions && npm run check:style && npm run typecheck && npm run typecheck:tests",
52
51
  "check:fast": "npm run check:static && npm run test:unit",
53
- "audit:deps": "npm audit --audit-level=moderate",
52
+ "audit:deps": "npm audit --omit=dev --omit=peer --audit-level=moderate",
54
53
  "clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
55
54
  "build": "npm run clean && tsc",
56
55
  "check": "npm run check:static && npm run test:coverage && npm run build",
@@ -65,11 +64,11 @@
65
64
  "qrcode-terminal": "0.12.0"
66
65
  },
67
66
  "peerDependencies": {
68
- "openclaw": ">=2026.7.1"
67
+ "openclaw": ">=2026.6.1"
69
68
  },
70
69
  "devDependencies": {
71
- "@biomejs/biome": "2.5.4",
72
- "@types/node": "^22.20.1",
70
+ "@biomejs/biome": "2.5.6",
71
+ "@types/node": "^26.1.2",
73
72
  "@vitest/coverage-v8": "^4.1.10",
74
73
  "openclaw": "2026.7.1",
75
74
  "silk-wasm": "^3.7.1",
@@ -77,12 +76,12 @@
77
76
  "vitest": "^4.1.10"
78
77
  },
79
78
  "overrides": {
80
- "@hono/node-server": "2.0.10",
81
- "brace-expansion": "5.0.8",
82
- "fast-uri": "3.1.4",
83
- "hono": "4.12.27",
79
+ "@hono/node-server": "2.1.0",
80
+ "brace-expansion": "5.0.9",
81
+ "fast-uri": "3.1.5",
82
+ "hono": "4.13.0",
84
83
  "protobufjs": "7.6.5",
85
- "tar": "7.5.21"
84
+ "tar": "7.5.22"
86
85
  },
87
86
  "openclaw": {
88
87
  "extensions": [
@@ -103,7 +102,7 @@
103
102
  "install": {
104
103
  "npmSpec": "openclaw-weixin",
105
104
  "defaultChoice": "npm",
106
- "minHostVersion": ">=2026.7.1"
105
+ "minHostVersion": ">=2026.6.1"
107
106
  }
108
107
  },
109
108
  "ilink_appid": "bot",
@@ -1,3 +0,0 @@
1
- # openclaw-weixin
2
-
3
- 中文变更日志已移至 [CHANGELOG.md](./CHANGELOG.md)。