Appearance
Backlog / Prioritized TODO
用于持续跟踪 openclaw-channel-dingtalk 的任务优先级、推进顺序和治理项。
P0
1. 消息接收稳定性 / 长时间待机可靠性
相关 Issues:
- #104 Inbound message missing(状态:已关闭)
- #373 长时间不用钉钉机器人,再发送消息,openclaw接收不到(状态:开启)
- #400 WebSocket was closed before the connection was established:偶尔重启之后会连续报错好多个这个(状态:已关闭(关联 PR #399))
任务:
- 复核现有稳定性问题是否仍可复现
- 明确各已合并 PR 的覆盖范围与遗漏场景
- 建立最小回归用例:常规收发、长待机后收发、断线恢复、连接失败排障
- 形成“已收敛 / 未收敛 / 需新增 issue”结论
- 验证
#313在“冷启动后立即主动发送”场景的稳定性 - 收敛
#302/#303的复现路径与排障步骤 - 验证
#323/#325后长待机与恢复窗口是否仍出现“间歇性收不到消息”(关联#104新增反馈) - 结合
#104新评论(指向 stream-sdk-nodejs#13)补充“连接存活但收不到入站事件”的链路级排查与可观测性 - 复核
#336在低流量静默群聊下是否消除“空闲误重连”,并确认不影响真实断链恢复 - 合并核对
#345新反馈(markdown 模式也出现间歇性丢回复),确认是否与连接层问题同源 - 汇总
#104最新反馈中“群聊需 @ 才稳定触发”的现象,区分上游丢消息与群聊触发条件导致的假阳性 - 跟进
#373的版本升级回归(3.2 -> 3.4.0)与日志采样,新增“连接到内网地址”证据,确认是否与#104/#345同源 - 跟进
#390的 callback ack 时序修复方案,补齐no-dedupKey与 in-flight 分支 ACK 行为一致性回归 - 跟进终态 FAILED 后
waitForStop卡死导致无法自动恢复的问题,并确认修复已落地 - 同步
#400已关闭结论(关联#399),后续仅保留旧版本存量告警观察
2. AI Card 发送链路一致性
相关 Issues:
- #136 同样的内容,会出现两遍(状态:已关闭)
- #318 日志显示API 被限流(状态:开启)
- #357 3.2.0升级3.3.0后钉钉card只显示处理中(状态:已关闭)
- #358 Markdown 表格经 convertMarkdownTablesToPlainText 转换后在钉钉显示格式丢失(状态:开启)(Stale)
- #379 千问免费模型token 失效,钉钉前端没有反馈(状态:开启)(Stale)
- #407 使用card模式接收不到消息(状态:开启)
- #419 bug: AI Card shows empty cards when messages queue behind a long-running task(状态:已关闭(关联 PR #418,未合并))
任务:
- 回归 Done 提前结束问题
- 回归空回复问题
- 回归主动通知内容异常问题
- 回归重复输出问题
- 判断剩余问题是否需要拆出新的修复任务
- 回归
sessionWebhook过期后的 fallback 发送路径(#319) - 回归媒体消息
仅媒体/仅文本/媒体+文本的 deliver 组合行为(#321/#311) - 评估并实现
card.stream节流/合并策略,降低限流风险(#318)- #179 hardening send path(状态:要求修改,已关闭未合并)
- #191 serialize send pipeline with session-scoped dispatch lock(状态:合并)
- 复核 reasoning 重复堆叠修复是否稳定(#290/#291)
- 回归“多个 final chunk + 工具报错”场景,确认最终输出不会被吞(#326)
- 复核
#327恢复后的 reply-stream 契约是否完整(cardUpdateMode=replace、payload.text路径) - 复核
#231合并后的真实净变更与#208关闭结论是否一致,避免“状态已关闭但用户侧仍无错误提示” - 跟进
#311的 review blocking 项,基于已 rebase 分支复核 deliver MEDIA 边界(入站回包/主动回复/卡片并行) - 复盘
#334对#295的回滚影响,明确 async ack 是否保留为后续可选能力 - 校验
#300/#335的 markdown 表格兼容策略与默认值,避免不同钉钉客户端表现分叉 - 基于
#198/#292复核“工具流发送失败不应中断后续正文回复”的错误分级与降级路径 - 跟进
#396内置卡片模板与停止按钮方案,复核其与message-context-store主路径的一致性后再决定合入 - 跟进
#444重提的内置卡片模板 + 停止按钮方案,当前已合并入main,后续重点转向与 v2 草稿方案的重叠收敛 - 跟进
#448的 AI Card v2 结构化CardBlock[]草稿方案,评估其与#444的重叠/替代关系后再决定推进路径 - 跟进
#427文本停止指令 pre-lock bypass 方案,补“空确认文本兜底 + 多次 deliver 文本选取”回归后再评估合入 - 跟进 AI Card finalize 收尾修复并回归“多轮 tool + final chunk + 首行重复”组合场景(#348/#350/#352)
- 回归 Markdown 模式分块回复被拆分问题,确认非卡片模式走单次投递(#360)
- 复核
#368reply strategy 重构后 card/markdown 投递行为与动态 reaction 装饰器兼容性 - 复盘
#363关闭未合并方案与当前主线差异,确认其风险点已被后续修复覆盖 - 跟进
#357升级后“卡片仅处理中”反馈,核对cardRealTimeStream默认值与迁移提示 - 跟进
#358的表格转换后续(是否移除历史convertMarkdownTablesToPlainText路径)并补跨端渲染回归 - 跟进
#379的“上游返回 0 字节时钉钉前端无错误反馈”场景,明确插件侧兜底提示与日志建议(/verbose on)边界 - 跟进
#407的“card 模式下无回复 + ackReaction 不显示”现场,区分卡片发送链路异常与 thinking 反馈配置问题 - 跟进
#457对/reasoning on与/reasoning stream的统一交付方案,确认多轮 assistant turn 与 finalize 边界在 card 模式稳定 - 复核
#419关闭结论:确认“会话锁外提前建卡/空 Done 卡片”修复是否已入main;若未落地,按最小补丁重提
3. 文件上传 / 文件读取 / 文件预览 / 大文件链路
相关 Issues:
- #207 通过钉钉无法上传文件给Openclaw(状态:开启)
- #101 支持访问钉盘文件(状态:开启)
- #315 无法让openclaw将本地文件通过钉钉发送(Dup #207)(状态:开启)
- #366 无法发送本机文件到我的钉钉问题(状态:开启)(Stale)
- #270 钉钉收不到文件,回复只收到占位符,图片、语音都没有问题(状态:开启)
- #391 能否做到帮我从钉盘找图片/文件并发给我(状态:开启)(Stale)
- #415 单聊不能收文件(状态:开启)
- #422 机器人无法发送文件的问题(状态:开启)
- #430 群聊怎么给openclaw发文件呢?(状态:开启)
- #442 文件下载缺少 timeout 导致长时间阻塞(状态:已关闭(关联 PR #443))
任务:
- 核对基础文件发送能力的当前边界
- 拆分文件上传、读取、预览、扩展名处理、大文件、钉盘访问子任务
- 为每个子任务补最小复现和验收标准
- 明确哪些属于补尾,哪些需要新增开发
- 复核
#315场景在当前版本中的行为与诊断提示是否一致 - 评估
#298的附件正文抽取边界(类型/长度/失败回退)与现有文件链路兼容性 - 跟进
#207新增进展:robotCode已配置仍失败,补充“企业认证/权限付费门槛”前置条件说明 - 将
#366的“文本正常但文件发送失败”场景补充到文件链路最小复现矩阵,并对齐与#207/#315的同源性判断 - 合并
#270的“仅文件占位符”现场日志,补齐“下载成功但提取失败”与“未落盘”两类分流排障步骤 - 跟进
#391的钉盘自然语言检索诉求,明确“仅引用直发/文件名模糊搜索/全量语义搜索”分级能力与前置权限 - 跟进
#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-service与attachment-text-extractor搬迁后文件链路回归覆盖完整
4. 图片 / 语音 / 媒体链路补强
相关 Issues:
- #162 无法发送图片(状态:开启)
- #86 在AI的流式卡片上也实现插入图片/视频音频等(状态:开启)
- #306 钉钉无法发送图片,提示富文本(Dup #162)(状态:开启)
- #316 钉钉机器人无法发送本地文件或者图片发给我(Dup #162)(状态:开启)
- #351 钉钉发送的图片默认是压缩,是否能暴露一个配置是否获取原图?(状态:开启)
- #365 机器人发的图片,只有占位符(状态:已关闭(反馈指向 Media Url Allowlist 配置))
- #394 钉钉给机器人发送图片 机器人无法识别图片(状态:已关闭)
- #408 使用dingtalk 单聊,接收不到返回的 tts 语音包(状态:开启)(Stale)
- #429 最新版本openclaw 3.24和插件版本v3.4.2无法读取图片(状态:已关闭(关联 PR #432))
任务:
- 回归本地图片发送
- 回归语音消息发送
- 回归入站媒体大小限制覆盖配置
- 评估 AI Card 内媒体一体化展示是否值得推进
- 明确哪些项已完成、哪些项仍待开发
- 回归 Windows 绝对路径/相对路径下图片与文件发送(#316, #241)
- 跟进
#248的mediaUrl路径归一化修复,并在 rebase 到最新main后回归远端 URL/本地路径分流 - 针对
#333增补robotCode缺失/错误时的启动校验与日志提示,避免仅出现<media:image>占位文本 - 明确
#351的能力边界说明(客户端压缩 / API 不支持原图参数),在文档中补“可控项与不可控项”说明 - 跟进
#365的图片占位符问题,修复sampleImageMsg参数与上传mediaId语义不匹配 - 将
#394纳入图片入站回归矩阵,补充“仅识别为 [图片] 占位符”场景的格式/大小/日志采样 - 合并
#394最新评论,补充“模型是否支持多模态”的前置检查与提示路径 - 跟进
#408的 DM TTS 附件链路:区分deliverMediaAttachments与sendMedia路径,补“回复型语音附件”回归与降级提示 - 同步
#429关闭结论:移除[media_path:]注入后,sandbox 模式媒体读取回归
P1
5. 引用消息 / chatRecord / 转发记录解析收口
相关 Issues:
- #286 不支持识别钉群中富文本引用吗?(状态:开启)
- #349 是否支持引用群消息(状态:开启)
任务:
- 梳理各 PR 的前后替代关系
- #128 feat(dingtalk): support quoted messages(状态:合并)
- #202 fix(dingtalk): improve quote and forward handling(状态:要求修改,已关闭未合并)
- #209 fix(dingtalk): handle empty forward payload(状态:要求修改,已关闭未合并)
- #210 fix(dingtalk): improve quote journal compatibility(状态:要求修改,已关闭未合并)
- #233 quote/chatRecord/stream-card hardening(状态:要求修改,已关闭未合并)
- #257 clarify empty chatRecord payload behavior(状态:合并)
- 明确引用消息解析的最终行为
- 明确 chatRecord 空内容提示策略
- 明确转发记录展示策略
- 做一次集中回归并沉淀结论
- 补充富文本 markdown/代码块引用场景回归,确认引用内容传递边界(#286)
- 评估
#364/#371的消息上下文持久化统一方案对 quote/chatRecord 的迁移兼容与回归面 - 落地
quotedRef引用链并对齐 runtime reply context(#375/#377/#378) - 跟进
#389对#377的后续补丁(preview fallback/attachment excerpt/TTL),确认与现有message-context-store语义一致并已合入 - 跟进
#401quoted-only 回归修复的后续项:补 handler 层回归测试,并评估 QuotedRef-first 输入策略
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:
- #185 用dingtalk插件为多agent绑定不同的钉钉机器人失效(状态:开启(已有修复文档但仍有用户追问))(Stale)
- #354 peer.kind绑定方式不生效(状态:开启)(Stale)
- #420 某些钉钉账号无法通过私聊发送邮件(状态:开启)
任务:
- 补齐配置示例
- 增加配置校验
- 优化启动时报错
- 补齐文档说明
- 明确
session-alias与框架 routing bindings 的职责边界(#307) - 评估
@sub-agent能力与现有路由模型整合方案(#317) - 复核 dashboard schema 渲染与 legacy key 归一化行为在 UI/Raw 配置路径的一致性(#304/#324)
- 跟进
#317review blocking 项与“先暂缓”结论,冻结范围在基础路由能力并避免再次回归#327已修复的 inbound 能力 - 排查并修复
#185反馈的多 agent workspace 绑定异常(疑似默认main绑定导致配置失效) - 补充
#185/#267的“多账号配置是否生效”快速诊断步骤,减少重复提问 - 跟进
#354的peer.kind/peer.id绑定案例:新增“staffId 配置正确仍不生效”反馈,补最小复现与peerId/senderStaffId对照日志诊断 - 复核
#356的 schema 导入路径争议,确认buildChannelConfigSchema兼容策略后再决定是否合入 - 评估
#372的 displayName 目标目录学习能力与既有 routing 规则的兼容性(命名冲突、跨群歧义、隐私边界) - 收敛
main会话默认路由 owner 隔离,避免群聊流量意外接管私聊主会话(#382) - 补齐群聊访问控制(allowlist/sender restriction/disabled)并确认 legacy
allowFrom兼容(#385) - 跟进
#380HTTP callback 多实例方案的 review 阻塞项(签名校验、TOPIC_CARD 回调行为、部署文档边界) - 跟进
#383入站命令分发抽离重构,确认 command 域边界与现有 owner/session 命令回归覆盖 - 跟进
#395plugin-sdk API 对齐分支并完成兼容层回归(入口/类型导出/onboarding) - 跟进
#472的 scoped import 对齐收尾,确认command-auth测试 mock 与 peer dependency 约束后再合入 - 跟进
#412的 DM@sub-agent路由方案,重点复核 DM richText/quoted 场景误触发与回归覆盖 - 跟进
#453targeting 分域迁移,确认 group member store 搬迁后路由与缓存语义保持不变 - 跟进
#420私聊会话疑似误路由反馈:补senderStaffId/senderOriginalId冲突诊断日志与复现用例
9. 支持群聊 @人 / @all
相关 Issues:
- #67 机器人群聊中支持@某人(状态:开启)
- #288 支持群里多个龙虾左右互搏相互at吗?(Dup #67)(状态:开启)
- #305 群组中艾特机器人受限(Dup #67)(状态:开启)
- #353 如何让龙虾在群里中@其他成员(状态:开启)
- #417 在钉钉群里,@机器人后让他生成图片发群里,结果发了一条全员钉钉通知(状态:开启)
任务:
- 明确 @单人 需求范围
- 明确 @多人 需求范围
- 明确 @all 需求范围
- 设计失败降级与兼容行为
- 整理
#288/#305重复诉求,收敛为#67验收标准 - 跟进
#305新增用户追问,补充当前版本可行配置与仍未覆盖场景的状态说明 - 跟进
#353最新追问(是否排期),补当前“仅 @sender 能力”与“@指定成员待规划”状态说明 - 跟进
#417的“触发全员工作通知”风险,补充@all防护说明与默认关闭/显式开启策略 - 明确 card 模式下
@sender通知能力边界,避免与“@指定成员”诉求混淆(#369)
10. 支持对话打断 / 取消任务
相关 Issues:
- #76 对话打断功能(状态:开启)
- #310 啥时候能支持acp啊(状态:开启)
任务:
- 明确用户主动取消的交互形式
- 明确长任务中断机制
- 明确中断后状态回收方式
- 明确 UI / 提示语反馈
- 明确 ACP 最小可用范围(
/acp spawn)及status/steer/cancel分阶段目标(#310) - 评估
#427的“停止指令绕过 session 锁”方案与现有卡片停止流程整合边界(避免空卡片 finalize)
11. AI Card usage footer / thinking 展示行为可配置
相关 Issues:
- #111 usage footer(状态:开启)
- #312 为什么卡片模板的参数只支持一个,如果相传多个怎么实现(状态:开启)
- #320 reasoning stream提示 Reasoning stream enabled (Telegram only).(Dup #236)(状态:开启)
- #374 升级到新版本以后机器人收到消息没有“正在思考”了(状态:已关闭)
- #424 新版本的思考状态导致/verbose on模式无法查看工作链路,整体思考体验变慢(状态:已关闭(关联 PR #428))
- #456 [问题反馈](状态:开启)
任务:
- 明确 thinking 展示可配置项
- 明确 tool use 展示可配置项
- 明确 usage footer 展示策略
- 补齐默认值与文档说明
- 评估卡片模板多参数/多按钮交互支持方案(#312)
- 明确
/reasoning stream在钉钉通道的提示与降级策略(#320) - 回归 reasoning 结束态在钉钉卡片上的收敛行为(#282)
- 回归
/verbose on下 tool result 流式展示在卡片模式的可见性(#322) - 修复升级后未配置
ackReaction时“无反馈”回归(#359) - 复核
#332“思考中表情”在钉钉 UI 延迟显示场景下的撤回收敛行为与 API 调用成本 - 跟进
#344的 review blocking 项(冲突、默认值语义、media deliver 覆盖回归、超时设置),确认ackReaction对齐策略后再评估可合并性 - 评估
#314的“工具执行实时进度提示”与现有 thinking/usage 提示的职责边界及节流策略 - 复盘
#314合并后的会话隔离/kaomoji 兼容/状态机测试覆盖结论,沉淀回归清单 - 复盘
#367关闭未合并方案与当前主线差异(模板变量契约、callback 入口边界、synthetic message 生命周期) - 跟进
#383入站命令分发重构的阻塞项(CI 失败 + ack reaction 重复/额外时延),确认不引入普通消息路径回归 - 跟进 AI Card dynamic summary 默认行为,确认配置与展示不引入额外噪声
- 复核
#374的“无思考中反馈”现场是否已被#362完全覆盖(含用户配置位置错误场景) - 跟进
#424的/verbose on可见性反馈,区分“thinking 展示变更”与“工具链路输出被覆盖”两类问题 - 跟进
#428的单时间线重构非阻塞 review 建议,确认cardUpdateMode类型收敛与兼容说明 - 跟进
#447markdown 增量时间线方案,已合并,后续重点观察与#428单时间线语义一致性及回归反馈 - 同步
#446已由#447替代并关闭,避免重复跟踪 - 跟进
#456在单聊场景反馈的/verbose与/reasoning失效问题,复核#447/#457是否已完整覆盖(含卡片与 markdown 两种模式)
P3
12. 流式与响应时延
相关 Issues:
- #238 新版本:延迟20S(状态:开启)
- #414 安装新版本发现在 markdown模式下,消息不按照 block 发送,而是全部完成后发送(状态:开启)
- #416 分步骤回复消息的支持(状态:开启)
- #425 openclaw的回复消息在钉钉中有时候是乱序的(状态:已关闭(关联 PR #428))
任务:
- 评估 20 秒延迟是否仅在超大规模部署下发生
- #255 make stream keepAlive configurable and default off(状态:要求修改,已关闭未合并)
- 评估个人场景是否真的需要真流式
- 评估消息更新 API 配额消耗
- 评估低更新频率的替代方案
- 修复 chunk 模式仅显示增量字符的问题
- 给出“继续投入 / 保持现状”的结论
- 跟进
#416的“分步骤执行但钉钉端最终一次性可见”反馈,明确是通道节流策略、上游 buffering 还是客户端展示限制 - 回归
#341引入的实时流式开关与默认值,验证“时延改善 vs API 成本”是否达到可接受平衡 - 跟进
#414的 markdown 模式“整段发送”反馈,明确是否为#361之后的预期行为并补文档说明 - 跟进
#425乱序反馈,补“卡片模式/markdown 模式/客户端顺序渲染差异”对照复现记录
13. README / 截图 / onboarding / 配置说明补齐
相关 Issues:
- #242 README 能否增加一些图片截图(状态:开启)
- #243 为啥我配置好了参数 一直显示0 ... Request failed with status code 400(状态:开启)
- #342 输出文本不支持msgtype:type吗?(状态:开启)
- #144 如何让openclaw主动发消息给我?(状态:开启)
- #355 如何让机器人主动给某个用户主动发消息(状态:已关闭)
- #376 配置定时任务时,如何让消息发送到钉钉指定的群聊(状态:已关闭(已确认可用 conversationId/session_key 直发,displayName 直发待版本发布))
- #413 Feature request: avoid nesting a full openclaw copy inside(状态:开启)(Stale)
- #226 可否增加一个读取群聊消息的功能,而不只是@机器人(状态:开启(wontfix,2026-03-25 新线索待验证))
- #421 windows 10系统下无法配置钉钉消息(状态:开启)
- #423 安装失败:Also not a valid hook pack: Error: package.json missing openclaw.hooks(状态:开启)
- #426 安装出现 dingtalk failed to load ... root-alias.cjs/param-readers 报错(状态:已关闭)
- #434 macOS 安装失败(状态:开启)
- #435 [Bug]安装插件失败(状态:已关闭)
- #455 定时任务发送消息到指定群组(状态:开启)
任务:
- 补 README 截图
- 补 onboarding 示例
- 补配置说明
- 补常见问题
- 补排障说明
- 增补
400/protocol mismatch常见排障示例与配置核对清单(#243/#303) - 补充
dingtalk.docs.*gateway methods 的使用示例与权限/参数说明(#301) - 整合
#328的多 bot 多 agent 绑定示例到 onboarding/FAQ,减少与#317相关配置误解 - 补充
debug->dwClientDebug的迁移说明与兼容窗口说明(#337)- #337 refactor: deprecate legacy dingtalk debug config(状态:要求修改,已关闭未合并)
- 增补“钉钉上游能力边界”FAQ:项目管理接口、文档表格编辑、消息输出类型限制(#293/#340/#342)
- 增补“主动消息发送”FAQ 与前置条件(
robotCode、会话预热、机器人类型权限、流式模式差异)(#144/#355) - 增补“定时/主动发送到指定群”说明(
conversationId直发 +displayNameResolution能力与版本门槛)(#376/#372) - 合并
#455追问:补充cron/jobs.json中conversationId: group:cid...与session_key两种定向发送写法示例 - 增补“Markdown 表格渲染差异”说明(客户端差异 + 自定义机器人 vs 应用机器人)(#192/#358)
- 补充
gatewayToken缺失/错误时的配置排障指引与默认回退行为说明(#370) - 跟进
#402/#404/#405安装失败闭环:补版本兼容矩阵与升级指引,并同步已由#406修复的范围边界 - 跟进
#413的“插件内嵌 openclaw 目录”安装反馈:补充“全新安装仍可出现目录”的复现结论与清理/规避建议 - 基于
#2262026-03-25 新线索(竞品疑似可读群聊)补一条能力边界说明:若无公开 API 支持则保持wontfix,避免误导承诺 - 跟进
#421的 Windows 路径报错反馈:在 FAQ 明确“旧版本(v2.x)升级到 v3.x”优先路径与校验步骤 - 跟进
#423/#426/#434/#435安装失败反馈:补“安装方式 + OpenClaw 最低版本 + semver 兼容”检查清单 - 补充
#434/#435最新进展:标注 clawhub 安装路径缺陷与 semver 紧急修复(b21e501)的适用边界,给出临时 git 安装指引 - 同步
#445配置字段收敛(移除corpId/agentId/robotCode)与 README/onboarding 更新,减少安装与升级期配置歧义 - 评估
#393的 structured real-device debug sessions 文档/脚本方案,决定合并范围与最小维护面
14. 群聊历史滚动摘要 /summary 命令
任务:
- 同步
#331状态变更:PR 已关闭未合并,原范围拆分为#440(message context metadata)与#441(owner-only /summary) - 跟进
#440的基础能力拆分方案,确认 message-context metadata 暴露不引入跨会话串扰 - 跟进
#441owner-only/summary命令实现,复核 owner 鉴权/历史窗口限制/帮助文本一致性 - 对齐
historyLimit默认值语义(代码默认关闭 vs 注释默认 50)并补充文档 - 在 rebase 后复核
/summary命令边界(owner 鉴权、token 成本、历史窗口与归档段限制) - 跟进
#331最新阻塞项:conversationId归一化冲突导致历史聚合错路由,需统一 canonical key 策略 - 结合
#3312026-03-22 最新更新复核“DM scope 统一 / 引用+附件 fallback / target-directory 测试矩阵”是否已消除阻塞项 - 合并
#3312026-03-25 最新 review:reviewDecision=CHANGES_REQUESTED仍未翻转,优先收敛 CL test 报错后再复核合并条件 - 同步
#3312026-03-25 review 阻塞项:将channel.ts中新增 chatType/storePath 业务逻辑下沉至目标域并消除与send-service的重复推断 - 同步
#3312026-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
- 支持对话打断 / 取消任务
- 流式与响应时延