Skip to content

fix(skill): align chat single-chat docs/script with list-direct#424

Merged
PeterGuy326 merged 3 commits into
mainfrom
fix/chat-single-chat-list-direct-docs
Jun 7, 2026
Merged

fix(skill): align chat single-chat docs/script with list-direct#424
PeterGuy326 merged 3 commits into
mainfrom
fix/chat-single-chat-list-direct-docs

Conversation

@PeterGuy326
Copy link
Copy Markdown
Collaborator

@PeterGuy326 PeterGuy326 commented Jun 6, 2026

问题

chat message list 现在仅支持群聊--user / --open-dingtalk-id 已移除),单聊读取改用独立命令 chat message list-direct --user <userId>。但 skill 侧(mono + multi)文档和脚本仍在教 chat message list --user,导致:

  1. 文档错误:照 chat.md / 01-messaging.mdlist --user 拉单聊会直接报 unknown flag: --user(v1.0.34 复核仍报错)。
  2. 命令缺失list-direct 在 skill 文档里完全没收录。
  3. 脚本失效:被列为查单聊"优先"方法的 chat_history_with_user.py 实际执行 dws chat message list --user,命令报错 + 返回体解析也对不上(崩在 'str' object has no attribute 'get')。

改动

文件 改动
skills/{mono,multi/dingtalk-chat}/.../chat.md message list 改为仅群聊;新增 list-direct 命令文档;意图路由 / 关键区分 / 上下文表 / 注意事项对齐
skills/mono/.../best_practices/01-messaging.md query-private-chat 由 list --user 改为 list-direct(multi 版此前已改)
skills/{mono,multi}/scripts/chat_history_with_user.py 调用 list-direct;修复返回体解析(解包 result.messages + 对齐 createTime/content/sender

单聊发送不变:仍用 chat message send --user(v1.0.34 起单聊发送 rpc 已并入 send 命令,无独立 send-direct,故本 PR 不引入 send-direct 文档)。

验证(基准对齐 repo 目标版本 v1.0.34)

  • 用从 repo HEAD 构建的 v1.0.34 二进制复核:list --userunknown flaglist-direct 存在且 list 仅群聊 ✓
  • v1.0.34 schema 确认:list_individual_chat_message→cli list-directsend_direct_message_as_user→cli send(非独立命令)✓
  • 修复后 chat_history_with_user.py 端到端跑通(正确分页/时间戳/发送者);py_compile 通过 ✓

钉钉 MCP 服务已将单聊从 `chat message list` 拆出独立的 `list-direct` /
`send-direct`(list 现仅支持群聊,--user / --open-dingtalk-id 已移除),
但 skill 侧文档与脚本仍在教 `chat message list --user`,照做会因 unknown
flag 报错;推荐为单聊"优先"方法的 chat_history_with_user.py 也随之失效。

- chat.md (mono+multi): `message list` 改为仅群聊;新增 `list-direct` /
  `send-direct` 两段命令文档;意图路由 / 关键区分 / 上下文传递表 / 注意事项
  全部对齐单聊新命令
- best_practices/01-messaging.md (mono): query-private-chat 由 `list --user`
  改 `list-direct`(multi 版此前已改,未动)
- chat_history_with_user.py (mono+multi): 调用 `list-direct`;并修复返回体
  解析——解包 `result.messages` + 对齐 `createTime/content/sender` 字段,
  此前会崩在 `'str' object has no attribute 'get'`
复核 v1.0.34 CLI 发现:单聊发送 rpc `send_direct_message_as_user` 在
v1.0.34 已并入 `chat message send`(cli_name=send,用 --user),不再暴露
独立的 `send-direct` 命令(仅 v1.0.29 有)。上一提交按 v1.0.29 误加的
send-direct 文档段/路由/关键区分/上下文表引用对 v1.0.34 是错的,全部移除。

list-direct 部分保留不变——v1.0.34 确认 `list` 仅群聊、`list-direct`
存在,`list --user` 仍报 unknown flag。单聊发送回归 `send --user`。
@PeterGuy326
Copy link
Copy Markdown
Collaborator Author

验证结论:全量验通,可合 ✅

用真实指令对 6 个改动文件 + CLI 行为做了端到端验证(环境:生产网关,沙盒账号 wukong01,二进制 v1.0.39-connect-stream,结论在 v1.0.34 之后依然成立)。

CLI 行为侧(真打服务端,非 --help)

  • chat message list --user <id>unknown flag: --user(group-only 坐实)
  • chat message list-direct --user <id> --time ... → 真返回单聊消息,结构为 result.messages[],字段 content / createTime / sender / openConversationId / senderOpenDingTalkId——脚本解析对齐点全部命中
  • chat message send --user <id> --dry-run → 路由到 tool send_direct_message_as_userlegacy_path: chat message send),确认无独立 send-direct,PR 第 3 个 commit 删 send-direct 的依据成立

6 个文件逐项

文件 验证 结果
mono chat_history_with_user.py 真打服务端拉到 5 条单聊,翻页+解析正确,py_compile 通过
multi chat_history_with_user.py 真打服务端拉到数据;与 mono 字节完全一致(6670)
mono chat.md 引用的 31 个 chat message 子命令全部真实存在;list-direct 收录 15 处;无 send-direct 残留;list --user 仅出现在「已停用」说明中
multi chat.md 同上
01-messaging.md query-private-chat 已由 list --user 改为 list-direct
CHANGELOG.md #424 条目存在且描述准确

改前/改后对照(脚本端到端)

  • 旧脚本(main)真跑 → 崩在 unknown flag: --user(复现了 PR 描述的 bug)
  • PR 脚本真跑 → 成功拉取 + 正确解析 + 翻页 + py_compile 通过

无幽灵命令、无残留废弃写法、无解析字段错配。改动方向与真实 CLI/服务端行为逐条吻合。

@PeterGuy326 PeterGuy326 merged commit 8c2093a into main Jun 7, 2026
6 checks passed
@PeterGuy326 PeterGuy326 deleted the fix/chat-single-chat-list-direct-docs branch June 7, 2026 08:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants