@jeik/dingtalk-connector 0.8.28 → 0.8.30
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 +40 -30
- package/README.en.md +114 -130
- package/README.md +112 -131
- package/dist/{background-work-Cxb4b-91.mjs → background-work-DkaSDqWk.mjs} +12 -1
- package/dist/card-content-cache-C7-XHhHw.mjs +2 -0
- package/dist/{card-content-cache-bDQFz2u8.mjs → card-content-cache-DT_OYThh.mjs} +15 -1
- package/dist/chunk-upload-BKM1y4Ba.mjs +2 -0
- package/dist/{chunk-upload-BE71drPg.mjs → chunk-upload-CIU5G_ay.mjs} +1 -1
- package/dist/{common-BZiVgd3A.mjs → common-BfIYs1yC.mjs} +3 -3
- package/dist/{common-DgL28gCZ.mjs → common-C0Oaf0z-.mjs} +1 -1
- package/dist/{connection-CZ7ZoN5_.mjs → connection-obtrPkj4.mjs} +56 -65
- package/dist/entry-bundled.mjs +1 -1
- package/dist/{gateway-methods-kNX3qvqw.mjs → gateway-methods-BdcpfxEZ.mjs} +1 -1
- package/dist/gateway-methods-DQ6TwOAr.mjs +2 -0
- package/dist/index.mjs +2 -2
- package/dist/{logger-mZ9OSbmD.mjs → logger-CnBTcwyq.mjs} +16 -2
- package/dist/logger-D8H2IcYz.mjs +2 -0
- package/dist/{media-BqpUGCni.mjs → media-DDtX37T2.mjs} +1 -1
- package/dist/{media-DnQB2BrL.mjs → media-g8tJtpfU.mjs} +29 -20
- package/dist/{message-handler-B1usz1wb.mjs → message-handler-BeTQQCUe.mjs} +33 -30
- package/dist/{messaging-DVS3UKOp.mjs → messaging-CK0Wz3Ze.mjs} +18 -20
- package/dist/{runtime-A6G7WAWn.mjs → runtime-CjE4Z9G5.mjs} +6 -5
- package/dist/{utils-Bjh4r_qS.mjs → utils-Bwz2Fls_.mjs} +1 -1
- package/docs/RELEASE_NOTES_V0.8.28.md +4 -4
- package/docs/RELEASE_NOTES_V0.8.29.md +72 -0
- package/openclaw.plugin.json +9 -5
- package/package.json +1 -1
- package/src/config/schema.ts +2 -1
- package/src/core/connection.ts +90 -113
- package/src/core/message-handler.ts +24 -16
- package/src/reply-dispatcher.ts +33 -20
- package/src/services/media.ts +60 -27
- package/src/services/messaging/card-content-cache.ts +11 -6
- package/src/services/messaging.ts +52 -38
- package/src/utils/background-work.ts +3 -1
- package/src/utils/logger.ts +23 -2
- package/dist/card-content-cache-c4Ls96eJ.mjs +0 -2
- package/dist/chunk-upload-PwhogwfE.mjs +0 -2
- package/dist/gateway-methods-BkI1gKaC.mjs +0 -2
- package/dist/logger-BmJkQkm1.mjs +0 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,53 +5,63 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [0.8.
|
|
9
|
-
|
|
10
|
-
### 主题
|
|
8
|
+
## [0.8.30] - 2026-07-28
|
|
11
9
|
|
|
12
|
-
|
|
10
|
+
### Fixes
|
|
13
11
|
|
|
14
|
-
|
|
12
|
+
- **incomplete_turn 误报不定格错误卡** — 上游 `final + isError` 文案为 `Agent couldn't generate a response`,但卡片已有真实答案(`lastAnswerText`/`accumulatedText` ≥20 字)时,忽略该误报,用已有答案 `closeStreaming`,不再覆盖正文/定格错误(避免网关误报后卡片停止流式)。
|
|
15
13
|
|
|
16
|
-
-
|
|
17
|
-
- 机器人忙着回上一条时,处理过程中也会保持连接活跃,长回复不容易被中途掐断
|
|
18
|
-
- 上游 SDK 刷屏日志过滤,控制台更干净,少误判成故障
|
|
19
|
-
- 空回复时的友好提示(尤其是群聊配置不当的情况)
|
|
14
|
+
## [0.8.29] - 2026-07-25
|
|
20
15
|
|
|
21
|
-
|
|
16
|
+
### 主题
|
|
22
17
|
|
|
23
|
-
|
|
18
|
+
正式版加固:默认日志更轻、排障只靠配置 `debug: true`;继承 0.8.28 连接/消息/错误卡能力。
|
|
24
19
|
|
|
25
|
-
|
|
26
|
-
- 只有钉钉确认「这条连接可以收机器人消息」之后,才对外显示已连接
|
|
27
|
-
- 连不上会自动多试几轮,而不是假装在线
|
|
28
|
-
- 正常使用时尽量不乱拆连接,减少「连发好几条消息完全没反应」
|
|
20
|
+
### 变更
|
|
29
21
|
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
- 单条任务卡住太久会自动放开队列,避免后面消息永远等不到
|
|
22
|
+
- 🧹 **默认静默诊断刷屏** — 无图文本回复不再输出 LocalImage / MediaIdTrace / CardCache / Quote 成功路径
|
|
23
|
+
- 🔍 **debug 配置统一开关** — 顶层或账号 `"debug": true` 打开连接摘要、图片 mediaId、引用回填、队列计数等详细日志;**不再依赖环境变量**
|
|
24
|
+
- 📚 **文档** — 安装命令精简为三条递进指导;README 中英同步至 0.8.29
|
|
34
25
|
|
|
35
|
-
|
|
36
|
-
- 上游欠费、无可用线路、503 等失败时,群聊/私聊都更容易定格成清晰中文错误卡片
|
|
37
|
-
- 减少卡在「正在召唤大模型…」或莫名「思考完成」却看不到原因的情况
|
|
38
|
-
- 错误结束后继续发消息,响应能力明显好于旧版
|
|
26
|
+
### 继承(0.8.28)
|
|
39
27
|
|
|
40
|
-
|
|
41
|
-
- 即时首响卡片、大段答案独立答案卡、图片/本地图修复、中文错误映射、强制群聊正常回复合流等
|
|
28
|
+
- 基于官方 0.8.24 的长连接更稳、消息少丢、模型错误中文定稿、本仓库独有答案卡/图片能力
|
|
42
29
|
|
|
43
30
|
### 安装
|
|
44
31
|
|
|
32
|
+
**npx(一键扫码,按顺序试):**
|
|
33
|
+
|
|
45
34
|
```bash
|
|
46
|
-
npx
|
|
47
|
-
openclaw gateway restart
|
|
35
|
+
npx @jeik/dingtalk-connector install --force && openclaw gateway restart
|
|
36
|
+
npx @jeik/dingtalk-connector@0.8.29 install --force && openclaw gateway restart
|
|
37
|
+
NPM_CONFIG_REGISTRY=https://registry.npmjs.org npx @jeik/dingtalk-connector@0.8.29 install --force && openclaw gateway restart
|
|
48
38
|
```
|
|
49
39
|
|
|
50
|
-
|
|
40
|
+
**openclaw plugins install(只装插件,按顺序试):**
|
|
51
41
|
|
|
52
42
|
```bash
|
|
53
|
-
openclaw plugins install @jeik/dingtalk-connector
|
|
54
|
-
openclaw gateway restart
|
|
43
|
+
openclaw plugins install @jeik/dingtalk-connector --force && openclaw gateway restart
|
|
44
|
+
openclaw plugins install @jeik/dingtalk-connector@0.8.29 --force && openclaw gateway restart
|
|
45
|
+
NPM_CONFIG_REGISTRY=https://registry.npmjs.org openclaw plugins install @jeik/dingtalk-connector@0.8.29 --force && openclaw gateway restart
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## [0.8.28] - 2026-07-25
|
|
49
|
+
|
|
50
|
+
### 主题
|
|
51
|
+
|
|
52
|
+
基于**官方最新 0.8.24**,并保留**本仓库独有**优化:连接更稳、消息少丢、错误提示更清楚。
|
|
53
|
+
|
|
54
|
+
### 本版重点
|
|
55
|
+
|
|
56
|
+
- 长连接:能收消息才显示已连接;少假死误重连
|
|
57
|
+
- 消息:进队后再 ACK;排队反馈更及时
|
|
58
|
+
- 错误:503 / 欠费 / 无通道等中文定稿,少卡「正在召唤大模型」
|
|
59
|
+
- 本仓库独有:答案卡、图片全路径、首响等
|
|
60
|
+
|
|
61
|
+
### 安装
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
openclaw plugins install @jeik/dingtalk-connector@0.8.28 --force && openclaw gateway restart
|
|
55
65
|
```
|
|
56
66
|
|
|
57
67
|
## [0.8.26] - 2026-07-25
|
package/README.en.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
<img alt="DingTalk" src="https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-openclaw-connector/main/docs/images/dingtalk.svg" width="72" height="72" />
|
|
3
3
|
<h1>dingtalk-openclaw-connector(Community Maintained Fork)</h1>
|
|
4
4
|
<p>Community-enhanced fork based on official <strong>v0.8.24</strong>: adopts official long-connection improvements, plus stronger message delivery, queue feedback, and error-card UX.<br/>
|
|
5
|
-
Keeps
|
|
5
|
+
Keeps <strong>this repo’s unique</strong> extras (images, answer cards, first-response UX) and continues to fix issues not yet covered upstream.</p>
|
|
6
6
|
|
|
7
|
-
<p><strong>Current release: <a href="https://www.npmjs.com/package/@jeik/dingtalk-connector">@jeik/dingtalk-connector</a> v0.8.
|
|
7
|
+
<p><strong>Current release: <a href="https://www.npmjs.com/package/@jeik/dingtalk-connector">@jeik/dingtalk-connector</a> v0.8.30</strong></p>
|
|
8
8
|
|
|
9
9
|
<p>
|
|
10
10
|
<a href="https://www.npmjs.com/package/@jeik/dingtalk-connector"><img src="https://img.shields.io/npm/v/@jeik/dingtalk-connector.svg?style=flat&colorA=18181B&colorB=28CF8D" alt="npm version" /></a>
|
|
@@ -23,87 +23,89 @@
|
|
|
23
23
|
|
|
24
24
|
## 🔧 Recent Updates
|
|
25
25
|
|
|
26
|
-
### 🚀 v0.8.
|
|
26
|
+
### 🚀 v0.8.30 · 2026-07-29 (current)
|
|
27
27
|
|
|
28
|
-
**Theme:
|
|
28
|
+
**Theme: production hardening · quieter logs · debug config only**
|
|
29
29
|
|
|
30
|
-
Built on
|
|
30
|
+
Built on **0.8.28** (steadier connection / fewer lost messages / clearer error cards):
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
| Experience | Effect |
|
|
33
|
+
|------------|--------|
|
|
34
|
+
| 🧹 **Quieter by default** | No LocalImage / MediaIdTrace / CardCache spam on normal text replies |
|
|
35
|
+
| 🔍 **Simple debug** | Set `"debug": true` for connection, image, quote, and queue diagnostics (no env vars) |
|
|
36
|
+
| 🔗 **Connection / queue** | Connected only when messages can be received; better multi-send and post-error recovery |
|
|
37
|
+
| ⚠️ **Model failures** | 503 / billing / no-channel settle to clear Chinese cards instead of spinning forever |
|
|
38
|
+
| 🃏 **This repo’s unique extras** | Answer cards, full image paths, first-response UX remain |
|
|
33
39
|
|
|
34
|
-
|
|
35
|
-
- Long AI runs less likely to get cut mid-task by connection flapping
|
|
36
|
-
- Cleaner console logs for easier ops
|
|
40
|
+
### 📦 v0.8.28 · 2026-07-25
|
|
37
41
|
|
|
38
|
-
|
|
42
|
+
Official 0.8.24-aligned connection & delivery hardening (included in 0.8.30).
|
|
39
43
|
|
|
40
|
-
|
|
41
|
-
|------------|--------|
|
|
42
|
-
| 🔗 **Connection** | Marks “connected” only when the bot can actually receive messages; auto-retries instead of faking online |
|
|
43
|
-
| 📩 **Fewer lost messages** | Much better after errors, after a reply finishes, or when sending several messages quickly |
|
|
44
|
-
| ⏳ **Queue feedback** | While the previous message is still running, new messages more reliably show “queued / processing” + thinking reaction |
|
|
45
|
-
| ⚠️ **Model failures** | Billing / no channel / 503-style failures settle into clear Chinese error cards instead of spinning forever |
|
|
46
|
-
| 🃏 **Answer cards & images** | Existing community answer-card and full image-path fixes remain |
|
|
44
|
+
### 📦 v0.8.26 / 0.8.25 and earlier
|
|
47
45
|
|
|
48
|
-
|
|
49
|
-
npx -y @jeik/dingtalk-connector@0.8.28 install --force && openclaw gateway restart
|
|
50
|
-
```
|
|
46
|
+
Target ID rules, sender identity, answer cards, image fixes — see [CHANGELOG.md](CHANGELOG.md).
|
|
51
47
|
|
|
52
|
-
|
|
48
|
+
---
|
|
53
49
|
|
|
54
|
-
|
|
50
|
+
## 🚀 Quick Start
|
|
55
51
|
|
|
56
|
-
###
|
|
52
|
+
### Requirements
|
|
57
53
|
|
|
58
|
-
|
|
54
|
+
- **OpenClaw** installed and running ([website](https://openclaw.ai/))
|
|
55
|
+
- **Version**: OpenClaw ≥ **2026.4.9** (`openclaw -v`)
|
|
56
|
+
- Same channel id as official (`dingtalk-connector`); `--force` overwrites — **no uninstall** needed
|
|
57
|
+
- Always `openclaw gateway restart` after install/upgrade
|
|
59
58
|
|
|
60
|
-
|
|
59
|
+
Package: [`@jeik/dingtalk-connector`](https://www.npmjs.com/package/@jeik/dingtalk-connector)
|
|
61
60
|
|
|
62
|
-
|
|
61
|
+
### A) npx one-command QR install (try in order)
|
|
63
62
|
|
|
64
|
-
|
|
63
|
+
```bash
|
|
64
|
+
# 1) Install latest
|
|
65
|
+
npx @jeik/dingtalk-connector install --force && openclaw gateway restart
|
|
65
66
|
|
|
66
|
-
|
|
67
|
+
# 2) If you did not get the latest, pin the version
|
|
68
|
+
npx @jeik/dingtalk-connector@0.8.30 install --force && openclaw gateway restart
|
|
67
69
|
|
|
68
|
-
|
|
70
|
+
# 3) If it still fails, force the official npm registry
|
|
71
|
+
NPM_CONFIG_REGISTRY=https://registry.npmjs.org npx @jeik/dingtalk-connector@0.8.30 install --force && openclaw gateway restart
|
|
72
|
+
```
|
|
69
73
|
|
|
70
|
-
###
|
|
74
|
+
### B) Plugin only (credentials already set; try in order)
|
|
71
75
|
|
|
72
|
-
|
|
73
|
-
|
|
76
|
+
```bash
|
|
77
|
+
# 1) Install latest
|
|
78
|
+
openclaw plugins install @jeik/dingtalk-connector --force && openclaw gateway restart
|
|
74
79
|
|
|
75
|
-
|
|
80
|
+
# 2) If you did not get the latest, pin the version
|
|
81
|
+
openclaw plugins install @jeik/dingtalk-connector@0.8.30 --force && openclaw gateway restart
|
|
76
82
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
| 📤 | **message · mediaUrl** | Proactive direct send (local / LAN / public) |
|
|
81
|
-
| 📝 | **message · markdown body** | Nested `` (local / `file://` / URL) with text |
|
|
82
|
-
| ⚙️ | **Configurable layout** | Default 📎 **separate**; `messageImageMd: true` → 🧩 **merge** one markdown |
|
|
83
|
+
# 3) If it still fails, force the official npm registry
|
|
84
|
+
NPM_CONFIG_REGISTRY=https://registry.npmjs.org openclaw plugins install @jeik/dingtalk-connector@0.8.30 --force && openclaw gateway restart
|
|
85
|
+
```
|
|
83
86
|
|
|
84
|
-
|
|
87
|
+
### Local tgz / from source (dev / offline)
|
|
85
88
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
| 🔗 | `file://` URI | `file:///mnt/…` · `file:///tmp/…` |
|
|
93
|
-
| 🆔 | Existing mediaId | `@lADP…` |
|
|
89
|
+
```bash
|
|
90
|
+
git clone https://github.com/jeikl/dingtalk-openclaw-connector-fix-Community.git
|
|
91
|
+
cd dingtalk-openclaw-connector-fix-Community
|
|
92
|
+
npm install && npm run build && npm pack
|
|
93
|
+
openclaw plugins install ./jeik-dingtalk-connector-0.8.30.tgz --force && openclaw gateway restart
|
|
94
|
+
```
|
|
94
95
|
|
|
95
|
-
|
|
96
|
+
### Smoke check
|
|
96
97
|
|
|
97
|
-
|
|
98
|
-
-
|
|
99
|
-
|
|
98
|
+
```bash
|
|
99
|
+
openclaw -v
|
|
100
|
+
openclaw plugins list
|
|
101
|
+
# Send a DingTalk message — first “summoning model…”, then streaming / answer card
|
|
102
|
+
```
|
|
100
103
|
|
|
101
|
-
|
|
104
|
+
---
|
|
102
105
|
|
|
103
|
-
|
|
104
|
-
`0d2c84b3-12c1-473b-b14a-f329a7a102cd.schema` (📋 copy button, etc.)
|
|
106
|
+
## ⚙️ Configuration
|
|
105
107
|
|
|
106
|
-
###
|
|
108
|
+
### Minimal config
|
|
107
109
|
|
|
108
110
|
```json
|
|
109
111
|
"channels": {
|
|
@@ -121,8 +123,6 @@ Defaults apply: stream card `0d2c84b3-…schema`, session answer card on, messag
|
|
|
121
123
|
|
|
122
124
|
### Maximal config (for illustration; defaults written out)
|
|
123
125
|
|
|
124
|
-
**Single Agent** and **multi Agent** (all values are defaults — **not extra features**).
|
|
125
|
-
|
|
126
126
|
**Single Agent (top-level credentials):**
|
|
127
127
|
|
|
128
128
|
```json
|
|
@@ -197,12 +197,64 @@ Defaults apply: stream card `0d2c84b3-…schema`, session answer card on, messag
|
|
|
197
197
|
| `answerCardTemplateId` | string | `d246b7f5-1783-4e9b-bb46-bef52d63050e.schema` | Static answer card template |
|
|
198
198
|
| `messageAnswerCard` | boolean | **true** | message-tool body via answer card; `false` = plain message |
|
|
199
199
|
| `messageImageMd` | boolean | **false** | message images: separate vs merge markdown |
|
|
200
|
+
| `debug` | boolean | **false** | Verbose diagnostics (connection / image mediaId / quote / queue). **Off in production**; set `true` then restart gateway |
|
|
200
201
|
|
|
201
202
|
> `answerCard` = conversation finalize; `messageAnswerCard` = message-tool outbound.
|
|
202
203
|
|
|
204
|
+
**Temporary debug example:**
|
|
205
|
+
|
|
206
|
+
```json
|
|
207
|
+
"channels": {
|
|
208
|
+
"dingtalk-connector": {
|
|
209
|
+
"enabled": true,
|
|
210
|
+
"clientId": "…",
|
|
211
|
+
"clientSecret": "…",
|
|
212
|
+
"debug": true
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
203
217
|
---
|
|
204
218
|
|
|
205
|
-
##
|
|
219
|
+
## ✨ Enhanced Features
|
|
220
|
+
|
|
221
|
+
### 🖼️ Image sending: full fix & upgrade
|
|
222
|
+
|
|
223
|
+
> 🔥 **No dead corners** · mixed send paths · far beyond the official’s weak image pipeline
|
|
224
|
+
> ✅ Chat · ✅ message direct · ✅ markdown embed · ✅ split or merge layout
|
|
225
|
+
|
|
226
|
+
Full-path image fixes — every channel below renders correctly:
|
|
227
|
+
|
|
228
|
+
| | Path | Capability |
|
|
229
|
+
|--|------|------------|
|
|
230
|
+
| 💬 | **Normal chat reply** | Agent embeds ``; upload to mediaId before finalize |
|
|
231
|
+
| 📤 | **message · mediaUrl** | Proactive direct send (local / LAN / public) |
|
|
232
|
+
| 📝 | **message · markdown body** | Nested `` (local / `file://` / URL) with text |
|
|
233
|
+
| ⚙️ | **Configurable layout** | Default 📎 **separate**; `messageImageMd: true` → 🧩 **merge** one markdown |
|
|
234
|
+
|
|
235
|
+
#### 🌐 Source types covered
|
|
236
|
+
|
|
237
|
+
| | Type | Examples |
|
|
238
|
+
|--|------|----------|
|
|
239
|
+
| 🌍 | Public URL | `https://…` |
|
|
240
|
+
| 🏠 | Private / LAN URL | `http://intranet/…` |
|
|
241
|
+
| 📁 | Local absolute path | `/tmp/…` · `/root/…` |
|
|
242
|
+
| 💾 | **`/mnt` mounts** | Chinese paths · SMB shares |
|
|
243
|
+
| 🔗 | `file://` URI | `file:///mnt/…` · `file:///tmp/…` |
|
|
244
|
+
| 🆔 | Existing mediaId | `@lADP…` |
|
|
245
|
+
|
|
246
|
+
#### 🛡️ Extra safeguards
|
|
247
|
+
|
|
248
|
+
- 📦 Code-block / inline-code paths are **not** uploaded
|
|
249
|
+
- ⬇️ Remote: **download then upload**; local: **`/tmp` retry** on failure
|
|
250
|
+
- 🫧 Image + download link in **one bubble**: `![]` → mediaId, URL kept as-is
|
|
251
|
+
|
|
252
|
+
### 🎨 AI Card template
|
|
253
|
+
|
|
254
|
+
- ✨ Custom stream cards; **if `cardTemplateId` is omitted**, defaults to
|
|
255
|
+
`0d2c84b3-12c1-473b-b14a-f329a7a102cd.schema` (📋 copy button, etc.)
|
|
256
|
+
|
|
257
|
+
### 🎯 Reply markers + Answer card + Tool progress
|
|
206
258
|
|
|
207
259
|
These make the "process → final answer" rendering on DingTalk cleaner and more stable, working around DingTalk's official streaming AI Card bug:
|
|
208
260
|
|
|
@@ -232,80 +284,12 @@ Community contributions (features & bug fixes) are always welcome — submit a P
|
|
|
232
284
|
|
|
233
285
|
| Item | Description |
|
|
234
286
|
|------|-------------|
|
|
235
|
-
| Base |
|
|
236
|
-
| Fixes |
|
|
287
|
+
| Base | Aligned with official **v0.8.24** long-connection work + this repo’s unique extras |
|
|
288
|
+
| Fixes | Silent connection, lost messages, stuck error cards, grey images, etc. |
|
|
237
289
|
| Maintenance | Community maintained, continuously tracking official updates |
|
|
238
290
|
|
|
239
291
|
---
|
|
240
292
|
|
|
241
|
-
## Requirements & Installation
|
|
242
|
-
|
|
243
|
-
Before you start, make sure you have:
|
|
244
|
-
|
|
245
|
-
- **OpenClaw**: Installed and running properly. Visit the [OpenClaw website](https://openclaw.ai/) for details.
|
|
246
|
-
- **Version**: OpenClaw ≥ **2026.4.9**. Check with `openclaw -v`.
|
|
247
|
-
|
|
248
|
-
> If below this version, upgrade with: `npm install -g openclaw`
|
|
249
|
-
|
|
250
|
-
---
|
|
251
|
-
|
|
252
|
-
## Installation
|
|
253
|
-
|
|
254
|
-
> Same channel id as the official plugin (`dingtalk-connector`); `--force` overwrites in place — **no uninstall** needed.
|
|
255
|
-
> **Current stable: `0.8.21-fix31`** (npm `latest`). Always run `openclaw gateway restart` after install/upgrade.
|
|
256
|
-
|
|
257
|
-
### Option 1: npm (recommended)
|
|
258
|
-
|
|
259
|
-
Package: [`@jeik/dingtalk-connector`](https://www.npmjs.com/package/@jeik/dingtalk-connector)
|
|
260
|
-
|
|
261
|
-
**1) One-command QR install** (bot → credentials → plugin → config):
|
|
262
|
-
|
|
263
|
-
```bash
|
|
264
|
-
npx -y @jeik/dingtalk-connector install
|
|
265
|
-
|
|
266
|
-
# force overwrite when a local dingtalk-connector already exists
|
|
267
|
-
npx -y @jeik/dingtalk-connector install --force
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
**2) Plugin only** (credentials already set / manual setup):
|
|
271
|
-
|
|
272
|
-
```bash
|
|
273
|
-
openclaw plugins install @jeik/dingtalk-connector --force
|
|
274
|
-
openclaw gateway restart
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
**3) Upgrade to latest:**
|
|
278
|
-
|
|
279
|
-
```bash
|
|
280
|
-
openclaw plugins install @jeik/dingtalk-connector --force
|
|
281
|
-
openclaw gateway restart
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
### Option 2: Local tgz / from source (dev / offline)
|
|
285
|
-
|
|
286
|
-
```bash
|
|
287
|
-
git clone https://github.com/jeikl/dingtalk-openclaw-connector-fix-Community.git
|
|
288
|
-
cd dingtalk-openclaw-connector-fix-Community
|
|
289
|
-
# optional: pin a release (this is a git tag, not a branch)
|
|
290
|
-
# git fetch --tags && git checkout v0.8.21-fix31
|
|
291
|
-
|
|
292
|
-
npm install && npm run build && npm pack
|
|
293
|
-
# → jeik-dingtalk-connector-0.8.21-fix31.tgz
|
|
294
|
-
|
|
295
|
-
openclaw plugins install ./jeik-dingtalk-connector-0.8.21-fix31.tgz --force
|
|
296
|
-
openclaw gateway restart
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
### Smoke check
|
|
300
|
-
|
|
301
|
-
```bash
|
|
302
|
-
openclaw -v
|
|
303
|
-
openclaw plugins list
|
|
304
|
-
# Send a DingTalk message — you should first see "🦸 正在召唤大模型…" then streaming reply
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
---
|
|
308
|
-
|
|
309
293
|
## Usage Guide
|
|
310
294
|
|
|
311
295
|
[OpenClaw DingTalk Plugin User Guide](https://alidocs.dingtalk.com/i/nodes/2Amq4vjg89GEno0zfPqoPGqdV3kdP0wQ?utm_scene=team_space)
|
|
@@ -338,4 +322,4 @@ This project is licensed under the [MIT](LICENSE) License.
|
|
|
338
322
|
## Support
|
|
339
323
|
|
|
340
324
|
- **Issues**: [GitHub Issues](https://github.com/jeikl/dingtalk-openclaw-connector-fix-Community/issues)
|
|
341
|
-
- **Changelog**: [CHANGELOG.md](CHANGELOG.md)
|
|
325
|
+
- **Changelog**: [CHANGELOG.md](CHANGELOG.md)
|