@jeik/dingtalk-connector 0.8.21-fix1
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 +686 -0
- package/LICENSE +21 -0
- package/README.en.md +181 -0
- package/README.md +221 -0
- package/bin/dingtalk-connector.js +858 -0
- package/bin/wizard-config.mjs +110 -0
- package/dist/accounts-BAzdqkAV.mjs +268 -0
- package/dist/accounts-BQptOmgB.mjs +2 -0
- package/dist/chunk-upload-BBQgGtcZ.mjs +193 -0
- package/dist/chunk-upload-DaLXXZH3.mjs +2 -0
- package/dist/common-C8pYKU_y.mjs +2 -0
- package/dist/common-Dt9n6fQN.mjs +101 -0
- package/dist/connection-DHHFFNQJ.mjs +423 -0
- package/dist/entry-bundled.d.mts +16 -0
- package/dist/entry-bundled.mjs +31 -0
- package/dist/game-xiyou-CqHt-6Q1.mjs +4271 -0
- package/dist/gateway-methods-C4tcgI7P.mjs +771 -0
- package/dist/gateway-methods-Ci31A3vg.mjs +2 -0
- package/dist/http-client-CpnJHB89.mjs +2 -0
- package/dist/http-client-DFWZgO1n.mjs +33 -0
- package/dist/index.d.mts +193 -0
- package/dist/index.mjs +45 -0
- package/dist/logger-BmJkQkm1.mjs +2 -0
- package/dist/logger-mZ9OSbmD.mjs +58 -0
- package/dist/media-C_SVin7s.mjs +2 -0
- package/dist/media-cz72EVS3.mjs +509 -0
- package/dist/message-handler-DESzFFDc.mjs +1971 -0
- package/dist/messaging-B6l1sRvX.mjs +1044 -0
- package/dist/runtime-DUgpo5zC.mjs +1422 -0
- package/dist/session-DJ4jYqPv.mjs +114 -0
- package/dist/utils-Bjh4r_qS.mjs +4 -0
- package/dist/utils-CIfI_3Jh.mjs +63 -0
- package/dist/utils-legacy-CALCPP1t.mjs +230 -0
- package/dist/utils-legacy-CFYDBM4r.mjs +3 -0
- package/docs/DEAP_AGENT_GUIDE.en.md +115 -0
- package/docs/DEAP_AGENT_GUIDE.md +115 -0
- package/docs/DINGTALK_MANUAL_SETUP.md +50 -0
- package/docs/MULTI_AGENT_SETUP.md +306 -0
- package/docs/RELEASE_NOTES_V0.7.10.md +40 -0
- package/docs/RELEASE_NOTES_V0.7.2.md +143 -0
- package/docs/RELEASE_NOTES_V0.7.3.md +149 -0
- package/docs/RELEASE_NOTES_V0.7.4.md +206 -0
- package/docs/RELEASE_NOTES_V0.7.5.md +267 -0
- package/docs/RELEASE_NOTES_V0.7.6.md +219 -0
- package/docs/RELEASE_NOTES_V0.7.7.md +122 -0
- package/docs/RELEASE_NOTES_V0.7.8.md +101 -0
- package/docs/RELEASE_NOTES_V0.7.9.md +65 -0
- package/docs/RELEASE_NOTES_V0.8.0.md +53 -0
- package/docs/RELEASE_NOTES_V0.8.1.md +47 -0
- package/docs/RELEASE_NOTES_V0.8.10.md +49 -0
- package/docs/RELEASE_NOTES_V0.8.11.md +51 -0
- package/docs/RELEASE_NOTES_V0.8.12.md +63 -0
- package/docs/RELEASE_NOTES_V0.8.13-beta.0.md +69 -0
- package/docs/RELEASE_NOTES_V0.8.13.md +62 -0
- package/docs/RELEASE_NOTES_V0.8.14.md +86 -0
- package/docs/RELEASE_NOTES_V0.8.16.md +40 -0
- package/docs/RELEASE_NOTES_V0.8.17.md +87 -0
- package/docs/RELEASE_NOTES_V0.8.18.md +64 -0
- package/docs/RELEASE_NOTES_V0.8.19.md +62 -0
- package/docs/RELEASE_NOTES_V0.8.2.md +55 -0
- package/docs/RELEASE_NOTES_V0.8.20.md +49 -0
- package/docs/RELEASE_NOTES_V0.8.3.md +63 -0
- package/docs/RELEASE_NOTES_V0.8.4.md +45 -0
- package/docs/RELEASE_NOTES_V0.8.7.md +49 -0
- package/docs/RELEASE_NOTES_V0.8.8.md +63 -0
- package/docs/RELEASE_NOTES_V0.8.9.md +81 -0
- package/docs/RELEASE_NOTES_v0.7.0.md +142 -0
- package/docs/RELEASE_NOTES_v0.7.1.md +74 -0
- package/docs/TROUBLESHOOTING.md +122 -0
- package/index.ts +77 -0
- package/openclaw.plugin.json +551 -0
- package/package.json +147 -0
- package/skills/dingtalk-channel-rules/SKILL.md +91 -0
- package/skills/dingtalk-troubleshoot/SKILL.md +93 -0
- package/skills/dws-cli/SKILL.md +129 -0
- package/skills/dws-cli/references/error-codes.md +95 -0
- package/skills/dws-cli/references/field-rules.md +105 -0
- package/skills/dws-cli/references/global-reference.md +104 -0
- package/skills/dws-cli/references/intent-guide.md +114 -0
- package/skills/dws-cli/references/products/aitable.md +452 -0
- package/skills/dws-cli/references/products/attendance.md +93 -0
- package/skills/dws-cli/references/products/calendar.md +217 -0
- package/skills/dws-cli/references/products/chat.md +292 -0
- package/skills/dws-cli/references/products/contact.md +108 -0
- package/skills/dws-cli/references/products/ding.md +57 -0
- package/skills/dws-cli/references/products/report.md +162 -0
- package/skills/dws-cli/references/products/simple.md +128 -0
- package/skills/dws-cli/references/products/todo.md +138 -0
- package/skills/dws-cli/references/products/workbench.md +39 -0
- package/skills/dws-cli/references/recovery-guide.md +94 -0
- package/src/channel.ts +588 -0
- package/src/config/accounts.ts +242 -0
- package/src/config/schema.ts +180 -0
- package/src/core/connection.ts +741 -0
- package/src/core/message-handler.ts +1788 -0
- package/src/core/provider.ts +111 -0
- package/src/core/state.ts +54 -0
- package/src/device-auth-config.ts +14 -0
- package/src/device-auth.ts +197 -0
- package/src/directory.ts +95 -0
- package/src/docs.ts +293 -0
- package/src/game-xiyou/achievement-engine.ts +252 -0
- package/src/game-xiyou/bounty-system.ts +315 -0
- package/src/game-xiyou/commands.ts +223 -0
- package/src/game-xiyou/drop-engine.ts +241 -0
- package/src/game-xiyou/encounter-system.ts +135 -0
- package/src/game-xiyou/escape-engine.ts +164 -0
- package/src/game-xiyou/exp-calculator.ts +139 -0
- package/src/game-xiyou/index.ts +479 -0
- package/src/game-xiyou/level-system.ts +91 -0
- package/src/game-xiyou/monster-pool.ts +180 -0
- package/src/game-xiyou/pity-counter.ts +114 -0
- package/src/game-xiyou/random-event-engine.ts +648 -0
- package/src/game-xiyou/renderer.ts +679 -0
- package/src/game-xiyou/storage.ts +218 -0
- package/src/game-xiyou/treasure-system.ts +105 -0
- package/src/game-xiyou/types.ts +582 -0
- package/src/game-xiyou/uid-resolver.ts +49 -0
- package/src/gateway-methods.ts +740 -0
- package/src/onboarding.ts +553 -0
- package/src/policy.ts +32 -0
- package/src/probe.ts +210 -0
- package/src/reply-dispatcher.ts +874 -0
- package/src/runtime.ts +32 -0
- package/src/sdk/helpers.ts +322 -0
- package/src/sdk/types.ts +519 -0
- package/src/secret-input.ts +19 -0
- package/src/services/media/audio.ts +54 -0
- package/src/services/media/chunk-upload.ts +296 -0
- package/src/services/media/common.ts +155 -0
- package/src/services/media/file.ts +75 -0
- package/src/services/media/image.ts +81 -0
- package/src/services/media/index.ts +10 -0
- package/src/services/media/video.ts +162 -0
- package/src/services/media.ts +1143 -0
- package/src/services/messaging/card.ts +604 -0
- package/src/services/messaging/index.ts +18 -0
- package/src/services/messaging/mentions.ts +267 -0
- package/src/services/messaging/send.ts +141 -0
- package/src/services/messaging.ts +1191 -0
- package/src/services/reply-markers.ts +55 -0
- package/src/targets.ts +45 -0
- package/src/types/index.ts +59 -0
- package/src/types/pdf-parse.d.ts +3 -0
- package/src/utils/agent.ts +63 -0
- package/src/utils/async.ts +51 -0
- package/src/utils/constants.ts +27 -0
- package/src/utils/http-client.ts +38 -0
- package/src/utils/index.ts +8 -0
- package/src/utils/logger.ts +78 -0
- package/src/utils/session.ts +147 -0
- package/src/utils/token.ts +93 -0
- package/src/utils/utils-legacy.ts +454 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Release Notes - v0.8.10
|
|
2
|
+
|
|
3
|
+
## 🎉 新版本亮点 / Highlights
|
|
4
|
+
|
|
5
|
+
本次更新修复了 **OpenClaw SDK 升级后 Gateway Methods 配置访问失败**的关键问题,并**锁定 axios 版本**以提升依赖稳定性。
|
|
6
|
+
|
|
7
|
+
This release fixes a **critical Gateway Methods configuration access failure** after OpenClaw SDK upgrade, and **pins the axios version** for improved dependency stability.
|
|
8
|
+
|
|
9
|
+
## 🐛 修复 / Fixes
|
|
10
|
+
|
|
11
|
+
- **Gateway Methods 配置访问失败 / Gateway Methods config access failure** ([#397](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/issues/397))
|
|
12
|
+
修复 SDK 升级后 `GatewayRequestContext.deps` 类型变更(`CliDeps = { [channelId: string]: unknown }`),导致 `context.deps.config` 为 `undefined`,所有 Gateway RPC 方法(sendToUser、sendToGroup、send、docs.*、status、probe)调用时抛出 `Cannot read properties of undefined (reading 'channels')` 错误。现在通过 SDK 提供的 `loadConfig()` 函数(从 `openclaw/plugin-sdk/config-runtime` 导出)获取完整配置,替代原来的 `context.deps.config` 访问方式。
|
|
13
|
+
Fixed `context.deps.config` being `undefined` after SDK upgrade where `GatewayRequestContext.deps` type changed to `CliDeps = { [channelId: string]: unknown }`. All Gateway RPC methods (sendToUser, sendToGroup, send, docs.*, status, probe) threw `Cannot read properties of undefined (reading 'channels')`. Now uses SDK's `loadConfig()` function (exported from `openclaw/plugin-sdk/config-runtime`) to obtain the full configuration.
|
|
14
|
+
|
|
15
|
+
- **锁定 axios 版本避免兼容性问题 / Pin axios version to prevent compatibility issues** ([#396](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/issues/396))
|
|
16
|
+
将 `axios` 依赖从 `^1.6.0` 锁定为 `1.6.0`,避免 npm install 时自动升级到不兼容的新版本导致运行时错误。
|
|
17
|
+
Pinned `axios` dependency from `^1.6.0` to `1.6.0` to prevent automatic upgrades to incompatible versions during `npm install`.
|
|
18
|
+
|
|
19
|
+
## 🔧 内部改进 / Internal Improvements
|
|
20
|
+
|
|
21
|
+
- **connection.ts 动态 import 优化** - 将 `createLoggerFromConfig` 从静态 import 改为动态 import,避免潜在的循环依赖问题。
|
|
22
|
+
**connection.ts dynamic import optimization** - Changed `createLoggerFromConfig` from static to dynamic import to avoid potential circular dependency issues.
|
|
23
|
+
|
|
24
|
+
- **单元测试适配** - 更新 Gateway Methods 单元测试,mock `openclaw/plugin-sdk/config-runtime` 的 `loadConfig` 函数,替代原来的 `context.deps.config` mock 方式。
|
|
25
|
+
**Unit test adaptation** - Updated Gateway Methods unit tests to mock `loadConfig` from `openclaw/plugin-sdk/config-runtime` instead of the deprecated `context.deps.config`.
|
|
26
|
+
|
|
27
|
+
## 📥 安装升级 / Installation & Upgrade
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# 通过 npm 安装最新版本 / Install latest version via npm
|
|
31
|
+
openclaw plugins install @dingtalk-real-ai/dingtalk-connector
|
|
32
|
+
|
|
33
|
+
# 或升级现有版本 / Or upgrade existing version
|
|
34
|
+
openclaw plugins update dingtalk-connector
|
|
35
|
+
|
|
36
|
+
# 通过 Git 安装 / Install via Git
|
|
37
|
+
openclaw plugins install https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector.git
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## 🔗 相关链接 / Related Links
|
|
41
|
+
|
|
42
|
+
- [完整变更日志 / Full Changelog](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/CHANGELOG.md)
|
|
43
|
+
- [使用文档 / Documentation](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/README.md)
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
**发布日期 / Release Date**:2026-03-31
|
|
48
|
+
**版本号 / Version**:v0.8.10
|
|
49
|
+
**兼容性 / Compatibility**:OpenClaw Gateway 0.4.0+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Release Notes - v0.8.11
|
|
2
|
+
|
|
3
|
+
## 🎉 新版本亮点 / Highlights
|
|
4
|
+
|
|
5
|
+
本次更新**升级 Zod 至 v4**,并通过 SDK 的 `buildChannelConfigSchema` 自动生成 `configSchema`,同时**优化依赖结构**大幅减小安装体积。
|
|
6
|
+
|
|
7
|
+
This release **upgrades Zod to v4** with auto-generated `configSchema` via SDK's `buildChannelConfigSchema`, and **optimizes dependency structure** to significantly reduce installation size.
|
|
8
|
+
|
|
9
|
+
## ✨ 功能与体验改进 / Features & Improvements
|
|
10
|
+
|
|
11
|
+
- **升级 Zod v4 + 自动生成 configSchema / Upgrade Zod v4 + auto-generate configSchema**
|
|
12
|
+
将 Zod 从 v3 升级至 v4(`zod@^4.3.6`),利用 Zod v4 的 `toJSONSchema()` 能力,通过 SDK 提供的 `buildChannelConfigSchema()` 自动从 Zod Schema 生成 JSON Schema,替代原来手动维护的 `configSchema.schema` 对象,确保配置验证与类型定义始终同步。
|
|
13
|
+
Upgraded Zod from v3 to v4 (`zod@^4.3.6`), leveraging Zod v4's `toJSONSchema()` capability to auto-generate JSON Schema via SDK's `buildChannelConfigSchema()`, replacing the manually maintained `configSchema.schema` object to ensure config validation stays in sync with type definitions.
|
|
14
|
+
|
|
15
|
+
## 📦 依赖优化 / Dependency Optimization
|
|
16
|
+
|
|
17
|
+
- **openclaw 移至 peerDependencies / Move openclaw to peerDependencies**
|
|
18
|
+
将 `openclaw` 从 `dependencies` 移至 `peerDependencies`(标记为 optional),避免插件安装时重复安装宿主框架,大幅减小 `node_modules` 体积。
|
|
19
|
+
Moved `openclaw` from `dependencies` to `peerDependencies` (marked as optional), preventing duplicate installation of the host framework and significantly reducing `node_modules` size.
|
|
20
|
+
|
|
21
|
+
- **ffmpeg 相关包移至 optionalDependencies / Move ffmpeg packages to optionalDependencies**
|
|
22
|
+
将 `fluent-ffmpeg`、`@ffmpeg-installer/ffmpeg`、`@ffprobe-installer/ffprobe` 移至 `optionalDependencies`,这些包仅在视频/音频转码场景使用(通过动态 require 加载),安装失败不影响核心功能。
|
|
23
|
+
Moved `fluent-ffmpeg`, `@ffmpeg-installer/ffmpeg`, `@ffprobe-installer/ffprobe` to `optionalDependencies`. These packages are only used for video/audio transcoding (loaded via dynamic require) and won't affect core functionality if installation fails.
|
|
24
|
+
|
|
25
|
+
- **移除未使用的 pako 依赖 / Remove unused pako dependency**
|
|
26
|
+
移除了未被任何代码引用的 `pako` 包。
|
|
27
|
+
Removed the `pako` package which was not referenced by any code.
|
|
28
|
+
|
|
29
|
+
## 📥 安装升级 / Installation & Upgrade
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# 通过 npm 安装最新版本 / Install latest version via npm
|
|
33
|
+
openclaw plugins install @dingtalk-real-ai/dingtalk-connector
|
|
34
|
+
|
|
35
|
+
# 或升级现有版本 / Or upgrade existing version
|
|
36
|
+
openclaw plugins update dingtalk-connector
|
|
37
|
+
|
|
38
|
+
# 通过 Git 安装 / Install via Git
|
|
39
|
+
openclaw plugins install https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector.git
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 🔗 相关链接 / Related Links
|
|
43
|
+
|
|
44
|
+
- [完整变更日志 / Full Changelog](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/CHANGELOG.md)
|
|
45
|
+
- [使用文档 / Documentation](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/README.md)
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
**发布日期 / Release Date**:2026-04-01
|
|
50
|
+
**版本号 / Version**:v0.8.11
|
|
51
|
+
**兼容性 / Compatibility**:OpenClaw Gateway 0.4.0+
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Release Notes - v0.8.12
|
|
2
|
+
|
|
3
|
+
## 🎉 新版本亮点 / Highlights
|
|
4
|
+
|
|
5
|
+
本次更新**修复了 v0.8.11 安装后启动崩溃的问题**([#419](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/issues/419)),同时**大幅精简依赖体积**,移除了约 100MB 的非核心依赖,并**清理了无效的代理禁用代码**。
|
|
6
|
+
|
|
7
|
+
This release **fixes the startup crash after v0.8.11 installation** ([#419](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/issues/419)), **significantly reduces dependency size** by removing ~100MB of non-core dependencies, and **removes ineffective proxy bypass code**.
|
|
8
|
+
|
|
9
|
+
## 🐛 修复 / Fixes
|
|
10
|
+
|
|
11
|
+
- **修复 v0.8.11 安装后启动崩溃 / Fix startup crash after v0.8.11 installation** ([#419](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/issues/419))
|
|
12
|
+
v0.8.11 将 `mammoth` 和 `pdf-parse` 从 `dependencies` 移至 `optionalDependencies`,但代码中仍使用静态 `import`,导致模块加载阶段立即报错 `Cannot find module 'mammoth'`,插件无法启动。现已改为动态 `import` + 优雅降级:缺失时打印警告并跳过,不影响核心功能。
|
|
13
|
+
v0.8.11 moved `mammoth` and `pdf-parse` from `dependencies` to `optionalDependencies`, but the code still used static `import`, causing immediate `Cannot find module 'mammoth'` error at module load time. Now uses dynamic `import` with graceful degradation: prints a warning and skips when missing, without affecting core functionality.
|
|
14
|
+
|
|
15
|
+
## 📦 依赖优化 / Dependency Optimization
|
|
16
|
+
|
|
17
|
+
- **移除大体积非核心依赖 / Remove large non-core dependencies**
|
|
18
|
+
将 `pdf-parse`(~21MB)、`fluent-ffmpeg`(~12MB)、`@ffmpeg-installer/ffmpeg`(~70MB)、`@ffprobe-installer/ffprobe` 从 `optionalDependencies` 中移除。这些包均已改为动态 `import`,缺失时优雅降级,需要时用户可手动安装。仅保留 `mammoth`(~2MB)在 `optionalDependencies` 中。
|
|
19
|
+
Removed `pdf-parse` (~21MB), `fluent-ffmpeg` (~12MB), `@ffmpeg-installer/ffmpeg` (~70MB), `@ffprobe-installer/ffprobe` from `optionalDependencies`. All packages now use dynamic `import` with graceful degradation. Users can manually install them when needed. Only `mammoth` (~2MB) remains in `optionalDependencies`.
|
|
20
|
+
|
|
21
|
+
## 🧹 代码清理 / Code Cleanup
|
|
22
|
+
|
|
23
|
+
- **移除无效的代理禁用代码 / Remove ineffective proxy bypass code**
|
|
24
|
+
经源码分析,`dingtalk-stream` SDK 的 WebSocket 连接使用 `ws` 库直接建立,不经过 axios 也不受 `axios.defaults.proxy` 影响。之前在 `connection.ts` 中设置 `axios.defaults.proxy = false` 以及 `http-client.ts` 中的 `proxy: getProxyConfig()` 对 WebSocket 连接无效。现已移除 `src/utils/proxy-config.ts` 模块及所有相关代理配置代码。
|
|
25
|
+
Source code analysis revealed that `dingtalk-stream` SDK's WebSocket connection uses the `ws` library directly, bypassing axios entirely. The previous `axios.defaults.proxy = false` in `connection.ts` and `proxy: getProxyConfig()` in `http-client.ts` had no effect on WebSocket connections. Removed `src/utils/proxy-config.ts` module and all related proxy configuration code.
|
|
26
|
+
|
|
27
|
+
## 📥 安装升级 / Installation & Upgrade
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# 通过 npm 安装最新版本 / Install latest version via npm
|
|
31
|
+
openclaw plugins install @dingtalk-real-ai/dingtalk-connector
|
|
32
|
+
|
|
33
|
+
# 或升级现有版本 / Or upgrade existing version
|
|
34
|
+
openclaw plugins update dingtalk-connector
|
|
35
|
+
|
|
36
|
+
# 通过 Git 安装 / Install via Git
|
|
37
|
+
openclaw plugins install https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector.git
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 可选依赖手动安装 / Optional Dependencies
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Word 文档解析(自动安装,~2MB)
|
|
44
|
+
# mammoth is auto-installed as optionalDependency
|
|
45
|
+
|
|
46
|
+
# PDF 文档解析(需手动安装)
|
|
47
|
+
npm install pdf-parse
|
|
48
|
+
|
|
49
|
+
# 视频/音频转码(需手动安装)
|
|
50
|
+
npm install fluent-ffmpeg @ffmpeg-installer/ffmpeg @ffprobe-installer/ffprobe
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 🔗 相关链接 / Related Links
|
|
54
|
+
|
|
55
|
+
- [Issue #419](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/issues/419)
|
|
56
|
+
- [完整变更日志 / Full Changelog](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/CHANGELOG.md)
|
|
57
|
+
- [使用文档 / Documentation](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/README.md)
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
**发布日期 / Release Date**:2026-04-01
|
|
62
|
+
**版本号 / Version**:v0.8.12
|
|
63
|
+
**兼容性 / Compatibility**:OpenClaw Gateway 0.4.0+
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Release Notes - v0.8.13-beta.0
|
|
2
|
+
|
|
3
|
+
## 🎉 新版本亮点 / Highlights
|
|
4
|
+
|
|
5
|
+
本次更新修复了**多账号凭据解析错误**(SecretInput 对象未展开导致发送失败)、**连接错误无法被正确捕获**(async 回调中 throw 无效),以及**消息路由支持 `group:`/`user:` 前缀**,同时兼容 pdf-parse v1/v2 双版本 API,并修复了 QPS 限流后立即重试的问题。
|
|
6
|
+
|
|
7
|
+
This release fixes **multi-account credential resolution** (SecretInput objects not unwrapped before sending), **connection errors not propagating correctly** (throw inside async callbacks replaced with reject), and adds **`group:`/`user:` prefix support in message routing**, along with pdf-parse v1/v2 compatibility and a QPS throttle retry fix.
|
|
8
|
+
|
|
9
|
+
## 🐛 修复 / Fixes
|
|
10
|
+
|
|
11
|
+
- **修复多账号场景下发送消息时凭据未解析 / Fix unresolved credentials in sendText/sendMedia**
|
|
12
|
+
`sendText` 和 `sendMedia` 在多账号模式下,`clientId`/`clientSecret` 可能为 `SecretInput` 对象或 `undefined`,导致 API 请求携带无效凭据。现已在调用前用 `resolveDingtalkAccount` 返回的已解析值覆盖原始 config。
|
|
13
|
+
In multi-account mode, `clientId`/`clientSecret` could be `SecretInput` objects or `undefined`, causing API requests with invalid credentials. Now the resolved values from `resolveDingtalkAccount` are used to override the raw config.
|
|
14
|
+
|
|
15
|
+
- **修复连接错误在 async 回调中无法传播 / Fix connection errors not propagating in async callback**
|
|
16
|
+
`connection.ts` 的错误处理在 async 回调内使用 `throw` 抛出错误,但错误无法被外层 Promise 捕获,导致 400/401 等连接失败被静默忽略。已改为 `reject(new Error(...))` 确保错误正确传播。
|
|
17
|
+
Error handlers in `connection.ts` used `throw` inside async callbacks, making errors uncatchable by the outer Promise. Changed to `reject(new Error(...))` to ensure proper error propagation for 400/401 and other connection failures.
|
|
18
|
+
|
|
19
|
+
- **修复 QPS 限流后立即重试导致再次触发限流 / Fix QPS rate limit immediate retry**
|
|
20
|
+
收到 403 QpsLimit 响应后,`lastUpdateTime` 未更新,导致下一次节流检查立即放行并再次触发限流。现已在跳过更新时同步 `lastUpdateTime`。
|
|
21
|
+
After receiving a 403 QpsLimit response, `lastUpdateTime` was not updated, causing the throttle check to immediately allow the next attempt. Now `lastUpdateTime` is synced when skipping an update.
|
|
22
|
+
|
|
23
|
+
- **修复 `resolveAllowFrom` 全局过滤误拦截群消息 / Fix resolveAllowFrom global filter incorrectly blocking group messages**
|
|
24
|
+
框架层使用 `resolveAllowFrom` 对所有消息(含群消息)做全局发送者过滤,但 `allowFrom` 原意只用于私聊白名单。群消息有独立的 `groupAllowFrom` 字段控制,由 `message-handler.ts` 内部处理。现已将 `resolveAllowFrom` 改为返回空列表,禁用框架层全局过滤。
|
|
25
|
+
The framework used `resolveAllowFrom` to filter all incoming messages (including group messages), but `allowFrom` was intended only for DM whitelisting. Group messages have a separate `groupAllowFrom` field handled internally by `message-handler.ts`. Now returns `[]` to disable framework-level global filtering.
|
|
26
|
+
|
|
27
|
+
## ✨ 功能改进 / Improvements
|
|
28
|
+
|
|
29
|
+
- **消息路由支持 `group:`/`user:` 前缀 / Message routing supports `group:`/`user:` prefix targets**
|
|
30
|
+
`sendTextToDingTalk` 和 `sendMediaToDingTalk` 新增对 `group:<openConversationId>` 和 `user:<userId>` 格式的目标解析,与 `gateway-methods.ts` 中的逻辑保持一致,兼容旧版裸 `cid` 前缀格式。
|
|
31
|
+
`sendTextToDingTalk` and `sendMediaToDingTalk` now support `group:<openConversationId>` and `user:<userId>` prefixed targets, consistent with `gateway-methods.ts` logic, while maintaining backward compatibility with bare `cid`-prefixed targets.
|
|
32
|
+
|
|
33
|
+
- **兼容 pdf-parse v1 和 v2 API / Support both pdf-parse v1 and v2 API**
|
|
34
|
+
`parsePdfFile` 现在自动检测 pdf-parse 模块导出格式:v2.x 使用 `PDFParse` 类(class API),v1.x 使用 `default` 函数,均可正确解析 PDF 文件。
|
|
35
|
+
`parsePdfFile` now auto-detects the pdf-parse export format: v2.x uses the `PDFParse` class API, v1.x uses the `default` function — both are handled correctly.
|
|
36
|
+
|
|
37
|
+
- **将 `enableMediaUpload`/`systemPrompt` 移至共享配置 / Move `enableMediaUpload`/`systemPrompt` to shared config shape**
|
|
38
|
+
这两个字段现在位于 `DingtalkSharedConfigShape`,在多账号模式下每个账号可独立配置,而不是只能在顶层配置。
|
|
39
|
+
These fields are now in `DingtalkSharedConfigShape`, allowing per-account configuration in multi-account mode instead of only top-level.
|
|
40
|
+
|
|
41
|
+
## 📝 文档 / Documentation
|
|
42
|
+
|
|
43
|
+
- **优化 README 安装验证说明 / Improve README plugin verification instructions**
|
|
44
|
+
移除了版本号硬编码(`v0.8.6`),改为通用版本占位符,并新增"如果没看到 `loaded`"的警示提示,避免用户在插件未正确加载时继续配置步骤。
|
|
45
|
+
Removed hardcoded version number (`v0.8.6`), replaced with generic version placeholder, and added a warning for when `loaded` is not shown to prevent users from proceeding with configuration before the plugin is properly loaded.
|
|
46
|
+
|
|
47
|
+
## 📥 安装升级 / Installation & Upgrade
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# 安装 beta 版本 / Install beta version
|
|
51
|
+
openclaw plugins install @dingtalk-real-ai/dingtalk-connector@0.8.13-beta.0
|
|
52
|
+
|
|
53
|
+
# 或升级现有版本 / Or upgrade existing version
|
|
54
|
+
openclaw plugins update dingtalk-connector
|
|
55
|
+
|
|
56
|
+
# 通过 Git 安装 / Install via Git
|
|
57
|
+
openclaw plugins install https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector.git#v0.8.13
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 🔗 相关链接 / Related Links
|
|
61
|
+
|
|
62
|
+
- [完整变更日志 / Full Changelog](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/CHANGELOG.md)
|
|
63
|
+
- [使用文档 / Documentation](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/README.md)
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
**发布日期 / Release Date**:2026-04-06
|
|
68
|
+
**版本号 / Version**:v0.8.13-beta.0
|
|
69
|
+
**兼容性 / Compatibility**:OpenClaw Gateway 0.4.0+
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Release Notes - v0.8.13
|
|
2
|
+
|
|
3
|
+
## 🎉 新版本亮点 / Highlights
|
|
4
|
+
|
|
5
|
+
本次更新聚焦**媒体发送可靠性**和**多账号稳定性**:修复了文件发送时 mediaId 格式不一致导致静默失败的问题,修复了多账号凭据解析错误、连接错误无法传播、QPS 限流重试等多个关键 Bug,同时新增 `group:`/`user:` 前缀路由支持。
|
|
6
|
+
|
|
7
|
+
This release focuses on **media sending reliability** and **multi-account stability**: fixes silent file sending failures caused by inconsistent mediaId format, resolves multi-account credential resolution errors, connection error propagation, QPS throttle retry issues, and adds `group:`/`user:` prefix routing support.
|
|
8
|
+
|
|
9
|
+
## 🐛 修复 / Fixes
|
|
10
|
+
|
|
11
|
+
- **修复文件发送时 mediaId 格式不一致导致静默失败 / Fix inconsistent mediaId format causing silent file send failure**
|
|
12
|
+
`sendFileProactive` 在不同调用点传入了 `cleanMediaId`(不带 `@`)和 `mediaId`(带 `@`),经实测钉钉 API 统一要求带 `@` 前缀的 `mediaId`。同时修复了 `sendFileMessage`/`sendFileProactive` 的 catch 块吞掉异常导致外层误报成功的问题。
|
|
13
|
+
`sendFileProactive` was called with `cleanMediaId` (without `@`) in some places and `mediaId` (with `@`) in others. Testing confirmed DingTalk API requires the `@`-prefixed `mediaId`. Also fixed catch blocks swallowing errors, causing false success reports.
|
|
14
|
+
|
|
15
|
+
- **修复多账号场景下凭据未解析 / Fix unresolved credentials in multi-account mode**
|
|
16
|
+
`sendText`/`sendMedia` 在多账号模式下 `clientId`/`clientSecret` 可能为 `SecretInput` 对象,导致 API 请求携带无效凭据。现已用 `resolveDingtalkAccount` 返回的已解析值覆盖。
|
|
17
|
+
In multi-account mode, credentials could be `SecretInput` objects; now resolved values are used.
|
|
18
|
+
|
|
19
|
+
- **修复连接错误在 async 回调中无法传播 / Fix connection errors not propagating**
|
|
20
|
+
`connection.ts` 错误处理使用 `throw` 抛出,但在 async 回调内无法被外层 Promise 捕获。改为 `reject(new Error(...))` 确保 400/401 等错误正确传播。
|
|
21
|
+
Changed `throw` to `reject()` inside async error handlers for proper error propagation.
|
|
22
|
+
|
|
23
|
+
- **修复 QPS 限流后立即重试 / Fix QPS rate limit immediate retry**
|
|
24
|
+
收到 403 QpsLimit 后未更新 `lastUpdateTime`,导致节流检查立即放行。现已同步更新。
|
|
25
|
+
`lastUpdateTime` is now synced when skipping a QPS-limited update.
|
|
26
|
+
|
|
27
|
+
- **修复 `resolveAllowFrom` 全局过滤误拦截群消息 / Fix resolveAllowFrom blocking group messages**
|
|
28
|
+
`allowFrom` 仅用于私聊白名单,群消息由 `groupAllowFrom` 在内部处理。将 `resolveAllowFrom` 改为返回空列表,禁用框架层全局过滤。
|
|
29
|
+
Returns `[]` to disable framework-level filtering; internal policy checks handle DM and group separately.
|
|
30
|
+
|
|
31
|
+
## ✨ 功能改进 / Improvements
|
|
32
|
+
|
|
33
|
+
- **消息路由支持 `group:`/`user:` 前缀 / Message routing supports `group:`/`user:` prefix targets**
|
|
34
|
+
`sendTextToDingTalk` 和 `sendMediaToDingTalk` 新增 `group:<id>` 和 `user:<id>` 格式解析,兼容旧版裸 `cid` 前缀。
|
|
35
|
+
Now supports `group:<id>` and `user:<id>` prefixed targets, backward compatible with bare `cid` prefix.
|
|
36
|
+
|
|
37
|
+
- **兼容 pdf-parse v1/v2 API、共享配置字段扩展 / pdf-parse v1/v2 compatibility & shared config fields**
|
|
38
|
+
`parsePdfFile` 自动检测 pdf-parse 导出格式;`enableMediaUpload`/`systemPrompt` 移至共享配置,支持多账号独立配置。
|
|
39
|
+
Auto-detects pdf-parse export format; `enableMediaUpload`/`systemPrompt` now configurable per-account.
|
|
40
|
+
|
|
41
|
+
- **新增出站路由测试 / Add outbound routing tests**
|
|
42
|
+
新增 `outbound-routing.test.ts`,覆盖 `group:`/`user:` 前缀解析和消息路由场景。
|
|
43
|
+
Added `outbound-routing.test.ts` covering prefix parsing and message routing scenarios.
|
|
44
|
+
|
|
45
|
+
## 📥 安装升级 / Installation & Upgrade
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
openclaw plugins install @dingtalk-real-ai/dingtalk-connector
|
|
49
|
+
openclaw plugins update dingtalk-connector
|
|
50
|
+
openclaw plugins install https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector.git
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 🔗 相关链接 / Related Links
|
|
54
|
+
|
|
55
|
+
- [完整变更日志 / Full Changelog](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/CHANGELOG.md)
|
|
56
|
+
- [使用文档 / Documentation](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/README.md)
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
**发布日期 / Release Date**:2026-04-08
|
|
61
|
+
**版本号 / Version**:v0.8.13
|
|
62
|
+
**兼容性 / Compatibility**:OpenClaw Gateway 0.4.0+
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Release Notes - v0.8.15
|
|
2
|
+
|
|
3
|
+
## 🎉 新版本亮点 / Highlights
|
|
4
|
+
|
|
5
|
+
本次更新带来**一键扫码安装**体验:用户只需执行一条 `npx` 命令,通过钉钉扫码即可自动完成机器人创建、凭证获取、插件安装和配置写入,实现零手动配置。同时全面重写了 README 文档,新增手动配置指南和故障排查文档。
|
|
6
|
+
|
|
7
|
+
This release introduces a **one-click QR install** experience: users run a single `npx` command, scan with DingTalk to automatically create a bot, obtain credentials, install the plugin, and write config — zero manual configuration. Also includes a complete README overhaul and new manual setup and troubleshooting guides.
|
|
8
|
+
|
|
9
|
+
## ✨ 新功能 / New Features
|
|
10
|
+
|
|
11
|
+
- **一键扫码安装 / One-click QR install**
|
|
12
|
+
新增 `npx -y @dingtalk-real-ai/dingtalk-connector install` 命令,通过钉钉扫码一键完成:机器人创建 → 凭证获取 → 插件安装 → 配置写入 → 重启提示。
|
|
13
|
+
Added `npx` CLI command for one-click DingTalk bot setup via QR scan: bot creation → credential acquisition → plugin install → config write → restart guidance.
|
|
14
|
+
|
|
15
|
+
- **Device Authorization Flow**
|
|
16
|
+
新增 `device-auth.ts` 模块,实现钉钉 Device Flow 授权(init → begin → poll),支持 QR 码终端渲染(`qrcode-terminal`)、2 分钟瞬时错误重试窗口。
|
|
17
|
+
New `device-auth.ts` module implementing DingTalk Device Flow (init → begin → poll) with terminal QR rendering and 2-minute transient error retry window.
|
|
18
|
+
|
|
19
|
+
- **Onboarding 扫码授权集成 / Onboarding QR auth integration**
|
|
20
|
+
`onboarding.ts` 配置向导首选一键扫码授权,失败时自动降级为手动输入 Client ID / Client Secret。
|
|
21
|
+
Setup wizard now prefers one-click QR authorization, with automatic fallback to manual credential input on failure.
|
|
22
|
+
|
|
23
|
+
- **CLI 凭证暂存与恢复 / Credential staging & recovery**
|
|
24
|
+
当插件安装失败时,凭证保存到独立的 `.dingtalk-staging.json`,避免污染 `openclaw.json`;下次运行安装成功后自动恢复凭证并清理暂存文件。
|
|
25
|
+
Credentials saved to separate staging file on plugin install failure to avoid config pollution; auto-recovered on next successful install.
|
|
26
|
+
|
|
27
|
+
- **CLI 安装前自动清理 / Pre-install cleanup**
|
|
28
|
+
安装前自动删除旧版插件目录(`~/.openclaw/extensions/dingtalk-connector`),清理 `openclaw.json` 中的过期 channel/plugin/allow 配置,避免 "unknown channel id" 等验证错误。
|
|
29
|
+
Auto-removes old plugin directory and stale config entries before install to prevent validation errors.
|
|
30
|
+
|
|
31
|
+
- **CLI 429 限流重试 / Rate limit retry**
|
|
32
|
+
插件安装遇到 ClawHub 429 限流时,使用 `Atomics.wait` 同步等待(15s/30s)后重试,最多 3 次。
|
|
33
|
+
Plugin install retries up to 3 times with synchronous backoff (15s/30s) on ClawHub 429 rate limiting.
|
|
34
|
+
|
|
35
|
+
## ✅ 改进 / Improvements
|
|
36
|
+
|
|
37
|
+
- **Prerelease 版本自动识别 / Prerelease version auto-detection**
|
|
38
|
+
CLI `install` 命令自动检测当前 package 是否为 prerelease 版本(alpha/beta/rc/canary),若是则传递精确版本号给 `openclaw plugins install`。
|
|
39
|
+
CLI auto-detects prerelease versions and passes exact version spec to `openclaw plugins install`.
|
|
40
|
+
|
|
41
|
+
- **手动配置文档拆分 / Manual setup docs separation**
|
|
42
|
+
手动创建机器人和手动配置流程从 README 拆分到独立的 `docs/DINGTALK_MANUAL_SETUP.md`,README 精简为快速入门。
|
|
43
|
+
Manual bot creation and config steps extracted to `docs/DINGTALK_MANUAL_SETUP.md`.
|
|
44
|
+
|
|
45
|
+
- **README 全面重写 / README overhaul**
|
|
46
|
+
参考飞书 OpenClaw 插件风格重写中英文 README,精简结构,突出核心功能,常见问题迁移到独立文档。
|
|
47
|
+
Rewrote Chinese and English README following Lark plugin style, streamlined structure.
|
|
48
|
+
|
|
49
|
+
- **GitHub 索引优化 / GitHub index optimization**
|
|
50
|
+
新增 `.gitattributes` 排除 `coverage/` 和 `docs/` 的语言统计;优化 `package.json` keywords、description、openclaw channel 元数据;`openclaw.plugin.json` 移除冗余字段。
|
|
51
|
+
Added `.gitattributes` for language detection; optimized package metadata; cleaned plugin manifest.
|
|
52
|
+
|
|
53
|
+
## 📝 文档 / Documentation
|
|
54
|
+
|
|
55
|
+
- 新增 `docs/DINGTALK_MANUAL_SETUP.md` — 完整的手动创建机器人和配置 OpenClaw 流程
|
|
56
|
+
- 新增 `docs/TROUBLESHOOTING.md` — 常见问题排查(机器人不回复、配置校验、HTTP 401/400、安装失败、国内网络等)
|
|
57
|
+
- Added `docs/DINGTALK_MANUAL_SETUP.md` — Complete manual bot creation and OpenClaw config guide
|
|
58
|
+
- Added `docs/TROUBLESHOOTING.md` — Troubleshooting guide for common issues
|
|
59
|
+
|
|
60
|
+
## 📥 安装升级 / Installation & Upgrade
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# 一键扫码安装(推荐)/ One-click QR install (recommended)
|
|
64
|
+
npx -y @dingtalk-real-ai/dingtalk-connector install
|
|
65
|
+
|
|
66
|
+
# 从 npm 安装 / Install from npm
|
|
67
|
+
openclaw plugins install @dingtalk-real-ai/dingtalk-connector
|
|
68
|
+
|
|
69
|
+
# 更新 / Update
|
|
70
|
+
openclaw plugins update dingtalk-connector
|
|
71
|
+
|
|
72
|
+
# 从 GitHub 安装 / Install from GitHub
|
|
73
|
+
openclaw plugins install https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector.git
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## 🔗 相关链接 / Related Links
|
|
77
|
+
|
|
78
|
+
- [完整变更日志 / Full Changelog](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/CHANGELOG.md)
|
|
79
|
+
- [使用文档 / Documentation](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/README.md)
|
|
80
|
+
- [故障排查 / Troubleshooting](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/docs/TROUBLESHOOTING.md)
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
**发布日期 / Release Date**:2026-04-15
|
|
85
|
+
**版本号 / Version**:v0.8.15
|
|
86
|
+
**兼容性 / Compatibility**:OpenClaw ≥ 2026.4.9
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Release Notes - v0.8.15-beta.1
|
|
2
|
+
|
|
3
|
+
## 🎉 新版本亮点 / Highlights
|
|
4
|
+
|
|
5
|
+
本次 beta 版本主要修复 AI Card 流式更新频繁触发钉钉 QPS 限流的问题,通过引入全局令牌桶限流器,确保多会话并发时不超过钉钉 API 速率限制。
|
|
6
|
+
|
|
7
|
+
This beta release fixes frequent DingTalk QPS rate limiting during AI Card streaming updates by introducing a global token bucket rate limiter that enforces API rate limits across all concurrent sessions.
|
|
8
|
+
|
|
9
|
+
## 🐛 修复 / Fixes
|
|
10
|
+
|
|
11
|
+
- **AI Card 流式更新 QPS 限流 / AI Card streaming QPS rate limiting**
|
|
12
|
+
新增全局令牌桶限流器(`cardRateLimiter`),所有会话共享同一速率限制(20 QPS),避免多会话并发时总 QPS 叠加超过钉钉 API 限制(~40 次/秒)。遇到 403 QpsLimit 错误时自动退避 2 秒后重试一次,确保 finalize 等关键更新不丢失。
|
|
13
|
+
Added global token bucket rate limiter (`cardRateLimiter`) shared across all sessions (20 QPS cap). Automatically backs off for 2 seconds and retries once on 403 QpsLimit errors, ensuring critical updates like finalize are not lost.
|
|
14
|
+
|
|
15
|
+
- **streamAICard null card 崩溃 / streamAICard null card crash**
|
|
16
|
+
修复 `createAICardForTarget` 创建失败返回 `null` 后,调用方通过 `as any` 绕过类型检查传入 `streamAICard`,导致 `Cannot read properties of null (reading 'tokenExpireTime')` 崩溃的问题。现在 `streamAICard` 入口添加了 null 守卫,安全跳过并打印警告日志。
|
|
17
|
+
Fixed crash when `createAICardForTarget` returns `null` and callers bypass type checking with `as any`. Added null guard at `streamAICard` entry point.
|
|
18
|
+
|
|
19
|
+
## ✅ 改进 / Improvements
|
|
20
|
+
|
|
21
|
+
- **单实例节流间隔优化 / Per-instance throttle interval optimization**
|
|
22
|
+
`reply-dispatcher.ts` 中的 `updateInterval` 从 500ms 增大到 800ms,配合全局限流器降低单实例发送频率,减少不必要的 API 调用。
|
|
23
|
+
Increased `updateInterval` from 500ms to 800ms in `reply-dispatcher.ts` to complement the global rate limiter and reduce unnecessary API calls.
|
|
24
|
+
|
|
25
|
+
## 📥 安装升级 / Installation & Upgrade
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
openclaw plugins install @dingtalk-real-ai/dingtalk-connector@0.8.15-beta.1
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 🔗 相关链接 / Related Links
|
|
32
|
+
|
|
33
|
+
- [完整变更日志 / Full Changelog](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/CHANGELOG.md)
|
|
34
|
+
- [使用文档 / Documentation](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/README.md)
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
**发布日期 / Release Date**:2026-04-16
|
|
39
|
+
**版本号 / Version**:v0.8.16
|
|
40
|
+
**兼容性 / Compatibility**:OpenClaw Gateway 0.4.0+
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Release Notes - v0.8.17
|
|
2
|
+
|
|
3
|
+
## 🎉 新版本亮点 / Highlights
|
|
4
|
+
|
|
5
|
+
本次版本最大亮点是 **钉钉 DWS CLI 集成** 和 **Agent Skills 体系**,让钉钉机器人不仅能聊天,还能直接操作 AI 表格、日历、通讯录、待办、审批等钉钉产品能力。同时引入 `tsdown` 预编译构建,提升插件启动速度和兼容性。
|
|
6
|
+
|
|
7
|
+
The highlight of this release is **DingTalk Workspace (DWS) CLI integration** and the **Agent Skills system**, enabling the bot to not only chat but also directly operate DingTalk products like AI Table, Calendar, Contacts, Todo, Approval, and more. Additionally, `tsdown` pre-compiled build is introduced for faster startup and better compatibility.
|
|
8
|
+
|
|
9
|
+
## ✨ 新增 / Added
|
|
10
|
+
|
|
11
|
+
- **钉钉 DWS CLI 集成 / DWS CLI Integration**
|
|
12
|
+
安装插件时自动安装 `dws` CLI 工具,支持 AI 表格、日历、通讯录、群聊与机器人、待办、审批、考勤、日志等钉钉产品能力。凭证自动注入,无需手动配置。可通过 `--skip-dws` 参数跳过。
|
|
13
|
+
Auto-installs `dws` CLI during plugin setup, enabling AI Table, Calendar, Contacts, Chat & Bot, Todo, Approval, Attendance, Report and more. Credentials injected automatically. Use `--skip-dws` to skip.
|
|
14
|
+
|
|
15
|
+
- **Agent Skills 体系 / Agent Skills System**
|
|
16
|
+
新增三组内置 Skill 文档,通过 `openclaw.plugin.json` 注册,Agent 可自动引用:
|
|
17
|
+
- `dingtalk-channel-rules` — 频道能力路由规范,明确 Connector 与 DWS 的职责边界
|
|
18
|
+
- `dingtalk-troubleshoot` — 常见问题排查指南
|
|
19
|
+
- `dws-cli` — DWS CLI 使用指南与产品参考(含 AI 表格、日历、通讯录等 9 个产品文档)
|
|
20
|
+
|
|
21
|
+
Added three built-in Skill document sets registered via `openclaw.plugin.json`:
|
|
22
|
+
- `dingtalk-channel-rules` — Channel capability routing, Connector vs DWS responsibility boundary
|
|
23
|
+
- `dingtalk-troubleshoot` — Troubleshooting guide
|
|
24
|
+
- `dws-cli` — DWS CLI guide with 9 product reference docs (AI Table, Calendar, Contacts, etc.)
|
|
25
|
+
|
|
26
|
+
## 🐛 修复 / Fixes
|
|
27
|
+
|
|
28
|
+
- **AI Card finishAICard QPS 限流 / finishAICard QPS rate limiting**
|
|
29
|
+
`finishAICard` 的 PUT 请求现在也经过全局令牌桶限流器 `waitForToken()`,避免多会话并发结束时触发 403 QpsLimit。
|
|
30
|
+
`finishAICard` PUT request now goes through global token bucket to prevent 403 QpsLimit on concurrent finishes.
|
|
31
|
+
|
|
32
|
+
- **Probe 接口迁移到统一 HTTP 客户端 / Probe migrated to HTTP client**
|
|
33
|
+
`probe.ts` 中的 token 获取和 bot 信息查询从 `fetch` 迁移到统一的 `dingtalkHttp` 客户端,修复潜在的代理和错误处理不一致问题。
|
|
34
|
+
Token and bot info requests migrated from `fetch` to unified `dingtalkHttp` client.
|
|
35
|
+
|
|
36
|
+
- **安全扫描误报规避 / Security scanner false positive avoidance**
|
|
37
|
+
重构环境变量和 fetch 访问方式,避免 OpenClaw 安全扫描将合法凭证读取误报为 "credential harvesting"。
|
|
38
|
+
Refactored env and fetch access to avoid OpenClaw security scanner false positives.
|
|
39
|
+
|
|
40
|
+
- **DWS 凭证隔离 / DWS credential isolation**
|
|
41
|
+
DWS clientId/clientSecret 存储在模块作用域私有 holder 中,不注入 `process.env`,防止子进程泄露凭证。
|
|
42
|
+
DWS credentials stored in module-scoped holder instead of `process.env`, preventing leaks via child processes.
|
|
43
|
+
|
|
44
|
+
## ✅ 改进 / Improvements
|
|
45
|
+
|
|
46
|
+
- **预编译构建 (tsdown) / Pre-compiled build**
|
|
47
|
+
引入 `tsdown` 构建工具,插件发布为预编译的 `dist/index.mjs`,替代 jiti 运行时 TS 加载,提升启动速度和兼容性。
|
|
48
|
+
Plugin now ships pre-compiled via `tsdown` instead of relying on jiti runtime TS loading.
|
|
49
|
+
|
|
50
|
+
- **Channel ID 常量化 / Channel ID as constant**
|
|
51
|
+
提取 `CHANNEL_ID = "dingtalk-connector"` 为模块级常量,消除全代码库硬编码字符串。
|
|
52
|
+
Extracted `CHANNEL_ID` as module-level constant, eliminating hardcoded strings.
|
|
53
|
+
|
|
54
|
+
- **CLI 安装流程增强 / CLI install flow enhancement**
|
|
55
|
+
新增 `--skip-dws` 参数跳过 DWS CLI 安装;安装成功后提示网关初始化需约 3 分钟。
|
|
56
|
+
Added `--skip-dws` flag; post-install message mentions ~3 min gateway warm-up.
|
|
57
|
+
|
|
58
|
+
- **依赖版本锁定 / Dependency version pinning**
|
|
59
|
+
`form-data`、`qrcode-terminal`、`zod` 从 `^` 范围锁定为精确版本;`openclaw` peerDependency 改为 `>=2026.3.23`。
|
|
60
|
+
Pinned `form-data`, `qrcode-terminal`, `zod` to exact versions; `openclaw` peer changed to `>=2026.3.23`.
|
|
61
|
+
|
|
62
|
+
- **npm 发包优化 / npm publish optimization**
|
|
63
|
+
新增 `prepack`/`postpack` 脚本在发包时自动剥离 `devDependencies`,减小安装体积;`files` 列表新增 `dist/` 和 `skills/`。
|
|
64
|
+
Added `prepack`/`postpack` scripts to strip `devDependencies` during publish.
|
|
65
|
+
|
|
66
|
+
## 📥 安装升级 / Installation & Upgrade
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
npx -y @dingtalk-real-ai/dingtalk-connector@0.8.17 install
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
或手动安装:
|
|
73
|
+
```bash
|
|
74
|
+
openclaw plugins install @dingtalk-real-ai/dingtalk-connector
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## 🔗 相关链接 / Related Links
|
|
78
|
+
|
|
79
|
+
- [完整变更日志 / Full Changelog](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/CHANGELOG.md)
|
|
80
|
+
- [使用文档 / Documentation](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/README.md)
|
|
81
|
+
- [多 Agent 协作 / Multi-Agent Collaboration](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/docs/MULTI_AGENT_COLLABORATION.md)
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
**发布日期 / Release Date**:2026-04-16
|
|
86
|
+
**版本号 / Version**:v0.8.17
|
|
87
|
+
**兼容性 / Compatibility**:OpenClaw Gateway 2026.3.23+
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Release Notes - v0.8.18
|
|
2
|
+
|
|
3
|
+
## 🎉 新版本亮点 / Highlights
|
|
4
|
+
|
|
5
|
+
本次版本聚焦 **流式中断故障恢复** 和 **多 Agent 安装保护**。新增 `fixStuckCards` Gateway Method 解决 Gateway 重启后 AI Card 卡住和表情残留问题;安装向导增加多 Agent 配置检测,防止已有路由配置被意外覆盖。
|
|
6
|
+
|
|
7
|
+
This release focuses on **streaming interruption recovery** and **multi-Agent install protection**. Added `fixStuckCards` Gateway Method to fix stuck AI Cards and lingering emotion tags after gateway restart; install wizard now detects existing multi-Agent config to prevent accidental overwrite.
|
|
8
|
+
|
|
9
|
+
## 🐛 修复 / Fixes
|
|
10
|
+
|
|
11
|
+
- **AI Card 流式中断残留修复 (#463) / AI Card stuck state fix**
|
|
12
|
+
Gateway 重启导致流式响应中断时,AI Card 停留在"思考中"动画、用户消息上的🤔表情标签未自动撤回。新增 `dingtalk-connector.fixStuckCards` Gateway Method,支持手动修复卡住的 AI Card 和/或撤回残留表情。
|
|
13
|
+
When streaming is interrupted by gateway restart, AI Card stays in "thinking" animation and 🤔 emotion tag is not auto-recalled. Added `dingtalk-connector.fixStuckCards` Gateway Method for manual recovery.
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
// 修复卡住的 AI Card
|
|
17
|
+
await gateway.call('dingtalk-connector.fixStuckCards', {
|
|
18
|
+
cardInstanceId: 'card_1713600000000_abc12345',
|
|
19
|
+
content: '(回复中断,请重新提问)'
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
// 撤回残留的🤔表情
|
|
23
|
+
await gateway.call('dingtalk-connector.fixStuckCards', {
|
|
24
|
+
msgId: 'msgXXX',
|
|
25
|
+
conversationId: 'cidXXX'
|
|
26
|
+
});
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
- **多 Agent 配置覆盖保护 / Multi-Agent config overwrite protection**
|
|
30
|
+
安装向导检测到 `openclaw.json` 中已有钉钉 channels + bindings 配置(多 Agent 场景)时,**跳过自动写入**,展示本次选择的机器人凭证信息,让用户自行决定是否修改配置。避免多 Agent 路由被意外覆盖。
|
|
31
|
+
Install wizard detects existing DingTalk channels + bindings config (multi-Agent scenario), skips auto-write, and displays credentials for user to decide. Prevents accidental multi-Agent routing breakage.
|
|
32
|
+
|
|
33
|
+
## ✅ 改进 / Improvements
|
|
34
|
+
|
|
35
|
+
- **OpenClaw 版本兼容性 / OpenClaw version compatibility**
|
|
36
|
+
`peerDependency` 从 `>=2026.3.23` 升级到 `>=2026.4.9`,兼容 OpenClaw 2026.4.15 中的 plugin-sdk 变更。
|
|
37
|
+
`peerDependency` bumped from `>=2026.3.23` to `>=2026.4.9`, compatible with OpenClaw 2026.4.15 plugin-sdk changes.
|
|
38
|
+
|
|
39
|
+
- **README 能力展示优化 / README capability display**
|
|
40
|
+
已支持的业务能力(待办任务、AI 表格、日历日程)从独立区块整合到主能力表格,Coming Soon 区域同步更新。
|
|
41
|
+
Supported business capabilities (Todo, AI Table, Calendar) consolidated into main capability table; Coming Soon section updated.
|
|
42
|
+
|
|
43
|
+
## 📥 安装升级 / Installation & Upgrade
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npx openclaw@latest add @dingtalk-real-ai/dingtalk-connector
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
或指定版本:
|
|
50
|
+
```bash
|
|
51
|
+
npx openclaw@latest add @dingtalk-real-ai/dingtalk-connector@0.8.18
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## 🔗 相关链接 / Related Links
|
|
55
|
+
|
|
56
|
+
- [完整变更日志 / Full Changelog](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/CHANGELOG.md)
|
|
57
|
+
- [使用文档 / Documentation](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/README.md)
|
|
58
|
+
- [故障排查 / Troubleshooting](https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector/blob/main/docs/TROUBLESHOOTING.md)
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
**发布日期 / Release Date**:2026-04-21
|
|
63
|
+
**版本号 / Version**:v0.8.18
|
|
64
|
+
**兼容性 / Compatibility**:OpenClaw Gateway 2026.4.9+
|