Skip to content

Backlog / Prioritized TODO

用于持续跟踪 openclaw-channel-dingtalk 的任务优先级、推进顺序和治理项。


P0

1. 消息接收稳定性 / 长时间待机可靠性

相关 Issues:

任务:

  • 跟进 #550 的 IPv6 路由异常排障方案:维护者倾向先用 NODE_OPTIONS=--dns-result-order=ipv4first、resolver/代理等宿主机层处理,暂不在插件层新增 OPENCLAW_DINGTALK_FORCE_IPV4 API;优先沉淀 troubleshooting 文档,若更多环境反复出现再评估代码兜底
已完成:

2. AI Card 发送链路一致性

相关 Issues:

任务:

  • 复盘 #363 关闭未合并方案与当前主线差异,确认其风险点已被后续修复覆盖
  • 跟进 #357 升级后“卡片仅处理中”反馈,核对 cardRealTimeStream 默认值与迁移提示
  • 跟进 #358/#541 的表格转换后续(是否移除历史 convertMarkdownTablesToPlainText 路径),补钉钉 markdown 表格分隔行提示与跨端渲染回归
  • 跟进 #379 的“上游返回 0 字节时钉钉前端无错误反馈”场景,明确插件侧兜底提示与日志建议(/verbose on)边界
  • 跟进 #407 的“card 模式下无回复 + ackReaction 不显示”现场,区分卡片发送链路异常与 thinking 反馈配置问题
  • 跟进 #538 的 thinking-only assistant message 静默丢弃:先用 v3.6.1 复测;若仍可复现,评估 thinking 降级为 text 或显式“模型输出格式异常”提示,避免用户无感知
  • 跟进 #551 的 AI Card 二次流式/合并回归:复核长输出与 Markdown 图片 file:// 场景下是否重复追加内容和重复发送图片,重点验证用户 2026-05-06 反馈的“删除图片引用容器组件 + 删除/替换下方 AI 流式富文本块”模板调整是否能同时保留图片发送与上方流式输出,并确认自定义卡片模板变量说明是否足够支撑用户侧实验
  • 复核 #419 关闭结论:确认“会话锁外提前建卡/空 Done 卡片”修复是否已入 main;若未落地,按最小补丁重提
已完成:

3. 文件上传 / 文件读取 / 文件预览 / 大文件链路

相关 Issues:

任务:

  • 核对基础文件发送能力的当前边界
  • 拆分文件上传、读取、预览、扩展名处理、大文件、钉盘访问子任务
  • 为每个子任务补最小复现和验收标准
  • 明确哪些属于补尾,哪些需要新增开发
  • 复核 #315 场景在当前版本中的行为与诊断提示是否一致
  • 评估 #298 的附件正文抽取边界(类型/长度/失败回退)与现有文件链路兼容性
  • 跟进 #207 新增进展:robotCode 已配置仍失败,补充“企业认证/权限付费门槛”前置条件说明
  • #366 的“文本正常但文件发送失败”场景补充到文件链路最小复现矩阵,并对齐与 #207/#315 的同源性判断
  • 合并 #270 的“仅文件占位符”现场日志,补齐“下载成功但提取失败”与“未落盘”两类分流排障步骤
  • 跟进 #391 的钉盘自然语言检索诉求,明确“仅引用直发/文件名模糊搜索/全量语义搜索”分级能力与前置权限
  • 跟进 #505/#482 的“原始文件名透传 / 文件名显示异常”回归,确认原始文件名已透传到 saveMediaBuffer 与消息上下文链路,并区分插件侧透传与钉钉落地文件重命名
  • 跟进 #397 的 sandbox 路径兼容缺口,sendMedia -> uploadMedia 已补齐 loadWebMedia 桥接能力
  • 跟进 #411 恢复“附件抽取文本注入 inbound body”修复并确认 quotedRef 链路已补齐(file/audio/video + Step 0 下载)
  • 补充 #415 单聊收文件失败最小复现:区分“单聊附件入站限制”与“提取/落盘链路异常”
  • 跟进 #422 的“模型不会触发文件发送动作”反馈,补充提示词/动作能力边界说明与可复现样例
  • 跟进 #430 群聊文件读取反馈:确认 #411 发布版本已覆盖“引用文件 + @Bot”路径,并补权限/时效性说明与版本提示
  • 跟进 #442 入站附件下载超时阻塞问题,补“第二跳下载 timeout + host 日志”回归
  • (拟完成,请评估)跟进 #452/#454 的 messaging 分域迁移 PR,确认 quoted-file-serviceattachment-text-extractor 搬迁后文件链路回归覆盖完整

