Repository navigation
v1.0.15
Compat layer gains subcommand merging under shared parents so multiple server entries can contribute into the same dws <parent> <branch> subtree without producing duplicate --help rows. Ships with a fresh auto-generated command index doc, a README sync to 159 commands across 13 products, and a wide-ranging flag-naming cleanup that standardises CLI flags across chat, calendar, drive, minutes, contact, and devdoc commands.
Added
internal/compatsubcommand merging viaattachOrMerge— when two or more server entries attach to the same parent (e.g.parent: "chat") and theircli.commandcollides with an existing subcommand in the parent's tree, the new subcommand's children are merged recursively into the existing one instead of creating a duplicate sibling. Leaf-name collisions resolve first-wins. Fixes the "doublegroup/messagerows indws chat --help" symptom when bot capabilities are distributed acrosschat.group.membersandchat.message.docs/command-index.md— a single, English, auto-generated listing of every runtime command thedwsCLI exposes under the pre environment (159 total). Each entry carries a description and a "when to use" column aimed at AI agents. Replaces the earliercommand-index.pre.*/command-index.full.*ad-hoc snapshots.
Changed
- README Key Services table (
README.md+README_zh.md) fully synced to the shipped command surface:Chat: 20 → 23 (bot capabilities merged in; newlist-all/list-focused/list-unread-conversations/conversation-infoexposed)Calendar: 13 → 14AI Tables: 37 → 41 (chart / dashboard public-share config rows)Doc: 16 → 21 (comment subtree +file create)Minutes: 22 → 19 (single-toolrecord,list query,list-by-keyword-rangepruned)- New
Driverow (6 commands) — promoted out of "Coming soon" Workbenchrow and standaloneBotrow removed- Total revised to 159 commands across 13 products
- Quick Start expanded to 7 examples covering
doc,minutes,drivein addition tocontact,calendar,todo - Coming soon trimmed to 5:
mail,conference,aiapp,live,wiki - Reference & Docs section now leads with a pointer to the new
docs/command-index.md - Flag naming cleanup — CLI flags across chat, calendar, drive, minutes, contact, and devdoc have been standardised so the names users type match the product-skill documentation. Notable flags:
dws contact user search/dws contact dept search/dws devdoc article searchnow take--query(previously--keyword)dws chat message list/dws chat message search/dws chat message list-mentions/dws chat conversation-info/dws chat message sendnow take--groupfor the target conversation (previously--id) and--open-dingtalk-id(previously--open-id)dws chat message list-by-sendernow takes--sender-user-id/--sender-open-dingtalk-id(previously--user/--open-id)dws chat message list-topic-repliesnow takes--group/--topic-id/--limit/--time(previously--id/--topic/--size/--start)dws chat search-commonnow takes--match-mode(previously--mode)dws drive listnow takes--max/--thumbnail(previously--max-results/--with-thumbnail)dws calendar event suggestnow takes--users/--duration/--timezone(previously--attendee-user-ids/--duration-minutes/--time-zone)dws minutes list mine/dws minutes list sharednow take--max(previously--max-results) and gain--query/--start/--enddws minutes list allno longer exposes the legacy--__scope__internal alias
- Flag coverage additions —
dws calendar event create/updategain--attendees,--open-dingtalk-ids,--timezone;dws chat message sendgains file-message flags (--dentry-id,--file-name,--file-size,--file-type,--media-id,--msg-type,--space-id) plus--open-dingtalk-id/--user;dws chat message listgains--open-dingtalk-id/--user;dws aitable table deletegains--reason;dws calendar participant addgains--optional;dws todo task creategains--recurrence.
Tests
- 3 new unit tests in
internal/compat/dynamic_commands_test.go:TestBuildDynamicCommands_ParentMergeSameName— two servers with identicalcommand+parentcollapse into a single merged subcommandTestBuildDynamicCommands_ParentMergeRecursive— recursive merge through nested groups (e.g.chat.group.members)TestBuildDynamicCommands_ParentMergeLeafCollision— identical leaf paths resolve first-wins without producing duplicates
Fixes (post-release patch)
dws compat helpers json_parsenow falls back to YAML parsing when strict JSON decode fails, so YAML-style tool outputs round-trip through| json_parsecorrectly.dws chat message send-by-botproduct routing no longer misdispatches bot-identity sends — the command consistently resolves under thechatproduct tree.