Appearance
v3.6.0 发布说明
本次 minor 版本聚焦 DingTalk Device Flow 自动注册、AI Card v2 展示能力、通道模块拆分、旁路问答体验,以及消息/媒体稳定性修复。
最新版本入口:latest.md
✨ 功能与体验改进
1. DingTalk Device Flow 自动注册
- 新增 DingTalk 设备注册与 setup wizard 接入
PR #537(by @soimy)为安装配置流程加入 DingTalk Device Flow 自动注册能力,减少手动复制企业机器人凭据的步骤,并补齐device-registration、onboarding、配置 schema 与测试覆盖。
2. AI Card v2 与卡片内容表现
实现 AI Card template v2
PR #480(by @soimy)引入更丰富的卡片 block 内容、action button、状态行渲染、运行用量记录和卡片运行状态登记,提升复杂回复、工具过程与最终回答在 DingTalk 卡片中的呈现质量。
支持卡片内 Markdown 图片重定向上传
- 本周期新增卡片 Markdown 图片重定向逻辑,在需要时将图片资源转为 DingTalk 可投递的媒体形态,降低卡片内容因外链或平台限制而展示失败的概率。
3. /btw 旁路问答
- 旁路 session lock 处理临时追问
PR #508(by @BrilliantWang)让/btwside question 能绕过主会话锁,避免长任务占用会话时临时问题被阻塞,同时补齐独立投递与集成测试。
🛠 修复与稳定性
修复 CLI 启动时的循环 import RangeError
PR #521(by @zhumin)拆解 3 处循环依赖,降低 CLI 与宿主加载插件时出现递归初始化错误的风险。
已完成卡片 session recovery 后改走 markdown fallback
PR #518(by @zhumin)修复 session recovery 更新已完成卡片时的投递路径,避免对 finished card 继续做不合适的卡片更新。
音频文件默认按附件发送
PR #517(by @zhumin)将默认音频发送语义调整为 attachment,避免误走语音消息类型带来的兼容性问题。
完善详细
chatRecordpayload 处理PR #525(by @cuyua9)补强 DingTalk 聊天记录类 payload 的解析和引用场景覆盖,改善复杂转发/引用消息的上下文恢复能力。
🧩 架构与测试
继续瘦身
src/channel.ts并拆分通道职责- 本周期将 gateway、outbound、channel actions、channel status 等职责进一步拆到独立模块,保持
channel.ts作为装配层,和docs/contributor/architecture.*.md中的模块边界一致。
- 本周期将 gateway、outbound、channel actions、channel status 等职责进一步拆到独立模块,保持
拆分 inbound-handler 测试并隔离状态目录
- 大型入站处理测试被拆分到 quote、media、commands、card、ack、subagent、access 等更聚焦的测试文件中,并通过
test(ci): isolate inbound-handler state dirs降低测试间状态串扰。
- 大型入站处理测试被拆分到 quote、media、commands、card、ack、subagent、access 等更聚焦的测试文件中,并通过
📚 文档与配置
补充
cardAtSender配置参考PR #529(by @BrilliantWang)在用户配置参考表中补齐cardAtSender,让卡片 @ 发送者行为更容易被发现和配置。
自动生成发布侧边栏条目
PR #511(by @soimy)修复文档站发布侧边栏维护方式,降低新增版本说明时漏改导航的概率。
🤝 鸣谢
感谢本版本周期的所有贡献者:
- @soimy
- @BrilliantWang
- @cuyua9
- @zhumin
发布页面:https://github.com/soimy/openclaw-channel-dingtalk/releases/tag/v3.6.0
Full Changelog: https://github.com/soimy/openclaw-channel-dingtalk/compare/v3.5.3...v3.6.0