4. 图片 / 语音 / 媒体链路补强

相关 Issues:

任务:


P1

5. 引用消息 / chatRecord / 转发记录解析收口

相关 Issues:

任务:

6. 建立 Issue 提交标准化

任务:

  • 新增 Bug report 模板
  • 新增 Feature request 模板
  • 新增 Regression report 模板
  • 新增 Docs / onboarding 模板
  • 统一必填字段:版本、部署方式、AI Card、messageType、复现步骤、预期/实际、日志、复现稳定性
  • 建立标签标准:stability / streaming / media / files / ai-card / multi-agent / docs
  • 在 README 或贡献文档中补提单说明

7. 建立 PR / Issue 自动化流程

相关参考:

任务:

  • 新增 PR Template
  • 增加 Issue / PR labeler
  • 增加 stale 自动提醒
  • 增加 needs-info 自动提醒
  • 增加 Closes #... / Refs #... 校验
  • 增加 PR CI gate:type-check / lint / test
  • 增加 release note automation
  • 规划自动化分阶段落地顺序

P2

8. 多账号 / 多 agent / schema 与路由配置收敛

相关 Issues:

任务:

9. 支持群聊 @人 / @all

相关 Issues:

任务:

  • (拟完成,请评估)明确 @单人 需求范围
  • 明确 @多人 需求范围
  • 明确 @all 需求范围
  • 设计失败降级与兼容行为
  • 整理 #288/#305 重复诉求,收敛为 #67 验收标准
  • 同步 #486 的平台侧结论:明确“仅 @所有人”不会触发机器人回调,并补“同时 @机器人 / 改走 webhook”两条替代路径
  • 跟进 #305 新增用户追问,补充当前版本可行配置与仍未覆盖场景的状态说明
  • 跟进 #353 最新追问(是否排期),补当前“仅 @sender 能力”与“@指定成员待规划”状态说明
  • 跟进 #417 的“触发全员工作通知”风险,补充 @all 防护说明与默认关闭/显式开启策略
  • 合并 #522 的 AI Card 群聊可追溯诉求:明确应走 atUsers、引用原消息,还是与 #480 的卡片引用回复方案组合交付
  • 明确 card 模式下 @sender 通知能力边界,避免与“@指定成员”诉求混淆(#369)

10. 支持对话打断 / 取消任务

相关 Issues:

任务:

  • 明确用户主动取消的交互形式
  • 明确长任务中断机制
  • 明确中断后状态回收方式
  • 明确 UI / 提示语反馈
  • 明确 ACP 最小可用范围(/acp spawn)及 status/steer/cancel 分阶段目标(#310)
  • (拟完成,请评估)跟进 #508/btw 旁路问答方案,确认“绕过 session lock + 强制 markdown + 不新建卡片”在实机卡片/群聊场景稳定
  • 跟进 #489 的原生审批卡片方案,确认 approval callback / 文本命令回退 / origin surface 投递边界后再决定是否推进
  • 评估 #427 的“停止指令绕过 session 锁”方案与现有卡片停止流程整合边界(避免空卡片 finalize)
  • 同步 #531 AI Card stop button 中止语义反馈:issue 已随 #495 回滚 v2 hybrid streaming 关闭,后续若恢复卡片按钮驱动中止能力,需验证底层 embedded run abort 与卡片 finalize 状态一致

相关 Issues:

任务:


P3

12. 流式与响应时延

相关 Issues:

任务:

  • 评估 20 秒延迟是否仅在超大规模部署下发生
  • 评估个人场景是否真的需要真流式
  • 评估消息更新 API 配额消耗
  • 评估低更新频率的替代方案
  • 修复 chunk 模式仅显示增量字符的问题
  • 给出“继续投入 / 保持现状”的结论
  • 跟进 #416 的“分步骤执行但钉钉端最终一次性可见”反馈,明确是通道节流策略、上游 buffering 还是客户端展示限制
  • 回归 #341 引入的实时流式开关与默认值,验证“时延改善 vs API 成本”是否达到可接受平衡
  • 跟进 #414 最新讨论:核对 #447 是否已恢复 markdown 增量时间线,排查后续 card 修复是否造成 markdown 回退,并补真机复现记录与文档说明
  • 跟进 #425 乱序反馈,补“卡片模式/markdown 模式/客户端顺序渲染差异”对照复现记录

13. README / 截图 / onboarding / 配置说明补齐

相关 Issues:

任务:

  • (拟完成,请评估)补 README 截图
  • 补 onboarding 示例
  • (拟完成,请评估)跟进 #537 的 DingTalk Device Flow 自动注册 onboarding:已合并并关闭扫码绑定诉求 #532,仍建议补一次手动扫码/失败回退实机验证
  • 补配置说明
  • 补常见问题
  • 补排障说明
  • 增补 400/protocol mismatch 常见排障示例与配置核对清单(#243/#303)
  • 补充 dingtalk.docs.* gateway methods 的使用示例与权限/参数说明(#301)
  • 整合 #328 的多 bot 多 agent 绑定示例到 onboarding/FAQ,减少与 #317 相关配置误解
  • 补充 debug -> dwClientDebug 的迁移说明与兼容窗口说明(#337)
  • 增补“钉钉上游能力边界”FAQ:项目管理接口、文档表格编辑、消息输出类型限制(#293/#340/#342)
  • 增补“主动消息发送”FAQ 与前置条件(robotCode、会话预热、机器人类型权限、流式模式差异)(#144/#355)
  • (拟完成,请评估)跟进 #527dingtalk-connector.* Gateway RPC 兼容:已合并,后续仅需观察兼容 namespace 使用反馈与文档理解成本
  • 增补“定时/主动发送到指定群”说明(conversationId 直发 + displayNameResolution 能力与版本门槛)(#376/#372)
  • 合并 #455 追问:补充 cron/jobs.jsonconversationId: group:cid...session_key 两种定向发送写法示例
  • (拟完成,请评估)跟进 #519 的 CLI 子命令加载噪音:循环依赖已拆除,待补一次发布后 CLI 子命令真实安装路径回归确认噪音已消失
  • 合并 #520 的 SDK 兼容结论:明确 message send 在 PR #499 之后依赖 openclaw >= 2026.4.5,补版本矩阵、升级提示与低版本保护策略
  • 增补“Markdown 表格渲染差异”说明(客户端差异 + 自定义机器人 vs 应用机器人;#192 已按 stale 治理关闭,#358 已关闭)
  • 补充 gatewayToken 缺失/错误时的配置排障指引与默认回退行为说明(#370)
  • (拟完成,请评估)跟进 #402/#404/#405 安装失败闭环:补版本兼容矩阵与升级指引,并同步已由 #406 修复的范围边界
  • 跟进 #413 的“插件内嵌 openclaw 目录”安装反馈:补充“全新安装仍可出现目录”的复现结论与清理/规避建议
  • 基于 #226 2026-03-25 新线索(竞品疑似可读群聊)补一条能力边界说明:若无公开 API 支持则保持 wontfix,避免误导承诺
  • 跟进 #421 的 Windows 路径报错反馈:在 FAQ 明确“旧版本(v2.x)升级到 v3.x”优先路径与校验步骤
  • 跟进 #423/#426/#434/#435 安装失败反馈:补“安装方式 + OpenClaw 最低版本 + semver 兼容”检查清单
  • 合并 #498/#502 的兼容性结论:确认 v3.5.3 已修复 telegram-core 导入缺失,但 qa-lab / install.runtime 安装噪音仍属上游 OpenClaw 打包问题,并补最低兼容版本与升级/回退指引
  • 补充 #434/#435 最新进展:标注 clawhub 安装路径缺陷与 semver 紧急修复(b21e501)的适用边界,给出临时 git 安装指引
  • (拟完成,请评估)跟进 #552 的 OpenClaw 2026.5.3+ 安装失败:#553 已合并并关闭 issue,后续同时回归 npm 包安装、本地 tarball 安装与源码目录安装路径,补充 scripts/ 仅开发使用且不随 npm/clawhub 包发布的说明
  • 同步 #445 配置字段收敛(移除 corpId/agentId/robotCode)与 README/onboarding 更新,减少安装与升级期配置歧义
  • 补充 cardAtSender 配置参考说明,确保字段类型、默认值与群聊 @sender 行为说明同步到 reference 文档
  • 评估 #393 的 structured real-device debug sessions 文档/脚本方案,决定合并范围与最小维护面

14. 群聊历史滚动摘要 /summary 命令

任务:

  • 同步 #331 状态变更:PR 已关闭未合并,原范围拆分为 #440(message context metadata)与 #441(owner-only /summary)
  • 跟进 #440 的基础能力拆分方案,确认 message-context metadata 暴露不引入跨会话串扰
  • 跟进 #441 owner-only /summary 命令实现,复核 owner 鉴权/历史窗口限制/帮助文本一致性
  • 对齐 historyLimit 默认值语义(代码默认关闭 vs 注释默认 50)并补充文档
  • 在 rebase 后复核 /summary 命令边界(owner 鉴权、token 成本、历史窗口与归档段限制)
  • 跟进 #331 最新阻塞项:conversationId 归一化冲突导致历史聚合错路由,需统一 canonical key 策略
  • 结合 #331 2026-03-22 最新更新复核“DM scope 统一 / 引用+附件 fallback / target-directory 测试矩阵”是否已消除阻塞项
  • 合并 #331 2026-03-25 最新 review:reviewDecision=CHANGES_REQUESTED 仍未翻转,优先收敛 CL test 报错后再复核合并条件
  • 同步 #331 2026-03-25 review 阻塞项:将 channel.ts 中新增 chatType/storePath 业务逻辑下沉至目标域并消除与 send-service 的重复推断
  • 同步 #331 2026-03-26 最新进展:CI 通过但 CHANGES_REQUESTED 未解除,需逐条核对 reviewer 阻塞项是否全部关闭

Milestone 建议

Milestone A:基础可用性收敛

  • 消息接收稳定性 / 长时间待机可靠性
  • AI Card 发送链路一致性
  • 文件上传 / 文件读取 / 文件预览 / 大文件链路
  • 图片 / 语音 / 媒体链路补强

Milestone B:高频消息类型与治理能力补齐

  • 引用消息 / chatRecord / 转发记录解析收口
  • 建立 Issue 提交标准化
  • 建立 PR / Issue 自动化流程

Milestone C:配置与体验增强

  • 多账号 / 多 agent / schema 与路由配置收敛
  • AI Card usage footer / thinking 展示行为可配置
  • README / 截图 / onboarding / 配置说明补齐

Milestone D:增强能力与低优先级优化

  • 支持群聊 @人 / @all
  • 支持对话打断 / 取消任务
  • 流式与响应时延

建议拆分顺序

第一阶段

  • 消息接收稳定性 / 长时间待机可靠性
  • AI Card 发送链路一致性
  • 文件上传 / 文件读取 / 文件预览 / 大文件链路
  • 图片 / 语音 / 媒体链路补强

第二阶段

  • 引用消息 / chatRecord / 转发记录解析收口
  • 建立 Issue 提交标准化
  • 建立 PR / Issue 自动化流程

第三阶段

  • 多账号 / 多 agent / schema 与路由配置收敛
  • AI Card usage footer / thinking 展示行为可配置
  • README / 截图 / onboarding / 配置说明补齐

第四阶段

  • 支持群聊 @人 / @all
  • 支持对话打断 / 取消任务
  • 流式与响应时延

/btw bypass session lock — 验证 TODO (PR #508)

  • DM /btw 这个函数为什么慢 while bot is idle → blockquote + answer rendered correctly
  • DM /btw <question> while a main run is in PROCESSING → BTW answer arrives without waiting for main run
  • Group @Bot /btw <question> while main run in PROCESSING → mention stripped from blockquote, sender nickname displayed
  • /btw (no question) → openclaw usage error rendered with > [<sender>: ]/btw blockquote prefix (note: <side question> placeholder eaten by markdown — upstream issue openclaw/openclaw#62877)
  • Long question (> 80 chars) → blockquote shows truncated form with
  • Card mode (messageType: card): /btw and /stop do NOT create orphan PROCESSING cards (createAICard hoist regression)
  • After upgrading to openclaw with isBtwRequestText exported, BTW activates without channel config change