{ "generated_at": "2026-07-15T16:04:54.178709", "summary": { "total": 162, "ok": 48, "error": 114, "timeout": 0, "held": 0 }, "failure_categories": { "missing-real-aitable-fixture": 31, "backend-or-mcp-error": 24, "missing-real-resource": 23, "input-or-business-validation": 20, "auth-or-permission": 16 }, "results": [ { "service": "todo", "command": "+assign", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test todo +assign --to '冬翔' --task 'DWS shortcut 真实测试 20260715 assign,可忽略' --due 2026-07-16T10:00:00+08:00 --yes --format json", "args": [ "todo", "+assign", "--to", "冬翔", "--task", "DWS shortcut 真实测试 20260715 assign,可忽略", "--due", "2026-07-16T10:00:00+08:00", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"result\": {\n \"subject\": \"DWS shortcut 真实测试 20260715 assign,可忽略\",\n \"taskId\": \"55037683708\"\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1651, "recorded_at": "2026-07-15T10:12:09.374178" }, { "service": "todo", "command": "+assign-multi", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test todo +assign-multi --to '冬翔,克谨,怒龙' --task 'DWS shortcut 真实测试 20260715 assign-multi,可忽略' --yes --format json", "args": [ "todo", "+assign-multi", "--to", "冬翔,克谨,怒龙", "--task", "DWS shortcut 真实测试 20260715 assign-multi,可忽略", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"result\": {\n \"subject\": \"DWS shortcut 真实测试 20260715 assign-multi,可忽略\",\n \"taskId\": \"55037747621\"\n },\n \"success\": true\n}\n{\n \"count\": 3,\n \"executors\": [\n \"夏东翔(103262)\",\n \"黄渊卓(519019)\",\n \"刘力(075771)\"\n ],\n \"subject\": \"DWS shortcut 真实测试 20260715 assign-multi,可忽略\"\n}", "stderr": "", "exit_code": 0, "duration_ms": 2445, "recorded_at": "2026-07-15T10:12:11.927124" }, { "service": "calendar", "command": "+book", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test calendar +book --title 'DWS shortcut 真实测试 20260715 日程,可忽略' --start 2026-07-16T11:00:00+08:00 --end 2026-07-16T11:15:00+08:00 --with '冬翔,克谨,怒龙' --yes --format json", "args": [ "calendar", "+book", "--title", "DWS shortcut 真实测试 20260715 日程,可忽略", "--start", "2026-07-16T11:00:00+08:00", "--end", "2026-07-16T11:15:00+08:00", "--with", "冬翔,克谨,怒龙", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"result\": {\n \"attendees\": [\n {\n \"displayName\": \"怒龙\",\n \"optional\": false,\n \"responseStatus\": \"needsAction\",\n \"self\": false\n },\n {\n \"displayName\": \"冬翔\",\n \"optional\": false,\n \"responseStatus\": \"needsAction\",\n \"self\": false\n },\n {\n \"displayName\": \"念晨\",\n \"optional\": false,\n \"responseStatus\": \"accepted\",\n \"self\": true\n },\n {\n \"displayName\": \"黄渊卓(克谨)\",\n \"optional\": false,\n \"responseStatus\": \"needsAction\",\n \"self\": false\n }\n ],\n \"categories\": [],\n \"createTime\": \"2026-07-15 10:12:30\",\n \"end\": {\n \"dateTime\": \"2026-07-16T11:15:00+08:00\",\n \"timeZone\": \"Asia/Shanghai\"\n },\n \"extendedProperties\": {\n \"sharedProperties\": {\n \"belongCorpId\": \"ding8196cd9a2b2405da24f2f5cc6abecb85\"\n }\n },\n \"freeBusy\": \"BUSY\",\n \"iCalUID\": \"c0YxQWVyWDFiTjB6MHdmczVvNUZ5dz09\",\n \"id\": \"c0YxQWVyWDFiTjB6MHdmczVvNUZ5dz09\",\n \"isAllDay\": false,\n \"meetingRooms\": [],\n \"onlineMeetingInfo\": {\n \"conferenceId\": \"c76abd52-29bb-4183-85d3-bcf91debe3e4\",\n \"extraInfo\": {\n \"phones\": \"[\\\"+862381045152\\\",\\\"+862381045153\\\"]\",\n \"roomCode\": \"131 508 161\"\n },\n \"internalExtraInfo\": {\n \"urlForCalDAV\": \"dingtalk://dingtalkclient/page/videoConfFromSystemCalendar?confId=c76abd52-29bb-4183-85d3-bcf91debe3e4\\u0026calendarId=24714119393\"\n },\n \"type\": \"dingtalk\",\n \"url\": \"dingtalk://dingtalkclient/page/videoConfFromCalendar?confId=c76abd52-29bb-4183-85d3-bcf91debe3e4\\u0026calendarId=24714119393\"\n },\n \"organizer\": {\n \"displayName\": \"念晨\",\n \"optional\": false,\n \"self\": true\n },\n \"reminders\": [\n {\n \"method\": \"dingtalk\",\n \"minutes\": 15\n }\n ],\n \"start\": {\n \"dateTime\": \"2026-07-16T11:00:00+08:00\",\n \"timeZone\": \"Asia/Shanghai\"\n },\n \"status\": \"confirmed\",\n \"summary\": \"DWS shortcut 真实测试 20260715 日程,可忽略\",\n \"updateTime\": \"2026-07-15 10:12:31\"\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 2909, "recorded_at": "2026-07-15T10:12:31.399705" }, { "service": "calendar", "command": "+reschedule", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test calendar +reschedule --event c0YxQWVyWDFiTjB6MHdmczVvNUZ5dz09 --start 2026-07-16T11:30:00+08:00 --end 2026-07-16T11:45:00+08:00 --yes --format json", "args": [ "calendar", "+reschedule", "--event", "c0YxQWVyWDFiTjB6MHdmczVvNUZ5dz09", "--start", "2026-07-16T11:30:00+08:00", "--end", "2026-07-16T11:45:00+08:00", "--yes", "--format", "json" ], "stdout": "{\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1960, "recorded_at": "2026-07-15T10:13:18.426070" }, { "service": "calendar", "command": "+invite", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test calendar +invite --event c0YxQWVyWDFiTjB6MHdmczVvNUZ5dz09 --with '冬翔' --yes --format json", "args": [ "calendar", "+invite", "--event", "c0YxQWVyWDFiTjB6MHdmczVvNUZ5dz09", "--with", "冬翔", "--yes", "--format", "json" ], "stdout": "{\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {},\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 2033, "recorded_at": "2026-07-15T10:13:23.127843" }, { "service": "calendar", "command": "+cancel-event", "risk": "high-risk-write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test calendar +cancel-event --event c0YxQWVyWDFiTjB6MHdmczVvNUZ5dz09 --yes --format json", "args": [ "calendar", "+cancel-event", "--event", "c0YxQWVyWDFiTjB6MHdmczVvNUZ5dz09", "--yes", "--format", "json" ], "stdout": "{\n \"action\": \"about_to_cancel\",\n \"eventId\": \"c0YxQWVyWDFiTjB6MHdmczVvNUZ5dz09\",\n \"title\": \"DWS shortcut 真实测试 20260715 日程,可忽略\"\n}\n{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {},\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1369, "recorded_at": "2026-07-15T10:13:40.867196" }, { "service": "chat", "command": "+category-create", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +category-create --title 'DWS测0715' --yes --format json", "args": [ "chat", "+category-create", "--title", "DWS测0715", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"categoryId\": 1784081668329\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 959, "recorded_at": "2026-07-15T10:14:28.325931" }, { "service": "chat", "command": "+category-rename", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +category-rename --category-id 1784081668329 --title 'DWS改0715' --yes --format json", "args": [ "chat", "+category-rename", "--category-id", "1784081668329", "--title", "DWS改0715", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {},\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1225, "recorded_at": "2026-07-15T10:14:58.751623" }, { "service": "chat", "command": "+category-delete", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +category-delete --category-id 1784081668329 --yes --format json", "args": [ "chat", "+category-delete", "--category-id", "1784081668329", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"success\": true\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1378, "recorded_at": "2026-07-15T10:15:00.095333" }, { "service": "chat", "command": "+send-to-group", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +send-to-group --group 'DWS测0715' --text 'DWS shortcut 真实测试 20260715:验证 chat +send-to-group,请忽略。' --yes --format json", "args": [ "chat", "+send-to-group", "--group", "DWS测0715", "--text", "DWS shortcut 真实测试 20260715:验证 chat +send-to-group,请忽略。", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"openTaskId\": \"tECwJpPL2sAnZwUZhjTFhNWleCgSp0GSMPlGkMUIL5Q=\"\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1854, "recorded_at": "2026-07-15T10:16:22.214033" }, { "service": "chat", "command": "+chat-update-nick", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +chat-update-nick --group cidXgIVDDzZE7kdQ+bcp3gWNw== --nick 'DWS测试' --yes --format json", "args": [ "chat", "+chat-update-nick", "--group", "cidXgIVDDzZE7kdQ+bcp3gWNw==", "--nick", "DWS测试", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {},\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1478, "recorded_at": "2026-07-15T10:16:22.730031" }, { "service": "chat", "command": "+chat-update-alias", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +chat-update-alias --group cidXgIVDDzZE7kdQ+bcp3gWNw== --alias-title 'DWS群备注' --yes --format json", "args": [ "chat", "+chat-update-alias", "--group", "cidXgIVDDzZE7kdQ+bcp3gWNw==", "--alias-title", "DWS群备注", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {},\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1298, "recorded_at": "2026-07-15T10:16:23.398622" }, { "service": "chat", "command": "+chat-mute", "risk": "write", "method": "real-backend-manual-write cleanup/unmute; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +chat-mute --group cidXgIVDDzZE7kdQ+bcp3gWNw== --off --yes --format json", "args": [ "chat", "+chat-mute", "--group", "cidXgIVDDzZE7kdQ+bcp3gWNw==", "--off", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {},\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1252, "recorded_at": "2026-07-15T10:16:43.375260" }, { "service": "chat", "command": "+chat-set-history", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +chat-set-history --group cidXgIVDDzZE7kdQ+bcp3gWNw== --option RECENT_100 --yes --format json", "args": [ "chat", "+chat-set-history", "--group", "cidXgIVDDzZE7kdQ+bcp3gWNw==", "--option", "RECENT_100", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {},\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1219, "recorded_at": "2026-07-15T10:17:31.670629" }, { "service": "chat", "command": "+chat-role-add", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +chat-role-add --group cidXgIVDDzZE7kdQ+bcp3gWNw== --name 'DWS测试角色' --yes --format json", "args": [ "chat", "+chat-role-add", "--group", "cidXgIVDDzZE7kdQ+bcp3gWNw==", "--name", "DWS测试角色", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"openRoleId\": \"role9G67RdPFmhF1VxBpguhr1QiEiE\"\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1281, "recorded_at": "2026-07-15T10:17:33.706668" }, { "service": "chat", "command": "+chat-set-admin", "risk": "write", "method": "real-backend-manual-write cleanup/unset-admin; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +chat-set-admin --group cidXgIVDDzZE7kdQ+bcp3gWNw== --users 103262 --off --yes --format json", "args": [ "chat", "+chat-set-admin", "--group", "cidXgIVDDzZE7kdQ+bcp3gWNw==", "--users", "103262", "--off", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {},\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1554, "recorded_at": "2026-07-15T10:17:54.361957" }, { "service": "chat", "command": "+chat-role-update", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +chat-role-update --group cidXgIVDDzZE7kdQ+bcp3gWNw== --role-id role9G67RdPFmhF1VxBpguhr1QiEiE --name 'DWS角色改' --yes --format json", "args": [ "chat", "+chat-role-update", "--group", "cidXgIVDDzZE7kdQ+bcp3gWNw==", "--role-id", "role9G67RdPFmhF1VxBpguhr1QiEiE", "--name", "DWS角色改", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {},\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1366, "recorded_at": "2026-07-15T10:18:16.042372" }, { "service": "chat", "command": "+chat-role-set-user", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +chat-role-set-user --group cidXgIVDDzZE7kdQ+bcp3gWNw== --user 103262 --role-ids role9G67RdPFmhF1VxBpguhr1QiEiE --yes --format json", "args": [ "chat", "+chat-role-set-user", "--group", "cidXgIVDDzZE7kdQ+bcp3gWNw==", "--user", "103262", "--role-ids", "role9G67RdPFmhF1VxBpguhr1QiEiE", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {},\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1355, "recorded_at": "2026-07-15T10:18:18.422186" }, { "service": "doc", "command": "+version-save", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test doc +version-save --node P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO --yes --format json", "args": [ "doc", "+version-save", "--node", "P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO", "--yes", "--format", "json" ], "stdout": "{\n \"message\": \"文档版本已成功保存。\",\n \"savedVersion\": 1,\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1853, "recorded_at": "2026-07-15T10:22:15.539141" }, { "service": "doc", "command": "+comment-create", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test doc +comment-create --node P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO --content 'DWS shortcut 真实测试 20260715:验证 doc +comment-create,可忽略。' --yes --format json", "args": [ "doc", "+comment-create", "--node", "P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO", "--content", "DWS shortcut 真实测试 20260715:验证 doc +comment-create,可忽略。", "--yes", "--format", "json" ], "stdout": "{\n \"commentKey\": \"1784082136009b316ba6c48ad41ad92a8b6905406a17c\",\n \"logId\": \"2132f5ca17840821358717098e08d7\",\n \"message\": \"评论创建成功。commentKey: 1784082136009b316ba6c48ad41ad92a8b6905406a17c\",\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 2263, "recorded_at": "2026-07-15T10:22:16.077531" }, { "service": "doc", "command": "+doc-append", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test doc +doc-append --doc P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO --text 'DWS shortcut 真实测试 20260715:验证 doc +doc-append。' --yes --format json", "args": [ "doc", "+doc-append", "--doc", "P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO", "--text", "DWS shortcut 真实测试 20260715:验证 doc +doc-append。", "--yes", "--format", "json" ], "stdout": "{\n \"logId\": \"213ee25c17840821367055154e08a0\",\n \"message\": \"内容已成功追加到文档末尾,原有内容保持不变。\",\n \"mode\": \"append\",\n \"nodeId\": \"P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO\",\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 2892, "recorded_at": "2026-07-15T10:22:17.006167" }, { "service": "doc", "command": "+comment-reply", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test doc +comment-reply --node P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO --comment-key 1784082136009b316ba6c48ad41ad92a8b6905406a17c --content 'DWS shortcut 真实测试 20260715:验证 doc +comment-reply,可忽略。' --yes --format json", "args": [ "doc", "+comment-reply", "--node", "P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO", "--comment-key", "1784082136009b316ba6c48ad41ad92a8b6905406a17c", "--content", "DWS shortcut 真实测试 20260715:验证 doc +comment-reply,可忽略。", "--yes", "--format", "json" ], "stdout": "{\n \"commentKey\": \"1784082170012979f5c547f7a49e88a6c1dd718bbb304\",\n \"logId\": \"2106d98117840821697518379e089c\",\n \"message\": \"回复评论成功。commentKey: 1784082170012979f5c547f7a49e88a6c1dd718bbb304\",\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1553, "recorded_at": "2026-07-15T10:22:50.048965" }, { "service": "doc", "command": "+copy", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test doc +copy --node P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO --folder Amq4vjg89ZOAdqyaSMKpApXdW3kdP0wQ --yes --format json", "args": [ "doc", "+copy", "--node", "P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO", "--folder", "Amq4vjg89ZOAdqyaSMKpApXdW3kdP0wQ", "--yes", "--format", "json" ], "stdout": "{\n \"docUrl\": \"https://alidocs.dingtalk.com/i/nodes/7dx2rn0Jbakrq9O5tZvQ1bG9VMGjLRb3\",\n \"message\": \"节点复制成功,已复制到目标文件夹。sourceNodeId: P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO,targetFolderId: Amq4vjg89ZOAdqyaSMKpApXdW3kdP0wQ,新节点 ID: 7dx2rn0Jbakrq9O5tZvQ1bG9VMGjLRb3\",\n \"nodeId\": \"7dx2rn0Jbakrq9O5tZvQ1bG9VMGjLRb3\",\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1531, "recorded_at": "2026-07-15T10:23:13.821964" }, { "service": "doc", "command": "+move", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test doc +move --node P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO --folder Amq4vjg89ZOAdqyaSMKpApXdW3kdP0wQ --yes --format json", "args": [ "doc", "+move", "--node", "P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO", "--folder", "Amq4vjg89ZOAdqyaSMKpApXdW3kdP0wQ", "--yes", "--format", "json" ], "stdout": "{\n \"docUrl\": \"https://alidocs.dingtalk.com/i/nodes/P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO\",\n \"message\": \"节点移动成功,已移动到目标文件夹。nodeId: P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO,targetFolderId: Amq4vjg89ZOAdqyaSMKpApXdW3kdP0wQ\",\n \"nodeId\": \"P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO\",\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1087, "recorded_at": "2026-07-15T10:23:15.362080" }, { "service": "doc", "command": "+version-revert", "risk": "high-risk-write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test doc +version-revert --node P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO --version 1 --yes --format json", "args": [ "doc", "+version-revert", "--node", "P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO", "--version", "1", "--yes", "--format", "json" ], "stdout": "{\n \"message\": \"文档已成功回滚到指定版本。\",\n \"revertedToVersion\": 1,\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 2065, "recorded_at": "2026-07-15T10:23:20.422266" }, { "service": "chat", "command": "+chat-dismiss", "risk": "high-risk-write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +chat-dismiss --group cidXgIVDDzZE7kdQ+bcp3gWNw== --yes --format json", "args": [ "chat", "+chat-dismiss", "--group", "cidXgIVDDzZE7kdQ+bcp3gWNw==", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {},\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1120, "recorded_at": "2026-07-15T10:30:27.746562" }, { "service": "devapp", "command": "+create", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test devapp +create --name 'DWS测试应用0715' --desc 'DWS shortcut 真实测试,可删除' --yes --format json", "args": [ "devapp", "+create", "--name", "DWS测试应用0715", "--desc", "DWS shortcut 真实测试,可删除", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"appKey\": \"dingyqsdchocxp3xrfm3\",\n \"desc\": \"DWS shortcut 真实测试,可删除\",\n \"icon\": \"@lADPDfmVQafoVxrMyMzI\",\n \"iconUrl\": \"https://i01.lw.aliimg.com/media/lADPDfmVQafoVxrMyMzI_200_200.jpg\",\n \"name\": \"DWS测试应用0715\",\n \"unifiedAppId\": \"c5a8e611-1555-44a0-ba8d-9617ab599692\"\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1464, "recorded_at": "2026-07-15T10:31:40.493231" }, { "service": "devapp", "command": "+update", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test devapp +update --unified-app-id c5a8e611-1555-44a0-ba8d-9617ab599692 --name 'DWS测试应用0715改' --desc 'DWS shortcut 真实测试已更新' --yes --format json", "args": [ "devapp", "+update", "--unified-app-id", "c5a8e611-1555-44a0-ba8d-9617ab599692", "--name", "DWS测试应用0715改", "--desc", "DWS shortcut 真实测试已更新", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"appKey\": \"dingyqsdchocxp3xrfm3\",\n \"desc\": \"DWS shortcut 真实测试已更新\",\n \"icon\": \"@lADPDfmVQafoVxrMyMzI\",\n \"iconUrl\": \"https://i01.lw.aliimg.com/media/lADPDfmVQafoVxrMyMzI_200_200.jpg\",\n \"message\": \"应用基础信息更新成功。\",\n \"name\": \"DWS测试应用0715改\",\n \"success\": true,\n \"unifiedAppId\": \"c5a8e611-1555-44a0-ba8d-9617ab599692\",\n \"updatedFields\": [\n \"name\",\n \"desc\"\n ],\n \"versionStatus\": \"INIT\"\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 5611, "recorded_at": "2026-07-15T10:32:10.163399" }, { "service": "devapp", "command": "+disable", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test devapp +disable --unified-app-id c5a8e611-1555-44a0-ba8d-9617ab599692 --yes --format json", "args": [ "devapp", "+disable", "--unified-app-id", "c5a8e611-1555-44a0-ba8d-9617ab599692", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"message\": \"应用已停用。\",\n \"success\": true,\n \"unifiedAppId\": \"c5a8e611-1555-44a0-ba8d-9617ab599692\"\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 2583, "recorded_at": "2026-07-15T10:32:10.606118" }, { "service": "devapp", "command": "+member-add", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test devapp +member-add --unified-app-id c5a8e611-1555-44a0-ba8d-9617ab599692 --user-ids 103262 --member-type DEVELOPER --yes --format json", "args": [ "devapp", "+member-add", "--unified-app-id", "c5a8e611-1555-44a0-ba8d-9617ab599692", "--user-ids", "103262", "--member-type", "DEVELOPER", "--yes", "--format", "json" ], "stdout": "{\n \"memberType\": \"DEVELOPER\",\n \"operation\": \"ADDED\",\n \"success\": true,\n \"unifiedAppId\": \"c5a8e611-1555-44a0-ba8d-9617ab599692\",\n \"userIds\": [\n \"103262\"\n ]\n}", "stderr": "", "exit_code": 0, "duration_ms": 2393, "recorded_at": "2026-07-15T10:32:10.630577" }, { "service": "devapp", "command": "+enable", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test devapp +enable --unified-app-id c5a8e611-1555-44a0-ba8d-9617ab599692 --yes --format json", "args": [ "devapp", "+enable", "--unified-app-id", "c5a8e611-1555-44a0-ba8d-9617ab599692", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"message\": \"应用已启用。\",\n \"success\": true,\n \"unifiedAppId\": \"c5a8e611-1555-44a0-ba8d-9617ab599692\"\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1506, "recorded_at": "2026-07-15T10:32:41.282567" }, { "service": "devapp", "command": "+member-remove", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test devapp +member-remove --unified-app-id c5a8e611-1555-44a0-ba8d-9617ab599692 --user-ids 103262 --member-type DEVELOPER --yes --format json", "args": [ "devapp", "+member-remove", "--unified-app-id", "c5a8e611-1555-44a0-ba8d-9617ab599692", "--user-ids", "103262", "--member-type", "DEVELOPER", "--yes", "--format", "json" ], "stdout": "{\n \"memberType\": \"DEVELOPER\",\n \"operation\": \"REMOVED\",\n \"success\": true,\n \"unifiedAppId\": \"c5a8e611-1555-44a0-ba8d-9617ab599692\",\n \"userIds\": [\n \"103262\"\n ]\n}", "stderr": "", "exit_code": 0, "duration_ms": 1188, "recorded_at": "2026-07-15T10:32:45.215035" }, { "service": "devapp", "command": "+webapp-config", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test devapp +webapp-config --unified-app-id c5a8e611-1555-44a0-ba8d-9617ab599692 --h5-page-type pc --homepage-url https://example.invalid/dws --pc-homepage-url https://example.invalid/dws-pc --omp-url https://example.invalid/omp --yes --format json", "args": [ "devapp", "+webapp-config", "--unified-app-id", "c5a8e611-1555-44a0-ba8d-9617ab599692", "--h5-page-type", "pc", "--homepage-url", "https://example.invalid/dws", "--pc-homepage-url", "https://example.invalid/dws-pc", "--omp-url", "https://example.invalid/omp", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"configured\": true,\n \"h5PageType\": \"pc\",\n \"homepageUrl\": \"https://example.invalid/dws\",\n \"message\": \"网页应用配置成功。\",\n \"ompUrl\": \"https://example.invalid/omp\",\n \"pcHomepageUrl\": \"https://example.invalid/dws-pc\",\n \"success\": true,\n \"unifiedAppId\": \"c5a8e611-1555-44a0-ba8d-9617ab599692\"\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 4926, "recorded_at": "2026-07-15T10:33:17.930444" }, { "service": "devapp", "command": "+delete", "risk": "high-risk-write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test devapp +delete --unified-app-id c5a8e611-1555-44a0-ba8d-9617ab599692 --yes --format json", "args": [ "devapp", "+delete", "--unified-app-id", "c5a8e611-1555-44a0-ba8d-9617ab599692", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"deleted\": true,\n \"message\": \"应用删除成功。\",\n \"success\": true,\n \"unifiedAppId\": \"c5a8e611-1555-44a0-ba8d-9617ab599692\"\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 2868, "recorded_at": "2026-07-15T10:33:37.241949" }, { "service": "drive", "command": "+move", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test drive +move --node P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO --folder Amq4vjg89ZOAdqyaSMKpApXdW3kdP0wQ --yes --format json", "args": [ "drive", "+move", "--node", "P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO", "--folder", "Amq4vjg89ZOAdqyaSMKpApXdW3kdP0wQ", "--yes", "--format", "json" ], "stdout": "{\n \"docUrl\": \"https://alidocs.dingtalk.com/i/nodes/P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO\",\n \"message\": \"节点移动成功,已移动到目标文件夹。nodeId: P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO,targetFolderId: Amq4vjg89ZOAdqyaSMKpApXdW3kdP0wQ\",\n \"nodeId\": \"P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO\",\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 3380, "recorded_at": "2026-07-15T10:34:07.475044" }, { "service": "drive", "command": "+copy", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test drive +copy --node P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO --folder Amq4vjg89ZOAdqyaSMKpApXdW3kdP0wQ --yes --format json", "args": [ "drive", "+copy", "--node", "P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO", "--folder", "Amq4vjg89ZOAdqyaSMKpApXdW3kdP0wQ", "--yes", "--format", "json" ], "stdout": "{\n \"docUrl\": \"https://alidocs.dingtalk.com/i/nodes/np9zOoBVBy2AdzEjuP40bzg4W1DK0g6l\",\n \"message\": \"节点复制成功,已复制到目标文件夹。sourceNodeId: P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO,targetFolderId: Amq4vjg89ZOAdqyaSMKpApXdW3kdP0wQ,新节点 ID: np9zOoBVBy2AdzEjuP40bzg4W1DK0g6l\",\n \"nodeId\": \"np9zOoBVBy2AdzEjuP40bzg4W1DK0g6l\",\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1329, "recorded_at": "2026-07-15T10:34:08.215467" }, { "service": "ding", "command": "+send-personal", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test ding +send-personal --users 103262 --content 'DWS shortcut 真实测试 20260715:验证 ding +send-personal,请忽略。' --type app --uuid dws-shortcut-ding-20260715-001 --yes --format json", "args": [ "ding", "+send-personal", "--users", "103262", "--content", "DWS shortcut 真实测试 20260715:验证 ding +send-personal,请忽略。", "--type", "app", "--uuid", "dws-shortcut-ding-20260715-001", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"openDingId\": \"8508193BEA49427AA9FFE94EB9D6B28E\"\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1338, "recorded_at": "2026-07-15T10:34:35.058320" }, { "service": "ding", "command": "+recall-personal", "risk": "high-risk-write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test ding +recall-personal --id 8508193BEA49427AA9FFE94EB9D6B28E --yes --format json", "args": [ "ding", "+recall-personal", "--id", "8508193BEA49427AA9FFE94EB9D6B28E", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {},\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1415, "recorded_at": "2026-07-15T10:34:51.767409" }, { "service": "minutes", "command": "+record-start", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test minutes +record-start --session-id __DWS_SHORTCUT_REAL_TEST_NO_SUCH_ID__ --yes --format json", "args": [ "minutes", "+record-start", "--session-id", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_ID__", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"cmd\": \"create\",\n \"operatorUid\": 512653609,\n \"sessionId\": \"__DWS_SHORTCUT_REAL_TEST_NO_SUCH_ID__\",\n \"uid\": 512653609\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 821 }, { "service": "minutes", "command": "+replace-batch", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test minutes +replace-batch --id __DWS_SHORTCUT_REAL_TEST_NO_SUCH_ID__ --pair '测试=>测试' --yes --format json", "args": [ "minutes", "+replace-batch", "--id", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_ID__", "--pair", "测试=>测试", "--yes", "--format", "json" ], "stdout": "{\n \"applied\": 0,\n \"failed\": 1,\n \"results\": [\n {\n \"error\": \"[UNCLASSIFIED] business error: success=false\\n hint: Use --verbose for detailed error logs\",\n \"originalText\": \"测试\",\n \"replacedText\": \"测试\"\n }\n ],\n \"taskUuid\": \"__DWS_SHORTCUT_REAL_TEST_NO_SUCH_ID__\",\n \"total\": 1\n}", "stderr": "", "exit_code": 0, "duration_ms": 941 }, { "service": "chat", "command": "+messages-send-by-webhook", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +messages-send-by-webhook --token __DWS_SHORTCUT_REAL_TEST_NO_SUCH_WEBHOOK_TOKEN__ --title 'DWS shortcut 真实测试 20260715-104025' --text 'DWS shortcut 真实测试 20260715-104025,安全负向输入,请忽略。' --at-all --at-mobiles x --at-users __DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__ --yes --format json", "args": [ "chat", "+messages-send-by-webhook", "--token", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_WEBHOOK_TOKEN__", "--title", "DWS shortcut 真实测试 20260715-104025", "--text", "DWS shortcut 真实测试 20260715-104025,安全负向输入,请忽略。", "--at-all", "--at-mobiles", "x", "--at-users", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__", "--yes", "--format", "json" ], "stdout": "{\n \"errcode\": \"300005\",\n \"errmsg\": \"token is not exist\",\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 925 }, { "service": "chat", "command": "+messages-update-card", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +messages-update-card --biz-id __DWS_SHORTCUT_REAL_TEST_NO_SUCH_ID__ --content 'DWS shortcut 真实测试 20260715-104025,安全负向输入,请忽略。' --flow-status 1 --yes --format json", "args": [ "chat", "+messages-update-card", "--biz-id", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_ID__", "--content", "DWS shortcut 真实测试 20260715-104025,安全负向输入,请忽略。", "--flow-status", "1", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {},\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 934 }, { "service": "chat", "command": "+conversation-clear-all-red-point", "risk": "high-risk-write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +conversation-clear-all-red-point --yes --format json", "args": [ "chat", "+conversation-clear-all-red-point", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {},\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 13459, "recorded_at": "2026-07-15T10:45:08.066989" }, { "service": "chat", "command": "+dm", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +dm --to '冬翔' --text 'DWS shortcut 修复复测 20260715:验证 chat +dm,请忽略。' --yes --format json", "args": [ "chat", "+dm", "--to", "冬翔", "--text", "DWS shortcut 修复复测 20260715:验证 chat +dm,请忽略。", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"openTaskId\": \"y/wM6Lo+9GbIqtILYPv1BZDcMW+2FgnqskgcpdOiMdM=\"\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 2547, "recorded_at": "2026-07-15T11:01:34.725515" }, { "service": "chat", "command": "+broadcast", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test chat +broadcast --to '冬翔,克谨,怒龙' --text 'DWS shortcut 修复复测 20260715:验证 chat +broadcast,请忽略。' --yes --format json", "args": [ "chat", "+broadcast", "--to", "冬翔,克谨,怒龙", "--text", "DWS shortcut 修复复测 20260715:验证 chat +broadcast,请忽略。", "--yes", "--format", "json" ], "stdout": "{\n \"failedCount\": 0,\n \"sent\": [\n \"夏东翔\",\n \"黄渊卓\",\n \"刘力\"\n ],\n \"sentCount\": 3\n}", "stderr": "", "exit_code": 0, "duration_ms": 2388, "recorded_at": "2026-07-15T11:01:50.250374" }, { "service": "doc", "command": "+share-doc", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test doc +share-doc --to '冬翔' --url https://alidocs.dingtalk.com/i/nodes/P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO --note 'DWS shortcut 修复复测 20260715:验证 doc +share-doc,请忽略。' --yes --format json", "args": [ "doc", "+share-doc", "--to", "冬翔", "--url", "https://alidocs.dingtalk.com/i/nodes/P0MALyR8knpgo9GycY7ZlMxlJ3bzYmDO", "--note", "DWS shortcut 修复复测 20260715:验证 doc +share-doc,请忽略。", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"errorCode\": null,\n \"errorMsg\": null,\n \"result\": {\n \"openTaskId\": \"30ETViSW+9qhs7fBO9cbeSocHjj2iUZL4firJPz/h/I=\"\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1943, "recorded_at": "2026-07-15T11:02:04.791099" }, { "service": "todo", "command": "+remind", "risk": "write", "method": "real-backend-manual-write; no --mock; no --dry-run; cleanup: taskId 55042039022 deleted successfully", "status": "real-ok", "input": "/private/tmp/dws-real-test todo +remind --task 'DWS shortcut 修复复测 20260715 remind,可忽略' --at 2026-07-16T10:00:00+08:00 --yes --format json", "args": [ "todo", "+remind", "--task", "DWS shortcut 修复复测 20260715 remind,可忽略", "--at", "2026-07-16T10:00:00+08:00", "--yes", "--format", "json" ], "stdout": "{\n \"arguments\": [],\n \"result\": {\n \"subject\": \"DWS shortcut 修复复测 20260715 remind,可忽略\",\n \"taskId\": \"55042039022\"\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 4240, "recorded_at": "2026-07-15T11:02:27.012678", "cleanup": { "input": "/private/tmp/dws-real-test todo task delete --task-id 55042039022 --yes --format json", "stdout": "{\n \"result\": {\n \"success\": true\n },\n \"success\": true\n}", "exit_code": 0, "note": "真实复测创建的临时待办已删除" } }, { "service": "aitable", "command": "+advperm-disable", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +advperm-disable --base-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "aitable", "+advperm-disable", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to set advanced permission for base DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"2106d98117840998455921653e08de\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1447, "failure_category": "auth-or-permission", "fixability": "not-cli-fixable", "diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。" }, { "service": "aitable", "command": "+advperm-enable", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +advperm-enable --base-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "aitable", "+advperm-enable", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to set advanced permission for base DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"0bab027317840998469916877e08c8\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1358, "failure_category": "auth-or-permission", "fixability": "not-cli-fixable", "diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。" }, { "service": "aitable", "command": "+attachment-upload", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +attachment-upload --base-id DWSREALTESTNOSUCHID0000000000000 --file-name dws-shortcut-real-20260715-151724.txt --size 1 --mime-type text/plain --yes --format json", "args": [ "aitable", "+attachment-upload", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--file-name", "dws-shortcut-real-20260715-151724.txt", "--size", "1", "--mime-type", "text/plain", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"BASE_NOT_FOUND\\\",\\\"message\\\":\\\"Specified base does not exist, has been deleted, or is inaccessible\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to prepare attachment upload: base does not exist or is inaccessible\\\",\\\"trace_id\\\":\\\"213ee25c17840998481228948e087f\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1131, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+base-copy", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +base-copy --base-id DWSREALTESTNOSUCHID0000000000000 --target-folder-id x --only-struct --yes --format json", "args": [ "aitable", "+base-copy", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--target-folder-id", "x", "--only-struct", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":null,\\\"message\\\":\\\"Invalid source baseId: DWSREALTESTNOSUCHID0000000000000\\\",\\\"retryable\\\":null,\\\"type\\\":\\\"USER_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Invalid source baseId\\\",\\\"trace_id\\\":\\\"213ee25c17840998493715617e08e2\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1318, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+base-delete", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +base-delete --base-id DWSREALTESTNOSUCHID0000000000000 --reason 'DWS shortcut 真实测试安全负向清理' --yes --format json", "args": [ "aitable", "+base-delete", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--reason", "DWS shortcut 真实测试安全负向清理", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"52600003\\\",\\\"message\\\":\\\"Data not found\\\",\\\"retryable\\\":true,\\\"type\\\":\\\"SYSTEM_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to delete base DWSREALTESTNOSUCHID0000000000000. Check whether the base still exists, the caller still has access, and the baseId is from get_base/search_bases before retrying.\\\",\\\"trace_id\\\":\\\"2132f5ca17840998505858640e0874\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1124, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "aitable", "command": "+base-update", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +base-update --base-id DWSREALTESTNOSUCHID0000000000000 --name 'DWS shortcut 真实测试 20260715-151724' --desc 'DWS shortcut 真实测试描述,可删除' --yes --format json", "args": [ "aitable", "+base-update", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--name", "DWS shortcut 真实测试 20260715-151724", "--desc", "DWS shortcut 真实测试描述,可删除", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"BASE_NOT_FOUND\\\",\\\"message\\\":\\\"Specified base does not exist, has been deleted, or is inaccessible\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to update base because base does not exist or is inaccessible\\\",\\\"trace_id\\\":\\\"2132f5ca17840998518767946e08b6\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1318, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+chart-delete", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +chart-delete --base-id DWSREALTESTNOSUCHID0000000000000 --dashboard-id DWSREALTESTNOSUCHID0000000000000 --chart-id DWSREALTESTNOSUCHID0000000000000 --reason 'DWS shortcut 真实测试安全负向清理' --yes --format json", "args": [ "aitable", "+chart-delete", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--dashboard-id", "DWSREALTESTNOSUCHID0000000000000", "--chart-id", "DWSREALTESTNOSUCHID0000000000000", "--reason", "DWS shortcut 真实测试安全负向清理", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to delete chart DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"0bab027317840998530143696e08c9\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1154, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+chart-share-update", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +chart-share-update --base-id DWSREALTESTNOSUCHID0000000000000 --dashboard-id DWSREALTESTNOSUCHID0000000000000 --chart-id DWSREALTESTNOSUCHID0000000000000 --enabled --share-type PUBLIC --allow-back-to-doc --yes --format json", "args": [ "aitable", "+chart-share-update", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--dashboard-id", "DWSREALTESTNOSUCHID0000000000000", "--chart-id", "DWSREALTESTNOSUCHID0000000000000", "--enabled", "--share-type", "PUBLIC", "--allow-back-to-doc", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to update chart share for base DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"0bab027317840998541842968e094d\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1175, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+chart-update", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +chart-update --base-id DWSREALTESTNOSUCHID0000000000000 --dashboard-id DWSREALTESTNOSUCHID0000000000000 --chart-id DWSREALTESTNOSUCHID0000000000000 --config '{}' --layout '{}' --yes --format json", "args": [ "aitable", "+chart-update", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--dashboard-id", "DWSREALTESTNOSUCHID0000000000000", "--chart-id", "DWSREALTESTNOSUCHID0000000000000", "--config", "{}", "--layout", "{}", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_PARAMS\\\",\\\"message\\\":\\\"config is required\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to update chart because config is missing\\\",\\\"trace_id\\\":\\\"2106d98117840998553244877e08df\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1102, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "后端/MCP 服务返回内部错误;CLI 无法直接修复,但报告保留 trace/stdout 供服务端排查。" }, { "service": "aitable", "command": "+dashboard-arrange", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +dashboard-arrange --base-id DWSREALTESTNOSUCHID0000000000000 --dashboard-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "aitable", "+dashboard-arrange", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--dashboard-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to align dashboard for base DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"2132f5ca17840998564478222e08d8\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1141, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+dashboard-delete", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +dashboard-delete --base-id DWSREALTESTNOSUCHID0000000000000 --dashboard-id DWSREALTESTNOSUCHID0000000000000 --reason 'DWS shortcut 真实测试安全负向清理' --yes --format json", "args": [ "aitable", "+dashboard-delete", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--dashboard-id", "DWSREALTESTNOSUCHID0000000000000", "--reason", "DWS shortcut 真实测试安全负向清理", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to delete dashboard DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"2106d98117840998577042546e0941\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1247, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+dashboard-share-update", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +dashboard-share-update --base-id DWSREALTESTNOSUCHID0000000000000 --dashboard-id DWSREALTESTNOSUCHID0000000000000 --enabled --share-type PUBLIC --allow-back-to-doc --yes --format json", "args": [ "aitable", "+dashboard-share-update", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--dashboard-id", "DWSREALTESTNOSUCHID0000000000000", "--enabled", "--share-type", "PUBLIC", "--allow-back-to-doc", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to update dashboard share for base DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"2132f5ca17840998588081246e0853\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1115, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+dashboard-update", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +dashboard-update --base-id DWSREALTESTNOSUCHID0000000000000 --dashboard-id DWSREALTESTNOSUCHID0000000000000 --config '{}' --name 'DWS shortcut 真实测试 20260715-151724' --yes --format json", "args": [ "aitable", "+dashboard-update", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--dashboard-id", "DWSREALTESTNOSUCHID0000000000000", "--config", "{}", "--name", "DWS shortcut 真实测试 20260715-151724", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to update dashboard DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"2106d98117840998599403187e08b8\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1157, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+field-delete", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +field-delete --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --field-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "aitable", "+field-delete", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--field-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"404\\\",\\\"message\\\":\\\"getDentryDTO returns null\\\",\\\"retryable\\\":true,\\\"type\\\":\\\"SYSTEM_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to get current field info before delete\\\",\\\"trace_id\\\":\\\"0bab027317840998611338768e08c8\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1157, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "后端/MCP 服务返回内部错误;CLI 无法直接修复,但报告保留 trace/stdout 供服务端排查。" }, { "service": "aitable", "command": "+field-update", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +field-update --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --field-id DWSREALTESTNOSUCHID0000000000000 --name 'DWS shortcut 真实测试 20260715-151724' --config '{}' --ai-config '{}' --yes --format json", "args": [ "aitable", "+field-update", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--field-id", "DWSREALTESTNOSUCHID0000000000000", "--name", "DWS shortcut 真实测试 20260715-151724", "--config", "{}", "--ai-config", "{}", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"404\\\",\\\"message\\\":\\\"getDentryDTO returns null\\\",\\\"retryable\\\":true,\\\"type\\\":\\\"SYSTEM_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to get current field info for update\\\",\\\"trace_id\\\":\\\"213ee25c17840998623207342e08e2\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1196, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "后端/MCP 服务返回内部错误;CLI 无法直接修复,但报告保留 trace/stdout 供服务端排查。" }, { "service": "aitable", "command": "+form-delete", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +form-delete --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --view-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "aitable", "+form-delete", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--view-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to delete form view for base DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"213ee25c17840998636217552e08e2\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1290, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+form-field-hide", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +form-field-hide --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --view-id DWSREALTESTNOSUCHID0000000000000 --field-id DWSREALTESTNOSUCHID0000000000000 --hidden --yes --format json", "args": [ "aitable", "+form-field-hide", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--view-id", "DWSREALTESTNOSUCHID0000000000000", "--field-id", "DWSREALTESTNOSUCHID0000000000000", "--hidden", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to update form field hidden for base DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"2106d98117840998649456212e08df\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1312, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+form-field-update", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +form-field-update --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --view-id DWSREALTESTNOSUCHID0000000000000 --field-id DWSREALTESTNOSUCHID0000000000000 --required --field-description 'DWS shortcut 真实测试字段说明' --yes --format json", "args": [ "aitable", "+form-field-update", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--view-id", "DWSREALTESTNOSUCHID0000000000000", "--field-id", "DWSREALTESTNOSUCHID0000000000000", "--required", "--field-description", "DWS shortcut 真实测试字段说明", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to update form field config for base DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"213ee25c17840998660847932e08e2\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1153, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+form-share-update", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +form-share-update --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --view-id DWSREALTESTNOSUCHID0000000000000 --enabled true --yes --format json", "args": [ "aitable", "+form-share-update", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--view-id", "DWSREALTESTNOSUCHID0000000000000", "--enabled", "true", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to update share form for base DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"213ee25c17840998675755538e087d\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1573, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+form-update", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +form-update --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --view-id DWSREALTESTNOSUCHID0000000000000 --title 'DWS shortcut 真实测试 20260715-151724' --description 'DWS shortcut 真实测试描述,可删除' --yes --format json", "args": [ "aitable", "+form-update", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--view-id", "DWSREALTESTNOSUCHID0000000000000", "--title", "DWS shortcut 真实测试 20260715-151724", "--description", "DWS shortcut 真实测试描述,可删除", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to update form info for base DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"2132f5ca17840998688302645e0853\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1141, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+import-data", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +import-data --import-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --timeout 1 --header-row 1 --src-sheet-name x --field-mapping '{}' --yes --format json", "args": [ "aitable", "+import-data", "--import-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--timeout", "1", "--header-row", "1", "--src-sheet-name", "x", "--field-mapping", "{}", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_IMPORT_ID\\\",\\\"message\\\":\\\"importId not found: either invalid or expired\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"importId「DWSREALTESTNOSUCHID0000000000000」无效或已过期(有效期 1 小时)。请勿重试相同 importId。需重新上传:① 调用 prepare_import_upload 获取新的 uploadUrl 和 importId;② 通过 HTTP PUT 将原始文件字节流上传至 uploadUrl;除非 uploadUrl 明确要求,否则不要额外附带 Content-Type 等自定义请求头;③ 调用 import_data 传入新的 importId。\\\",\\\"trace_id\\\":\\\"213ee25c17840998700326443e0944\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1227, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "aitable", "command": "+import-upload", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +import-upload --base-id DWSREALTESTNOSUCHID0000000000000 --file-name dws-shortcut-real-20260715-151724.txt --file-size 1 --yes --format json", "args": [ "aitable", "+import-upload", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--file-name", "dws-shortcut-real-20260715-151724.txt", "--file-size", "1", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"无法解析 baseId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"无效的 baseId\\\",\\\"trace_id\\\":\\\"0bab027317840998713075490e096e\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1302, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+record-delete", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +record-delete --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --record-ids DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "aitable", "+record-delete", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--record-ids", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"404\\\",\\\"message\\\":\\\"getDentryDTO returns null\\\",\\\"retryable\\\":true,\\\"type\\\":\\\"SYSTEM_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to delete records\\\",\\\"trace_id\\\":\\\"2132f5ca17840998724753149e0853\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1159, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "后端/MCP 服务返回内部错误;CLI 无法直接修复,但报告保留 trace/stdout 供服务端排查。" }, { "service": "aitable", "command": "+record-primary-doc-create", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +record-primary-doc-create --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --field-id DWSREALTESTNOSUCHID0000000000000 --record-id 999999999999 --yes --format json", "args": [ "aitable", "+record-primary-doc-create", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--field-id", "DWSREALTESTNOSUCHID0000000000000", "--record-id", "999999999999", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"RESOLVE_DOC_ID_ERROR\\\",\\\"message\\\":\\\"Failed to resolve docId from baseId\\\",\\\"retryable\\\":true,\\\"type\\\":\\\"SYSTEM_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to create cell doc because baseId cannot be resolved to docId\\\",\\\"trace_id\\\":\\\"213ee25c17840998736256985e0944\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1150, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+record-update", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +record-update --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --records '[{\"recordId\":\"recDWSREALTEST\",\"cells\":{}}]' --yes --format json", "args": [ "aitable", "+record-update", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--records", "[{\"recordId\":\"recDWSREALTEST\",\"cells\":{}}]", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_RECORDS\\\",\\\"message\\\":\\\"records must contain at least one writable record\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to update records because no valid writable records remain for table DWSREALTESTNOSUCHID0000000000000. Skipped records with empty cells (1): recDWSREALTEST\\\",\\\"trace_id\\\":\\\"0bab027317840998747383236e090b\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1144, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "后端/MCP 服务返回内部错误;CLI 无法直接修复,但报告保留 trace/stdout 供服务端排查。" }, { "service": "aitable", "command": "+record-upsert", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +record-upsert --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --records '[]' --yes --format json", "args": [ "aitable", "+record-upsert", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--records", "[]", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_PARAMETER\\\",\\\"message\\\":\\\"records is required and must not be empty\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"records is required and must not be empty\\\",\\\"trace_id\\\":\\\"2106d98117840998759832182e087b\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1173, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "后端/MCP 服务返回内部错误;CLI 无法直接修复,但报告保留 trace/stdout 供服务端排查。" }, { "service": "aitable", "command": "+role-create", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +role-create --base-id DWSREALTESTNOSUCHID0000000000000 --name 'DWS shortcut 真实测试 20260715-151724' --role-type x --flow-type x --sub-roles '[]' --yes --format json", "args": [ "aitable", "+role-create", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--name", "DWS shortcut 真实测试 20260715-151724", "--role-type", "x", "--flow-type", "x", "--sub-roles", "[]", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to create role for base DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"0bab027317840998770933580e090b\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1130, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+role-delete", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +role-delete --base-id DWSREALTESTNOSUCHID0000000000000 --role-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "aitable", "+role-delete", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--role-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_PARAMS\\\",\\\"message\\\":\\\"roleId is required\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to delete role because roleId is missing\\\",\\\"trace_id\\\":\\\"2106d98117840998782482701e089c\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1150, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "后端/MCP 服务返回内部错误;CLI 无法直接修复,但报告保留 trace/stdout 供服务端排查。" }, { "service": "aitable", "command": "+role-update", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +role-update --base-id DWSREALTESTNOSUCHID0000000000000 --role-id DWSREALTESTNOSUCHID0000000000000 --name 'DWS shortcut 真实测试 20260715-151724' --role-type x --flow-type x --sub-roles '[]' --yes --format json", "args": [ "aitable", "+role-update", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--role-id", "DWSREALTESTNOSUCHID0000000000000", "--name", "DWS shortcut 真实测试 20260715-151724", "--role-type", "x", "--flow-type", "x", "--sub-roles", "[]", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_PARAMS\\\",\\\"message\\\":\\\"roleId is required\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to patch role because roleId is missing\\\",\\\"trace_id\\\":\\\"2132f5ca17840998794483634e08d8\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1209, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "后端/MCP 服务返回内部错误;CLI 无法直接修复,但报告保留 trace/stdout 供服务端排查。" }, { "service": "aitable", "command": "+section-create", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +section-create --base-id DWSREALTESTNOSUCHID0000000000000 --name 'DWS shortcut 真实测试 20260715-151724' --parent-section-id DWSREALTESTNOSUCHID0000000000000 --index 1 --yes --format json", "args": [ "aitable", "+section-create", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--name", "DWS shortcut 真实测试 20260715-151724", "--parent-section-id", "DWSREALTESTNOSUCHID0000000000000", "--index", "1", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to create section for base DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"2132f5ca17840998805556786e08d9\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1117, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+section-delete", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +section-delete --base-id DWSREALTESTNOSUCHID0000000000000 --section-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "aitable", "+section-delete", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--section-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to delete section for base DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"2106d98117840998817023336e087a\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1111, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+section-move-node", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +section-move-node --base-id DWSREALTESTNOSUCHID0000000000000 --node-id DWSREALTESTNOSUCHID0000000000000 --new-parent-section-id DWSREALTESTNOSUCHID0000000000000 --target-index 1 --yes --format json", "args": [ "aitable", "+section-move-node", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--node-id", "DWSREALTESTNOSUCHID0000000000000", "--new-parent-section-id", "DWSREALTESTNOSUCHID0000000000000", "--target-index", "1", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to move node for base DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"2106d98117840998828667800e0920\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1186, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+section-rename", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +section-rename --base-id DWSREALTESTNOSUCHID0000000000000 --section-id DWSREALTESTNOSUCHID0000000000000 --new-name 'DWS shortcut 真实测试 20260715-151724' --yes --format json", "args": [ "aitable", "+section-rename", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--section-id", "DWSREALTESTNOSUCHID0000000000000", "--new-name", "DWS shortcut 真实测试 20260715-151724", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to rename section for base DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"213ee25c17840998840692547e08e2\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1259, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+section-reorder", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +section-reorder --base-id DWSREALTESTNOSUCHID0000000000000 --section-id DWSREALTESTNOSUCHID0000000000000 --target-index 1 --yes --format json", "args": [ "aitable", "+section-reorder", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--section-id", "DWSREALTESTNOSUCHID0000000000000", "--target-index", "1", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to reorder section for base DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"2132f5ca17840998853157434e08d9\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1193, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+table-delete", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +table-delete --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --reason 'DWS shortcut 真实测试安全负向清理' --yes --format json", "args": [ "aitable", "+table-delete", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--reason", "DWS shortcut 真实测试安全负向清理", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"BASE_NOT_FOUND\\\",\\\"message\\\":\\\"Specified base does not exist, has been deleted, or is inaccessible\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to delete table because base does not exist or is inaccessible\\\",\\\"trace_id\\\":\\\"2132f5ca17840998865048372e0852\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1199, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+table-update", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +table-update --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --name 'DWS shortcut 真实测试 20260715-151724' --description 'DWS shortcut 真实测试描述,可删除' --record-name-key task --yes --format json", "args": [ "aitable", "+table-update", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--name", "DWS shortcut 真实测试 20260715-151724", "--description", "DWS shortcut 真实测试描述,可删除", "--record-name-key", "task", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"404\\\",\\\"message\\\":\\\"getDentryDTO returns null\\\",\\\"retryable\\\":true,\\\"type\\\":\\\"SYSTEM_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to update table DWSREALTESTNOSUCHID0000000000000 in base DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"213ee25c17840998877246229e087f\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1249, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "后端/MCP 服务返回内部错误;CLI 无法直接修复,但报告保留 trace/stdout 供服务端排查。" }, { "service": "aitable", "command": "+view-delete", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +view-delete --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --view-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "aitable", "+view-delete", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--view-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to delete view DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"2106d98117840998889051250e08df\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1236, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+view-duplicate", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +view-duplicate --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --view-id DWSREALTESTNOSUCHID0000000000000 --new-name 'DWS shortcut 真实测试 20260715-151724' --yes --format json", "args": [ "aitable", "+view-duplicate", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--view-id", "DWSREALTESTNOSUCHID0000000000000", "--new-name", "DWS shortcut 真实测试 20260715-151724", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to duplicate view DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"2132f5ca17840998901765467e0853\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1160, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+view-lock", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +view-lock --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --view-id DWSREALTESTNOSUCHID0000000000000 --off --yes --format json", "args": [ "aitable", "+view-lock", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--view-id", "DWSREALTESTNOSUCHID0000000000000", "--off", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to lock_or_unlock view DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"2106d98117840998913717245e0941\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1215, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+view-set-fill-color-rule", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +view-set-fill-color-rule --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --view-id DWSREALTESTNOSUCHID0000000000000 --json '{}' --yes --format json", "args": [ "aitable", "+view-set-fill-color-rule", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--view-id", "DWSREALTESTNOSUCHID0000000000000", "--json", "{}", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_PARAMS\\\",\\\"message\\\":\\\"conditionalFormats is required\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to set fill color rule because conditionalFormats is missing\\\",\\\"trace_id\\\":\\\"2106d98117840998924181709e08df\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1046, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "后端/MCP 服务返回内部错误;CLI 无法直接修复,但报告保留 trace/stdout 供服务端排查。" }, { "service": "aitable", "command": "+view-set-frozen-cols", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +view-set-frozen-cols --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --view-id DWSREALTESTNOSUCHID0000000000000 --count 1 --yes --format json", "args": [ "aitable", "+view-set-frozen-cols", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--view-id", "DWSREALTESTNOSUCHID0000000000000", "--count", "1", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to set frozen columns for view DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"2106d98117840998935988648e08de\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1149, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+view-set-row-height", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +view-set-row-height --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --view-id DWSREALTESTNOSUCHID0000000000000 --cell-height 1 --yes --format json", "args": [ "aitable", "+view-set-row-height", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--view-id", "DWSREALTESTNOSUCHID0000000000000", "--cell-height", "1", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to set cell height for view DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"2106d98117840998949428245e08b8\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1345, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+view-update", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +view-update --base-id DWSREALTESTNOSUCHID0000000000000 --table-id DWSREALTESTNOSUCHID0000000000000 --view-id DWSREALTESTNOSUCHID0000000000000 --name 'DWS shortcut 真实测试 20260715-151724' --desc '{}' --config '{}' --yes --format json", "args": [ "aitable", "+view-update", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--table-id", "DWSREALTESTNOSUCHID0000000000000", "--view-id", "DWSREALTESTNOSUCHID0000000000000", "--name", "DWS shortcut 真实测试 20260715-151724", "--desc", "{}", "--config", "{}", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"INVALID_BASE_ID\\\",\\\"message\\\":\\\"baseId cannot be resolved to docId\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to update view DWSREALTESTNOSUCHID0000000000000\\\",\\\"trace_id\\\":\\\"213ee25c17840998961487395e087f\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1331, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+workflow-disable", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +workflow-disable --base-id DWSREALTESTNOSUCHID0000000000000 --workflow-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "aitable", "+workflow-disable", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--workflow-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"BASE_NOT_FOUND\\\",\\\"message\\\":\\\"Cannot resolve base 'DWSREALTESTNOSUCHID0000000000000', please check if the baseId is valid\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to disable workflow because base 'DWSREALTESTNOSUCHID0000000000000' could not be found\\\",\\\"trace_id\\\":\\\"213ee25c17840998975738372e087e\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1320, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "aitable", "command": "+workflow-enable", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test aitable +workflow-enable --base-id DWSREALTESTNOSUCHID0000000000000 --workflow-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "aitable", "+workflow-enable", "--base-id", "DWSREALTESTNOSUCHID0000000000000", "--workflow-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"internal\",\n \"code\": 1,\n \"message\": \"[MCP_TOOL_ERROR] {\\\"data\\\":{},\\\"error\\\":{\\\"code\\\":\\\"BASE_NOT_FOUND\\\",\\\"message\\\":\\\"Cannot resolve base 'DWSREALTESTNOSUCHID0000000000000', please check if the baseId is valid\\\",\\\"retryable\\\":false,\\\"type\\\":\\\"INPUT_ERROR\\\"},\\\"meta\\\":{},\\\"status\\\":\\\"error\\\",\\\"success\\\":true,\\\"summary\\\":\\\"Failed to enable workflow because base 'DWSREALTESTNOSUCHID0000000000000' could not be found\\\",\\\"trace_id\\\":\\\"0bab027317840998987508899e094d\\\"}\"\n }\n}", "exit_code": 1, "duration_ms": 1171, "failure_category": "missing-real-aitable-fixture", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "AI 表格命令需要真实 Base/Table/View/Record 等资源;安全负向 ID 只能验证调用链,不能让后端成功。" }, { "service": "attendance", "command": "+boss-check", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test attendance +boss-check --plan-id 999999999999 --result-id 999999999999 --time 2026-07-22T10:00:00+08:00 --result Normal --absent-min 1 --remark 'DWS shortcut 真实测试 20260715-151724,安全负向输入,请忽略。' --yes --format json", "args": [ "attendance", "+boss-check", "--plan-id", "999999999999", "--result-id", "999999999999", "--time", "2026-07-22T10:00:00+08:00", "--result", "Normal", "--absent-min", "1", "--remark", "DWS shortcut 真实测试 20260715-151724,安全负向输入,请忽略。", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/boss_check)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"C0002\",\n \"server_key\": \"attendance-wukong\",\n \"trace_id\": \"213ee25c17840998998942184e087d\"\n }\n}", "exit_code": 1, "duration_ms": 1136, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "attendance", "command": "+create-class", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test attendance +create-class --name 'DWS shortcut 真实测试 20260715-151724' --owner __DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__ --class-vo '{\"sections\":[{\"times\":[{\"checkType\":\"OnDuty\",\"checkTime\":\"09:00\",\"across\":0},{\"checkType\":\"OffDuty\",\"checkTime\":\"18:00\",\"across\":0}]}]}' --yes --format json", "args": [ "attendance", "+create-class", "--name", "DWS shortcut 真实测试 20260715-151724", "--owner", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__", "--class-vo", "{\"sections\":[{\"times\":[{\"checkType\":\"OnDuty\",\"checkTime\":\"09:00\",\"across\":0},{\"checkType\":\"OffDuty\",\"checkTime\":\"18:00\",\"across\":0}]}]}", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/create_class_setting)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"S0001\",\n \"server_key\": \"attendance-wukong\",\n \"trace_id\": \"0bab027317840999009926838e090b\"\n }\n}", "exit_code": 1, "duration_ms": 1148, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "attendance", "command": "+create-group", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test attendance +create-group --name 'DWS shortcut 真实测试 20260715-151724' --type FIXED --owner __DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__ --group-vo '{\"defaultClassId\":999999999999,\"workDayClassList\":[999999999999,999999999999,999999999999,999999999999,999999999999,0,0]}' --yes --format json", "args": [ "attendance", "+create-group", "--name", "DWS shortcut 真实测试 20260715-151724", "--type", "FIXED", "--owner", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__", "--group-vo", "{\"defaultClassId\":999999999999,\"workDayClassList\":[999999999999,999999999999,999999999999,999999999999,999999999999,0,0]}", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/create_group_setting)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"S0001\",\n \"server_key\": \"attendance-wukong\",\n \"trace_id\": \"2106d98117840999021121258e08b8\"\n }\n}", "exit_code": 1, "duration_ms": 1201, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "attendance", "command": "+import-schedule", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test attendance +import-schedule --group-id 999999999999 --schedules '[{\"userId\":\"202397\",\"workDate\":\"2026-07-16 09:00:00\",\"classId\":999999999999,\"isRest\":\"N\"}]' --yes --format json", "args": [ "attendance", "+import-schedule", "--group-id", "999999999999", "--schedules", "[{\"userId\":\"202397\",\"workDate\":\"2026-07-16 09:00:00\",\"classId\":999999999999,\"isRest\":\"N\"}]", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/generateTurnSchedule)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"S0003\",\n \"server_key\": \"attendance-wukong\",\n \"trace_id\": \"2104a64c17840999034845189e085e\"\n }\n}", "exit_code": 1, "duration_ms": 1271, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "attendance", "command": "+save-leave-balance", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test attendance +save-leave-balance --target __DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__ --leave-code DWSREALTESTNOSUCHID0000000000000 --num 1 --reason 'DWS shortcut 真实测试安全负向清理' --start 2026-07-16 --end 2026-08-14 --yes --format json", "args": [ "attendance", "+save-leave-balance", "--target", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__", "--leave-code", "DWSREALTESTNOSUCHID0000000000000", "--num", "1", "--reason", "DWS shortcut 真实测试安全负向清理", "--start", "2026-07-16", "--end", "2026-08-14", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] 无权更新指定员工的假期余额 (operation: attendance-wukong/update_leave_balance)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PERMISSION_DENIED\",\n \"server_key\": \"attendance-wukong\",\n \"trace_id\": \"2127d89817840999045751134e079c\"\n }\n}", "exit_code": 1, "duration_ms": 1081, "failure_category": "auth-or-permission", "fixability": "not-cli-fixable", "diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。" }, { "service": "attendance", "command": "+update-class", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test attendance +update-class --class-id 999999999999 --name 'DWS shortcut 真实测试 20260715-151724' --owner __DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__ --class-vo '{\"sections\":[{\"times\":[{\"checkType\":\"OnDuty\",\"checkTime\":\"09:00\",\"across\":0},{\"checkType\":\"OffDuty\",\"checkTime\":\"18:00\",\"across\":0}]}]}' --yes --format json", "args": [ "attendance", "+update-class", "--class-id", "999999999999", "--name", "DWS shortcut 真实测试 20260715-151724", "--owner", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__", "--class-vo", "{\"sections\":[{\"times\":[{\"checkType\":\"OnDuty\",\"checkTime\":\"09:00\",\"across\":0},{\"checkType\":\"OffDuty\",\"checkTime\":\"18:00\",\"across\":0}]}]}", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/update_class_setting)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"S0001\",\n \"server_key\": \"attendance-wukong\",\n \"trace_id\": \"0b5deb3217840999058236471e08b5\"\n }\n}", "exit_code": 1, "duration_ms": 1248, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "attendance", "command": "+update-group", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test attendance +update-group --group-id 999999999999 --name 'DWS shortcut 真实测试 20260715-151724' --type FIXED --owner __DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__ --enable-outside-check true --class-ids '[999999999999]' --group-vo '{\"defaultClassId\":999999999999,\"workDayClassList\":[999999999999,999999999999,999999999999,999999999999,999999999999,0,0]}' --yes --format json", "args": [ "attendance", "+update-group", "--group-id", "999999999999", "--name", "DWS shortcut 真实测试 20260715-151724", "--type", "FIXED", "--owner", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__", "--enable-outside-check", "true", "--class-ids", "[999999999999]", "--group-vo", "{\"defaultClassId\":999999999999,\"workDayClassList\":[999999999999,999999999999,999999999999,999999999999,999999999999,0,0]}", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/update_group_setting)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"S0001\",\n \"server_key\": \"attendance-wukong\",\n \"trace_id\": \"0b5deb3217840999068826691e087a\"\n }\n}", "exit_code": 1, "duration_ms": 1175, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "attendance", "command": "+update-group-members", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test attendance +update-group-members --group-id 999999999999 --add-users __DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__ --remove-users '' --add-extra-users '' --remove-extra-users '' --add-depts '' --remove-depts '' --yes --format json", "args": [ "attendance", "+update-group-members", "--group-id", "999999999999", "--add-users", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__", "--remove-users", "", "--add-extra-users", "", "--remove-extra-users", "", "--add-depts", "", "--remove-depts", "", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/update_group_member)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"S0002\",\n \"server_key\": \"attendance-wukong\",\n \"trace_id\": \"2127d89817840999081094644e07dd\"\n }\n}", "exit_code": 1, "duration_ms": 1170, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "attendance", "command": "+update-leave-type", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test attendance +update-leave-type --leave-code DWSREALTESTNOSUCHID0000000000000 --name 'DWS shortcut 真实测试 20260715-151724' --unit day --paid --per-hours 1 --when-can-leave entry --visibility-rules '[{\"type\":\"dept\",\"visible\":[\"-1\"]}]' --yes --format json", "args": [ "attendance", "+update-leave-type", "--leave-code", "DWSREALTESTNOSUCHID0000000000000", "--name", "DWS shortcut 真实测试 20260715-151724", "--unit", "day", "--paid", "--per-hours", "1", "--when-can-leave", "entry", "--visibility-rules", "[{\"type\":\"dept\",\"visible\":[\"-1\"]}]", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[RESOURCE_NOT_FOUND] Requested resource not found (operation: attendance-wukong/save_leave_type)\\n hint: Check if the resource exists or if your account has permission\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"INVALID_PARAMS\",\n \"server_key\": \"attendance-wukong\",\n \"trace_id\": \"0bb7c36217840999093924897e07fe\"\n }\n}", "exit_code": 1, "duration_ms": 1208, "failure_category": "auth-or-permission", "fixability": "not-cli-fixable", "diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。" }, { "service": "calendar", "command": "+respond-event", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test calendar +respond-event --event x --response accept --yes --format json", "args": [ "calendar", "+respond-event", "--event", "x", "--response", "accept", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] code: 300000, developerMessage: Event does not exist. (operation: calendar/respond)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"300000\",\n \"server_key\": \"calendar\",\n \"trace_id\": \"0bb7c36217840999105062121e07db\"\n }\n}", "exit_code": 1, "duration_ms": 1217, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "chat", "command": "+category-add-conversation", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +category-add-conversation --group cidDWSREALTESTNOSUCHCONV --category-ids 999999999999 --yes --format json", "args": [ "chat", "+category-add-conversation", "--group", "cidDWSREALTESTNOSUCHCONV", "--category-ids", "999999999999", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[RESOURCE_NOT_FOUND] Requested resource not found (operation: im/add_conv_to_categories)\\n hint: Check if the resource exists or if your account has permission\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"0b5deb3217840999117776203e08f9\"\n }\n}", "exit_code": 1, "duration_ms": 1213, "failure_category": "auth-or-permission", "fixability": "not-cli-fixable", "diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。" }, { "service": "chat", "command": "+category-remove-conversation", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +category-remove-conversation --group cidDWSREALTESTNOSUCHCONV --category-ids 999999999999 --yes --format json", "args": [ "chat", "+category-remove-conversation", "--group", "cidDWSREALTESTNOSUCHCONV", "--category-ids", "999999999999", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[RESOURCE_NOT_FOUND] Requested resource not found (operation: im/remove_conv_from_categories)\\n hint: Check if the resource exists or if your account has permission\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"2104a64c17840999130466520e085e\"\n }\n}", "exit_code": 1, "duration_ms": 1309, "failure_category": "auth-or-permission", "fixability": "not-cli-fixable", "diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。" }, { "service": "chat", "command": "+chat-add-bot", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +chat-add-bot --robot-code __DWS_SHORTCUT_REAL_TEST_NO_SUCH_ROBOT__ --id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "chat", "+chat-add-bot", "--robot-code", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_ROBOT__", "--id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[RESOURCE_NOT_FOUND] Requested resource not found (operation: bot/add_robot_to_group)\\n hint: Check if the resource exists or if your account has permission\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"500025\",\n \"server_key\": \"bot\",\n \"trace_id\": \"2104a64c17840999144193460e08c7\"\n }\n}", "exit_code": 1, "duration_ms": 1273, "failure_category": "auth-or-permission", "fixability": "not-cli-fixable", "diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。" }, { "service": "chat", "command": "+chat-audit-join", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +chat-audit-join --group cidDWSREALTESTNOSUCHCONV --record-id 999999999999 --applicant 103262 --inviter 519019 --status AuditApprove --description 'DWS shortcut 真实测试描述,可删除' --yes --format json", "args": [ "chat", "+chat-audit-join", "--group", "cidDWSREALTESTNOSUCHCONV", "--record-id", "999999999999", "--applicant", "103262", "--inviter", "519019", "--status", "AuditApprove", "--description", "DWS shortcut 真实测试描述,可删除", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] applicantUid is required (operation: im/audit_join_group)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"0bb7c36217840999154832733e0758\"\n }\n}", "exit_code": 1, "duration_ms": 1073, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "dry-run 已证明 CLI 装配了 applicantUid/inviterUid;真实后端仍报 applicantUid 缺失,优先按 MCP schema/服务端字段映射问题处理。" }, { "service": "chat", "command": "+chat-mute-member", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +chat-mute-member --group cidDWSREALTESTNOSUCHCONV --users __DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__ --mute-time 1 --off --yes --format json", "args": [ "chat", "+chat-mute-member", "--group", "cidDWSREALTESTNOSUCHCONV", "--users", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__", "--mute-time", "1", "--off", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openConversationId or cid is required (operation: im/set_group_member_mute_list)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"2104a64c17840999166036583e08a3\"\n }\n}", "exit_code": 1, "duration_ms": 1139, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "fake MCP 已证明 CLI 已装配会话 ID 字段;真实后端仍报 openConversationId/openCid/cid 缺失,优先按 MCP schema/服务端字段映射问题处理。" }, { "service": "chat", "command": "+chat-quit", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +chat-quit --group cidDWSREALTESTNOSUCHCONV --yes --format json", "args": [ "chat", "+chat-quit", "--group", "cidDWSREALTESTNOSUCHCONV", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] listBaseConversationByIds error (operation: im/quit_group)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"0bb7c36217840999176728426e0779\"\n }\n}", "exit_code": 1, "duration_ms": 1162, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "chat", "command": "+chat-remove-bot", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +chat-remove-bot --id DWSREALTESTNOSUCHID0000000000000 --bot-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "chat", "+chat-remove-bot", "--id", "DWSREALTESTNOSUCHID0000000000000", "--bot-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] 无效的会话 (operation: bot/remove_robot_in_group)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"500009\",\n \"server_key\": \"bot\",\n \"trace_id\": \"0b5deb3217840999189888305e08b5\"\n }\n}", "exit_code": 1, "duration_ms": 1220, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "chat", "command": "+chat-role-remove", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +chat-role-remove --group cidDWSREALTESTNOSUCHCONV --role-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "chat", "+chat-role-remove", "--group", "cidDWSREALTESTNOSUCHCONV", "--role-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] listBaseConversationByIds error (operation: im/remove_custom_group_role)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"2127d89817840999200483204e079c\"\n }\n}", "exit_code": 1, "duration_ms": 1054, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "chat", "command": "+chat-role-remove-user", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +chat-role-remove-user --group cidDWSREALTESTNOSUCHCONV --user __DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__ --role-ids DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "chat", "+chat-role-remove-user", "--group", "cidDWSREALTESTNOSUCHCONV", "--user", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__", "--role-ids", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] listBaseConversationByIds error (operation: im/remove_custom_user_roles)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"2127d89817840999211317952e0757\"\n }\n}", "exit_code": 1, "duration_ms": 1104, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "chat", "command": "+chat-transfer-owner", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +chat-transfer-owner --group cidDWSREALTESTNOSUCHCONV --new-owner __DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__ --yes --format json", "args": [ "chat", "+chat-transfer-owner", "--group", "cidDWSREALTESTNOSUCHCONV", "--new-owner", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openConversationId is required (operation: im/transfer_group_owner)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"im\",\n \"trace_id\": \"0b5deb3217840999222318863e087a\"\n }\n}", "exit_code": 1, "duration_ms": 1054, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "fake MCP 已证明 CLI 已装配会话 ID 字段;真实后端仍报 openConversationId/openCid/cid 缺失,优先按 MCP schema/服务端字段映射问题处理。" }, { "service": "chat", "command": "+chat-update-icon", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +chat-update-icon --group cidDWSREALTESTNOSUCHCONV --icon-media-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "chat", "+chat-update-icon", "--group", "cidDWSREALTESTNOSUCHCONV", "--icon-media-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] listBaseConversationByIds error (operation: im/update_group_icon)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"2104a64c17840999232478654e0819\"\n }\n}", "exit_code": 1, "duration_ms": 1023, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "chat", "command": "+chat-update-settings", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +chat-update-settings --group cidDWSREALTESTNOSUCHCONV --setting-key x --status 1 --yes --format json", "args": [ "chat", "+chat-update-settings", "--group", "cidDWSREALTESTNOSUCHCONV", "--setting-key", "x", "--status", "1", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] unsupported setting key: x (operation: im/update_group_settings)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"2127d89817840999244326971e07dd\"\n }\n}", "exit_code": 1, "duration_ms": 1184, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "chat", "command": "+conversation-clear-messages", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +conversation-clear-messages --conversation-id cidDWSREALTESTNOSUCHCONV --yes --format json", "args": [ "chat", "+conversation-clear-messages", "--conversation-id", "cidDWSREALTESTNOSUCHCONV", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openConversationId or cid is required (operation: im/clear_conversation_messages)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"2127d89817840999254816721e079b\"\n }\n}", "exit_code": 1, "duration_ms": 1065, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "fake MCP 已证明 CLI 已装配会话 ID 字段;真实后端仍报 openConversationId/openCid/cid 缺失,优先按 MCP schema/服务端字段映射问题处理。" }, { "service": "chat", "command": "+conversation-clear-red-point", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +conversation-clear-red-point --conversation-id cidDWSREALTESTNOSUCHCONV --yes --format json", "args": [ "chat", "+conversation-clear-red-point", "--conversation-id", "cidDWSREALTESTNOSUCHCONV", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openConversationId or cid is required (operation: im/clear_conversation_red_point)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"2104a64c17840999265511295e085f\"\n }\n}", "exit_code": 1, "duration_ms": 1044, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "fake MCP 已证明 CLI 已装配会话 ID 字段;真实后端仍报 openConversationId/openCid/cid 缺失,优先按 MCP schema/服务端字段映射问题处理。" }, { "service": "chat", "command": "+conversation-hide", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +conversation-hide --conversation-id cidDWSREALTESTNOSUCHCONV --yes --format json", "args": [ "chat", "+conversation-hide", "--conversation-id", "cidDWSREALTESTNOSUCHCONV", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openConversationId or cid is required (operation: im/hide_conversation)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"2127d89817840999276117140e079b\"\n }\n}", "exit_code": 1, "duration_ms": 1064, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "fake MCP 已证明 CLI 已装配会话 ID 字段;真实后端仍报 openConversationId/openCid/cid 缺失,优先按 MCP schema/服务端字段映射问题处理。" }, { "service": "chat", "command": "+conversation-mark-read", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +conversation-mark-read --conversation-id cidDWSREALTESTNOSUCHCONV --message-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "chat", "+conversation-mark-read", "--conversation-id", "cidDWSREALTESTNOSUCHCONV", "--message-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openConversationId无效,无法解析为cid (operation: im/mark_message_read)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"im\",\n \"trace_id\": \"2127d89817840999287654280e07bd\"\n }\n}", "exit_code": 1, "duration_ms": 1162, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "chat", "command": "+conversation-mark-unread", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +conversation-mark-unread --conversation-id cidDWSREALTESTNOSUCHCONV --yes --format json", "args": [ "chat", "+conversation-mark-unread", "--conversation-id", "cidDWSREALTESTNOSUCHCONV", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openConversationId or cid is required (operation: im/mark_conversation_unread)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"0bb7c36217840999298744910e0758\"\n }\n}", "exit_code": 1, "duration_ms": 1090, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "fake MCP 已证明 CLI 已装配会话 ID 字段;真实后端仍报 openConversationId/openCid/cid 缺失,优先按 MCP schema/服务端字段映射问题处理。" }, { "service": "chat", "command": "+conversation-mute", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +conversation-mute --conversation-id cidDWSREALTESTNOSUCHCONV --off --yes --format json", "args": [ "chat", "+conversation-mute", "--conversation-id", "cidDWSREALTESTNOSUCHCONV", "--off", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openConversationId is required (operation: im/update_notification_off)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"im\",\n \"trace_id\": \"2104a64c17840999309241865e085f\"\n }\n}", "exit_code": 1, "duration_ms": 1052, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "fake MCP 已证明 CLI 已装配会话 ID 字段;真实后端仍报 openConversationId/openCid/cid 缺失,优先按 MCP schema/服务端字段映射问题处理。" }, { "service": "chat", "command": "+conversation-mute-at-all", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +conversation-mute-at-all --conversation-id cidDWSREALTESTNOSUCHCONV --off --yes --format json", "args": [ "chat", "+conversation-mute-at-all", "--conversation-id", "cidDWSREALTESTNOSUCHCONV", "--off", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openConversationId is required (operation: im/update_at_all_notification_off)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"im\",\n \"trace_id\": \"2127d89817840999320028068e07dd\"\n }\n}", "exit_code": 1, "duration_ms": 1110, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "fake MCP 已证明 CLI 已装配会话 ID 字段;真实后端仍报 openConversationId/openCid/cid 缺失,优先按 MCP schema/服务端字段映射问题处理。" }, { "service": "chat", "command": "+conversation-mute-red-envelope", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +conversation-mute-red-envelope --conversation-id cidDWSREALTESTNOSUCHCONV --off --yes --format json", "args": [ "chat", "+conversation-mute-red-envelope", "--conversation-id", "cidDWSREALTESTNOSUCHCONV", "--off", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openConversationId is required (operation: im/update_red_env_notification_off)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"im\",\n \"trace_id\": \"0bb7c36217840999330228283e07fe\"\n }\n}", "exit_code": 1, "duration_ms": 1001, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "fake MCP 已证明 CLI 已装配会话 ID 字段;真实后端仍报 openConversationId/openCid/cid 缺失,优先按 MCP schema/服务端字段映射问题处理。" }, { "service": "chat", "command": "+conversation-set-top", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +conversation-set-top --conversation-id cidDWSREALTESTNOSUCHCONV --off --yes --format json", "args": [ "chat", "+conversation-set-top", "--conversation-id", "cidDWSREALTESTNOSUCHCONV", "--off", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openConversationId or cid is required (operation: im/set_top_conversation)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"2127d89817840999341302961e07fe\"\n }\n}", "exit_code": 1, "duration_ms": 1102, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "fake MCP 已证明 CLI 已装配会话 ID 字段;真实后端仍报 openConversationId/openCid/cid 缺失,优先按 MCP schema/服务端字段映射问题处理。" }, { "service": "chat", "command": "+messages-add-emoji", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-add-emoji --conversation-id cidDWSREALTESTNOSUCHCONV --msg-id DWSREALTESTNOSUCHID0000000000000 --emoji '👍' --yes --format json", "args": [ "chat", "+messages-add-emoji", "--conversation-id", "cidDWSREALTESTNOSUCHCONV", "--msg-id", "DWSREALTESTNOSUCHID0000000000000", "--emoji", "👍", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] invalid openMsgId: DWSREALTESTNOSUCHID0000000000000 (operation: im/add_emoji_reaction)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"im\",\n \"trace_id\": \"2127d89817840999352941910e0756\"\n }\n}", "exit_code": 1, "duration_ms": 1170, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "chat", "command": "+messages-add-text-emotion", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-add-text-emotion --conversation-id cidDWSREALTESTNOSUCHCONV --msg-id DWSREALTESTNOSUCHID0000000000000 --emotion-id DWSREALTESTNOSUCHID0000000000000 --emotion-name 'DWS测试表情' --text 'DWS shortcut 真实测试 20260715-151724,安全负向输入,请忽略。' --background-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "chat", "+messages-add-text-emotion", "--conversation-id", "cidDWSREALTESTNOSUCHCONV", "--msg-id", "DWSREALTESTNOSUCHID0000000000000", "--emotion-id", "DWSREALTESTNOSUCHID0000000000000", "--emotion-name", "DWS测试表情", "--text", "DWS shortcut 真实测试 20260715-151724,安全负向输入,请忽略。", "--background-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] invalid openMsgId: DWSREALTESTNOSUCHID0000000000000 (operation: im/add_text_emotion)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"im\",\n \"trace_id\": \"0b5deb3217840999362862711e08b5\"\n }\n}", "exit_code": 1, "duration_ms": 992, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "chat", "command": "+messages-batch-recall-by-bot", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-batch-recall-by-bot --robot-code __DWS_SHORTCUT_REAL_TEST_NO_SUCH_ROBOT__ --keys DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "chat", "+messages-batch-recall-by-bot", "--robot-code", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_ROBOT__", "--keys", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: bot/batch_recall_robot_users_msg)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"retryable\": true,\n \"server_error_code\": \"ERROR\",\n \"server_key\": \"bot\",\n \"technical_detail\": \"iPaaS 调用失败: 调用远程服务业务异常, 出参校验不通过。root.success当前值:false, 预期值:true,所有值:{\\\"success\\\":false,\\\"dingOpenErrcode\\\":400014,\\\"errorMsg\\\":\\\"错误描述: robot 不存在;解决方案:请确认 robotCode 是否正确;\\\"} \",\n \"trace_id\": \"2104a64c17840999373456305e0817\"\n }\n}", "exit_code": 1, "duration_ms": 1085, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "chat", "command": "+messages-batch-send-by-bot", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-batch-send-by-bot --robot-code __DWS_SHORTCUT_REAL_TEST_NO_SUCH_ROBOT__ --title 'DWS shortcut 真实测试 20260715-151724' --text 'DWS shortcut 真实测试 20260715-151724,安全负向输入,请忽略。' --users __DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__ --open-dingtalk-ids '' --at-all --yes --format json", "args": [ "chat", "+messages-batch-send-by-bot", "--robot-code", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_ROBOT__", "--title", "DWS shortcut 真实测试 20260715-151724", "--text", "DWS shortcut 真实测试 20260715-151724,安全负向输入,请忽略。", "--users", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__", "--open-dingtalk-ids", "", "--at-all", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: bot/batch_send_robot_msg_to_users)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"retryable\": true,\n \"server_error_code\": \"ERROR\",\n \"server_key\": \"bot\",\n \"technical_detail\": \"iPaaS 调用失败: 调用远程服务业务异常, 出参校验不通过。root.success当前值:false, 预期值:true,所有值:{\\\"success\\\":false,\\\"dingOpenErrcode\\\":400106,\\\"errorMsg\\\":\\\"错误描述: robot 不存在;解决方案:请确认 robotCode 是否正确;\\\"} \",\n \"trace_id\": \"0bb7c36217840999385748776e0757\"\n }\n}", "exit_code": 1, "duration_ms": 1211, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "chat", "command": "+messages-combine-forward", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-combine-forward --src-conversation-id cidDWSREALTESTNOSUCHCONV --msg-ids DWSREALTESTNOSUCHID0000000000000 --dest-conversation-id cidDWSREALTESTNOSUCHCONV --uuid dws-shortcut-real-negative-20260715-151724 --yes --format json", "args": [ "chat", "+messages-combine-forward", "--src-conversation-id", "cidDWSREALTESTNOSUCHCONV", "--msg-ids", "DWSREALTESTNOSUCHID0000000000000", "--dest-conversation-id", "cidDWSREALTESTNOSUCHCONV", "--uuid", "dws-shortcut-real-negative-20260715-151724", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] srcOpenCid无效,无法解析为cid (operation: im/combine_forward_messages)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"im\",\n \"trace_id\": \"2104a64c17840999396596163e08ee\"\n }\n}", "exit_code": 1, "duration_ms": 1075, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "chat", "command": "+messages-create-text-emotion", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-create-text-emotion --emotion-name 'DWS测试表情' --text 'DWS shortcut 真实测试 20260715-151724,安全负向输入,请忽略。' --background-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "chat", "+messages-create-text-emotion", "--emotion-name", "DWS测试表情", "--text", "DWS shortcut 真实测试 20260715-151724,安全负向输入,请忽略。", "--background-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] 暂不支持保存该文字表情 (operation: im/create_text_emotion)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"400519\",\n \"server_key\": \"im\",\n \"trace_id\": \"0b5deb3217840999407422891e08cd\"\n }\n}", "exit_code": 1, "duration_ms": 1054, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "chat", "command": "+messages-forward", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-forward --src-conversation-id cidDWSREALTESTNOSUCHCONV --msg-id DWSREALTESTNOSUCHID0000000000000 --dest-conversation-id cidDWSREALTESTNOSUCHCONV --uuid dws-shortcut-real-negative-20260715-151724 --yes --format json", "args": [ "chat", "+messages-forward", "--src-conversation-id", "cidDWSREALTESTNOSUCHCONV", "--msg-id", "DWSREALTESTNOSUCHID0000000000000", "--dest-conversation-id", "cidDWSREALTESTNOSUCHCONV", "--uuid", "dws-shortcut-real-negative-20260715-151724", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openMessageId解密失败 (operation: im/forward_message)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"im\",\n \"trace_id\": \"2104a64c17840999417966407e08ee\"\n }\n}", "exit_code": 1, "duration_ms": 1090, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "chat", "command": "+messages-forward-topic", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-forward-topic --src-msg-id DWSREALTESTNOSUCHID0000000000000 --src-conversation-id cidDWSREALTESTNOSUCHCONV --src-thread-id DWSREALTESTNOSUCHID0000000000000 --dest-conversation-id cidDWSREALTESTNOSUCHCONV --yes --format json", "args": [ "chat", "+messages-forward-topic", "--src-msg-id", "DWSREALTESTNOSUCHID0000000000000", "--src-conversation-id", "cidDWSREALTESTNOSUCHCONV", "--src-thread-id", "DWSREALTESTNOSUCHID0000000000000", "--dest-conversation-id", "cidDWSREALTESTNOSUCHCONV", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openMessageId解密失败 (operation: im/forward_topic)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"im\",\n \"trace_id\": \"2127d89817840999428541474e07dd\"\n }\n}", "exit_code": 1, "duration_ms": 1043, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "chat", "command": "+messages-recall", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-recall --conversation-id cidDWSREALTESTNOSUCHCONV --msg-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "chat", "+messages-recall", "--conversation-id", "cidDWSREALTESTNOSUCHCONV", "--msg-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openConversationId无效,无法解析为cid (operation: im/recall_message)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"im\",\n \"trace_id\": \"2104a64c17840999441138103e08c7\"\n }\n}", "exit_code": 1, "duration_ms": 1247, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "chat", "command": "+messages-recall-by-bot", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-recall-by-bot --robot-code __DWS_SHORTCUT_REAL_TEST_NO_SUCH_ROBOT__ --group cidDWSREALTESTNOSUCHCONV --keys DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "chat", "+messages-recall-by-bot", "--robot-code", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_ROBOT__", "--group", "cidDWSREALTESTNOSUCHCONV", "--keys", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: bot/recall_robot_group_message)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"bot\",\n \"technical_detail\": \"iPaaS 调用失败: 调用远程服务业务异常, 出参校验不通过。DingOpenResult.success当前值:false, 预期值:true,所有值:{\\\"success\\\":false,\\\"dingOpenErrcode\\\":400012,\\\"errorMsg\\\":\\\"错误描述:无效的openConversationId此参数的示例值如\\\\\\\"cidl1B8RVUFmkXXXXXX\\\\\\\";解决方案:请检查拼写是否正确;参考链接:请参考本接口对应文档查看参数的获取方式,或者在https://open.dingtalk.com/ 查询如何获取对应的参数\\\"} \",\n \"trace_id\": \"2104a64c17840999454382709e08a3\"\n }\n}", "exit_code": 1, "duration_ms": 1317, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "chat", "command": "+messages-remove-emoji", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-remove-emoji --conversation-id cidDWSREALTESTNOSUCHCONV --msg-id DWSREALTESTNOSUCHID0000000000000 --emoji '👍' --yes --format json", "args": [ "chat", "+messages-remove-emoji", "--conversation-id", "cidDWSREALTESTNOSUCHCONV", "--msg-id", "DWSREALTESTNOSUCHID0000000000000", "--emoji", "👍", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] invalid openMsgId: DWSREALTESTNOSUCHID0000000000000 (operation: im/remove_emoji_reaction)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"im\",\n \"trace_id\": \"0b5deb3217840999467733059e08f9\"\n }\n}", "exit_code": 1, "duration_ms": 1347, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "chat", "command": "+messages-remove-text-emotion", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-remove-text-emotion --conversation-id cidDWSREALTESTNOSUCHCONV --msg-id DWSREALTESTNOSUCHID0000000000000 --emotion-id DWSREALTESTNOSUCHID0000000000000 --emotion-name 'DWS测试表情' --text 'DWS shortcut 真实测试 20260715-151724,安全负向输入,请忽略。' --background-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "chat", "+messages-remove-text-emotion", "--conversation-id", "cidDWSREALTESTNOSUCHCONV", "--msg-id", "DWSREALTESTNOSUCHID0000000000000", "--emotion-id", "DWSREALTESTNOSUCHID0000000000000", "--emotion-name", "DWS测试表情", "--text", "DWS shortcut 真实测试 20260715-151724,安全负向输入,请忽略。", "--background-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] invalid openMsgId: DWSREALTESTNOSUCHID0000000000000 (operation: im/remove_text_emotion)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"im\",\n \"trace_id\": \"0b5deb3217840999478923406e087f\"\n }\n}", "exit_code": 1, "duration_ms": 1210, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "chat", "command": "+messages-send-by-bot", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-send-by-bot --robot-code __DWS_SHORTCUT_REAL_TEST_NO_SUCH_ROBOT__ --group cidDWSREALTESTNOSUCHCONV --title 'DWS shortcut 真实测试 20260715-151724' --text 'DWS shortcut 真实测试 20260715-151724,安全负向输入,请忽略。' --at-user-ids __DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__ --at-open-dingtalk-ids '' --at-all --yes --format json", "args": [ "chat", "+messages-send-by-bot", "--robot-code", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_ROBOT__", "--group", "cidDWSREALTESTNOSUCHCONV", "--title", "DWS shortcut 真实测试 20260715-151724", "--text", "DWS shortcut 真实测试 20260715-151724,安全负向输入,请忽略。", "--at-user-ids", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__", "--at-open-dingtalk-ids", "", "--at-all", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: bot/send_robot_group_message)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"BUSINESS_ERROR\",\n \"server_key\": \"bot\",\n \"technical_detail\": \"iPaaS 调用失败: 调用远程服务业务异常, 出参校验不通过。DingOpenResult.success当前值:false, 预期值:true,所有值:{\\\"success\\\":false,\\\"errorCode\\\":\\\"400004\\\",\\\"errorMsg\\\":\\\"robotCode对应的机器人模板不存在\\\"} \",\n \"trace_id\": \"0b5deb3217840999494005921e08ef\"\n }\n}", "exit_code": 1, "duration_ms": 1436, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "chat", "command": "+messages-send-card", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-send-card --receiver 103262 --yes --format json", "args": [ "chat", "+messages-send-card", "--receiver", "103262", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] receiverUid和openConversationId不能同时为空 (operation: im/create_and_send_card)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"im\",\n \"trace_id\": \"2104a64c17840999509255753e081a\"\n }\n}", "exit_code": 1, "duration_ms": 1502, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "dry-run 已证明 CLI 装配了 receiverUid;真实后端仍报 receiverUid/openConversationId 为空,优先按 MCP schema/服务端字段映射问题处理。" }, { "service": "chat", "command": "+messages-set-pin", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-set-pin --open-conversation-id cidDWSREALTESTNOSUCHCONV --msg-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "chat", "+messages-set-pin", "--open-conversation-id", "cidDWSREALTESTNOSUCHCONV", "--msg-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openConversationId or cid is required (operation: im/set_pin_message)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"0bb7c36217840999521117991e0758\"\n }\n}", "exit_code": 1, "duration_ms": 1217, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "fake MCP 已证明 CLI 已装配会话 ID 字段;真实后端仍报 openConversationId/openCid/cid 缺失,优先按 MCP schema/服务端字段映射问题处理。" }, { "service": "chat", "command": "+messages-set-top", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-set-top --open-conversation-id cidDWSREALTESTNOSUCHCONV --msg-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "chat", "+messages-set-top", "--open-conversation-id", "cidDWSREALTESTNOSUCHCONV", "--msg-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openMessageId解密失败 (operation: im/set_top_message)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"im\",\n \"trace_id\": \"2104a64c17840999532438476e0817\"\n }\n}", "exit_code": 1, "duration_ms": 1121, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "chat", "command": "+messages-unset-pin", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-unset-pin --open-conversation-id cidDWSREALTESTNOSUCHCONV --msg-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "chat", "+messages-unset-pin", "--open-conversation-id", "cidDWSREALTESTNOSUCHCONV", "--msg-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openConversationId or cid is required (operation: im/unset_pin_message)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"1001\",\n \"server_key\": \"im\",\n \"trace_id\": \"2104a64c17840999544428103e08ee\"\n }\n}", "exit_code": 1, "duration_ms": 1185, "failure_category": "backend-or-mcp-error", "fixability": "not-cli-fixable-first", "diagnosis": "fake MCP 已证明 CLI 已装配会话 ID 字段;真实后端仍报 openConversationId/openCid/cid 缺失,优先按 MCP schema/服务端字段映射问题处理。" }, { "service": "chat", "command": "+messages-unset-top", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test chat +messages-unset-top --open-conversation-id cidDWSREALTESTNOSUCHCONV --msg-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "chat", "+messages-unset-top", "--open-conversation-id", "cidDWSREALTESTNOSUCHCONV", "--msg-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] openMessageId解密失败 (operation: im/unset_top_message)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"im\",\n \"trace_id\": \"0b5deb3217840999554154221e08f9\"\n }\n}", "exit_code": 1, "duration_ms": 963, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "devapp", "command": "+event-subscribe", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test devapp +event-subscribe --unified-app-id DWSREALTESTNOSUCHID0000000000000 --event-codes '[]' --yes --format json", "args": [ "devapp", "+event-subscribe", "--unified-app-id", "DWSREALTESTNOSUCHID0000000000000", "--event-codes", "[]", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] 当前用户没有应用事件订阅权限 (operation: devapp/subscribe_dev_app_events)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"503\",\n \"server_key\": \"devapp\",\n \"trace_id\": \"2104a64c17840999564022020e08c7\"\n }\n}", "exit_code": 1, "duration_ms": 1034, "failure_category": "auth-or-permission", "fixability": "not-cli-fixable", "diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。" }, { "service": "devapp", "command": "+event-unsubscribe", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test devapp +event-unsubscribe --unified-app-id DWSREALTESTNOSUCHID0000000000000 --event-codes '[]' --yes --format json", "args": [ "devapp", "+event-unsubscribe", "--unified-app-id", "DWSREALTESTNOSUCHID0000000000000", "--event-codes", "[]", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: devapp/unsubscribe_dev_app_events)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"AUTH_ERROR\",\n \"server_key\": \"devapp\",\n \"technical_detail\": \"iPaaS 调用失败: 调用远程服务业务异常, 出参校验不通过。ServiceResult.success当前值:false, 预期值:true,所有值:{\\\"success\\\":false,\\\"errorCode\\\":\\\"503\\\",\\\"errorMsg\\\":\\\"当前用户没有应用事件订阅权限\\\"} \",\n \"trace_id\": \"0bb7c36217840999575698500e07db\"\n }\n}", "exit_code": 1, "duration_ms": 1134, "failure_category": "auth-or-permission", "fixability": "not-cli-fixable", "diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。" }, { "service": "devapp", "command": "+permission-add", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test devapp +permission-add --unified-app-id DWSREALTESTNOSUCHID0000000000000 --scope-values '[]' --yes --format json", "args": [ "devapp", "+permission-add", "--unified-app-id", "DWSREALTESTNOSUCHID0000000000000", "--scope-values", "[]", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] 当前用户没有开发者身份 (operation: devapp/apply_dev_app_permissions)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"503\",\n \"server_key\": \"devapp\",\n \"trace_id\": \"2127d89817840999587758457e079c\"\n }\n}", "exit_code": 1, "duration_ms": 1186, "failure_category": "auth-or-permission", "fixability": "not-cli-fixable", "diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。" }, { "service": "devapp", "command": "+permission-remove", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test devapp +permission-remove --unified-app-id DWSREALTESTNOSUCHID0000000000000 --scope-values '[]' --yes --format json", "args": [ "devapp", "+permission-remove", "--unified-app-id", "DWSREALTESTNOSUCHID0000000000000", "--scope-values", "[]", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] 当前用户没有开发者身份 (operation: devapp/remove_dev_app_permissions)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"503\",\n \"server_key\": \"devapp\",\n \"trace_id\": \"2104a64c17840999598445247e085e\"\n }\n}", "exit_code": 1, "duration_ms": 1061, "failure_category": "auth-or-permission", "fixability": "not-cli-fixable", "diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。" }, { "service": "devapp", "command": "+robot-config", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test devapp +robot-config --unified-app-id DWSREALTESTNOSUCHID0000000000000 --name 'DWS shortcut 真实测试 20260715-151724' --brief x --desc 'DWS shortcut 真实测试描述,可删除' --icon-media-id DWSREALTESTNOSUCHID0000000000000 --outgoing-url https://example.invalid/dws-shortcut-real-test --event-callback-url https://example.invalid/dws-shortcut-real-test --mode HTTPS --skills '[]' --add-scope --disable-ssl-verify --yes --format json", "args": [ "devapp", "+robot-config", "--unified-app-id", "DWSREALTESTNOSUCHID0000000000000", "--name", "DWS shortcut 真实测试 20260715-151724", "--brief", "x", "--desc", "DWS shortcut 真实测试描述,可删除", "--icon-media-id", "DWSREALTESTNOSUCHID0000000000000", "--outgoing-url", "https://example.invalid/dws-shortcut-real-test", "--event-callback-url", "https://example.invalid/dws-shortcut-real-test", "--mode", "HTTPS", "--skills", "[]", "--add-scope", "--disable-ssl-verify", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: devapp/set_extension_robot_config)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"AUTH_ERROR\",\n \"server_key\": \"devapp\",\n \"technical_detail\": \"iPaaS 调用失败: 调用远程服务业务异常, 出参校验不通过。ServiceResult.success当前值:false, 预期值:true,所有值:{\\\"success\\\":false,\\\"errorCode\\\":\\\"503\\\",\\\"errorMsg\\\":\\\"当前用户没有应用机器人配置权限\\\"} \",\n \"trace_id\": \"0bb7c36217840999609828961e07db\"\n }\n}", "exit_code": 1, "duration_ms": 1167, "failure_category": "auth-or-permission", "fixability": "not-cli-fixable", "diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。" }, { "service": "devapp", "command": "+robot-disable", "risk": "high-risk-write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test devapp +robot-disable --unified-app-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "devapp", "+robot-disable", "--unified-app-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: devapp/disable_dev_app_robot)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"AUTH_ERROR\",\n \"server_key\": \"devapp\",\n \"technical_detail\": \"iPaaS 调用失败: 调用远程服务业务异常, 出参校验不通过。ServiceResult.success当前值:false, 预期值:true,所有值:{\\\"success\\\":false,\\\"errorCode\\\":\\\"503\\\",\\\"errorMsg\\\":\\\"当前用户没有应用机器人配置权限\\\"} \",\n \"trace_id\": \"2104a64c17840999620461113e08ee\"\n }\n}", "exit_code": 1, "duration_ms": 1062, "failure_category": "auth-or-permission", "fixability": "not-cli-fixable", "diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。" }, { "service": "devapp", "command": "+robot-enable", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test devapp +robot-enable --unified-app-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "devapp", "+robot-enable", "--unified-app-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: devapp/enable_dev_app_robot)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"AUTH_ERROR\",\n \"server_key\": \"devapp\",\n \"technical_detail\": \"iPaaS 调用失败: 调用远程服务业务异常, 出参校验不通过。ServiceResult.success当前值:false, 预期值:true,所有值:{\\\"success\\\":false,\\\"errorCode\\\":\\\"503\\\",\\\"errorMsg\\\":\\\"当前用户没有应用机器人配置权限\\\"} \",\n \"trace_id\": \"0bb7c36217840999632641525e0758\"\n }\n}", "exit_code": 1, "duration_ms": 1306, "failure_category": "auth-or-permission", "fixability": "not-cli-fixable", "diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。" }, { "service": "devapp", "command": "+security-config", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test devapp +security-config --unified-app-id DWSREALTESTNOSUCHID0000000000000 --ip-whitelist 127.0.0.1 --redirect-urls https://example.invalid/dws-shortcut-real-test --sso-urls https://example.invalid/dws-shortcut-real-test --yes --format json", "args": [ "devapp", "+security-config", "--unified-app-id", "DWSREALTESTNOSUCHID0000000000000", "--ip-whitelist", "127.0.0.1", "--redirect-urls", "https://example.invalid/dws-shortcut-real-test", "--sso-urls", "https://example.invalid/dws-shortcut-real-test", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] 当前用户没有开发者身份 (operation: devapp/update_dev_app_security_config)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"503\",\n \"server_key\": \"devapp\",\n \"trace_id\": \"2104a64c17840999645522046e0817\"\n }\n}", "exit_code": 1, "duration_ms": 1205, "failure_category": "auth-or-permission", "fixability": "not-cli-fixable", "diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。" }, { "service": "devapp", "command": "+version-create", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test devapp +version-create --unified-app-id DWSREALTESTNOSUCHID0000000000000 --version 0.0.1-dws-real-test --desc 'DWS shortcut 真实测试描述,可删除' --yes --format json", "args": [ "devapp", "+version-create", "--unified-app-id", "DWSREALTESTNOSUCHID0000000000000", "--version", "0.0.1-dws-real-test", "--desc", "DWS shortcut 真实测试描述,可删除", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: devapp/create_dev_app_version)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"BUSINESS_ERROR\",\n \"server_key\": \"devapp\",\n \"technical_detail\": \"iPaaS 调用失败: 调用远程服务业务异常, 出参校验不通过。ServiceResult.success当前值:false, 预期值:true,所有值:{\\\"success\\\":false,\\\"errorCode\\\":\\\"450001\\\"} \",\n \"trace_id\": \"0b5deb3217840999656705920e0853\"\n }\n}", "exit_code": 1, "duration_ms": 1157, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "devapp", "command": "+version-publish", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test devapp +version-publish --unified-app-id DWSREALTESTNOSUCHID0000000000000 --version-id DWSREALTESTNOSUCHID0000000000000 --confirmed-sensitive --approver-user-id __DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__ --yes --format json", "args": [ "devapp", "+version-publish", "--unified-app-id", "DWSREALTESTNOSUCHID0000000000000", "--version-id", "DWSREALTESTNOSUCHID0000000000000", "--confirmed-sensitive", "--approver-user-id", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] business error: success=false (operation: devapp/publish_dev_app_version)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"BUSINESS_ERROR\",\n \"server_key\": \"devapp\",\n \"technical_detail\": \"iPaaS 调用失败: 调用远程服务业务异常, 出参校验不通过。ServiceResult.success当前值:false, 预期值:true,所有值:{\\\"success\\\":false,\\\"errorCode\\\":\\\"450001\\\"} \",\n \"trace_id\": \"2127d89817840999667906017e075d\"\n }\n}", "exit_code": 1, "duration_ms": 1071, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "ding", "command": "+send-by-message", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test ding +send-by-message --group cidDWSREALTESTNOSUCHCONV --message-id DWSREALTESTNOSUCHID0000000000000 --users __DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__ --type FIXED --uuid dws-shortcut-real-negative-20260715-151724 --yes --format json", "args": [ "ding", "+send-by-message", "--group", "cidDWSREALTESTNOSUCHCONV", "--message-id", "DWSREALTESTNOSUCHID0000000000000", "--users", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_USER__", "--type", "FIXED", "--uuid", "dws-shortcut-real-negative-20260715-151724", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] remindType非法,合法值:APP/SMS/PHONE (operation: im/send_ding_by_message)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"PARAM_ERROR\",\n \"server_key\": \"im\",\n \"trace_id\": \"0b5deb3217840999678466213e0853\"\n }\n}", "exit_code": 1, "duration_ms": 1058, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "doc", "command": "+comment-create-inline", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test doc +comment-create-inline --node DWSREALTESTNOSUCHID0000000000000 --content 'DWS shortcut 真实测试 20260715-151724,安全负向输入,请忽略。' --block-id DWSREALTESTNOSUCHID0000000000000 --start 0 --end 1 --selected-text 'DWS测试' --mention x --yes --format json", "args": [ "doc", "+comment-create-inline", "--node", "DWSREALTESTNOSUCHID0000000000000", "--content", "DWS shortcut 真实测试 20260715-151724,安全负向输入,请忽略。", "--block-id", "DWSREALTESTNOSUCHID0000000000000", "--start", "0", "--end", "1", "--selected-text", "DWS测试", "--mention", "x", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[TABLE_NOT_FOUND] Requested resource not found (operation: doc-comment/create_inline_comment)\\n hint: Document may have been deleted or moved\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"invalidRequest.inputArgs.invalid\",\n \"server_key\": \"doc-comment\",\n \"trace_id\": \"2127d89817840999689931893e079c\"\n }\n}", "exit_code": 1, "duration_ms": 1183, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "doc", "command": "+template-apply", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test doc +template-apply --template-id DWSREALTESTNOSUCHID0000000000000 --name 'DWS shortcut 真实测试 20260715-151724' --folder DWSREALTESTNOSUCHID0000000000000 --workspace DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "doc", "+template-apply", "--template-id", "DWSREALTESTNOSUCHID0000000000000", "--name", "DWS shortcut 真实测试 20260715-151724", "--folder", "DWSREALTESTNOSUCHID0000000000000", "--workspace", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[RESOURCE_NOT_FOUND] Requested resource not found (operation: doc/apply_doc_template)\\n hint: Check if the resource exists or if your account has permission\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"invalidRequest.inputArgs.invalid\",\n \"server_key\": \"doc\",\n \"trace_id\": \"2127d89817840999701186954e0757\"\n }\n}", "exit_code": 1, "duration_ms": 1093, "failure_category": "auth-or-permission", "fixability": "not-cli-fixable", "diagnosis": "真实账号、应用 scope 或资源权限不足;CLI 只能如实暴露,不能在本仓库内修复权限。" }, { "service": "minutes", "command": "+record-pause", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test minutes +record-pause --id DWSREALTESTNOSUCHID0000000000000 --session-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "minutes", "+record-pause", "--id", "DWSREALTESTNOSUCHID0000000000000", "--session-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] aiAgentTestRunCmdUnknownError (operation: minutes/执行听记指令-发起AI听记录音)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"aiAgentTestRunCmdUnknownError\",\n \"server_key\": \"minutes\",\n \"trace_id\": \"0bb7c36217840999713124987e0757\"\n }\n}", "exit_code": 1, "duration_ms": 1233, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "minutes", "command": "+record-resume", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test minutes +record-resume --id DWSREALTESTNOSUCHID0000000000000 --session-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "minutes", "+record-resume", "--id", "DWSREALTESTNOSUCHID0000000000000", "--session-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] aiAgentTestRunCmdUnknownError (operation: minutes/执行听记指令-发起AI听记录音)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"aiAgentTestRunCmdUnknownError\",\n \"server_key\": \"minutes\",\n \"trace_id\": \"0bb7c36217840999724452848e0758\"\n }\n}", "exit_code": 1, "duration_ms": 1074, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "minutes", "command": "+record-stop", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test minutes +record-stop --id DWSREALTESTNOSUCHID0000000000000 --session-id DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "minutes", "+record-stop", "--id", "DWSREALTESTNOSUCHID0000000000000", "--session-id", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[UNCLASSIFIED] aiAgentTestRunCmdUnknownError (operation: minutes/执行听记指令-发起AI听记录音)\\n hint: Use --verbose for detailed error logs\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"aiAgentTestRunCmdUnknownError\",\n \"server_key\": \"minutes\",\n \"trace_id\": \"2127d89817840999735397508e0757\"\n }\n}", "exit_code": 1, "duration_ms": 1130, "failure_category": "input-or-business-validation", "fixability": "test-input-or-backend-rule", "diagnosis": "命令已真实进入本地/后端校验;若该项仍使用安全负向输入,则失败符合预期;若使用真实 fixture 仍失败,再作为 CLI bug 处理。" }, { "service": "oa", "command": "+approve-by", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test oa +approve-by --keyword __DWS_SHORTCUT_REAL_TEST_NO_SUCH_APPROVAL_20260715-151724__ --comment 'DWS shortcut 真实测试 20260715-151724,安全负向输入,请忽略。' --yes --format json", "args": [ "oa", "+approve-by", "--keyword", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_APPROVAL_20260715-151724__", "--comment", "DWS shortcut 真实测试 20260715-151724,安全负向输入,请忽略。", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"validation\",\n \"code\": 3,\n \"message\": \"没找到待审批单据:待我处理的审批里没有标题/单号包含 \\\"__DWS_SHORTCUT_REAL_TEST_NO_SUCH_APPROVAL_20260715-151724__\\\" 的单据。\"\n }\n}", "exit_code": 3, "duration_ms": 1318, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "wiki", "command": "+node-copy", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test wiki +node-copy --workspace DWSREALTESTNOSUCHID0000000000000 --node DWSREALTESTNOSUCHID0000000000000 --folder DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "wiki", "+node-copy", "--workspace", "DWSREALTESTNOSUCHID0000000000000", "--node", "DWSREALTESTNOSUCHID0000000000000", "--folder", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[TABLE_NOT_FOUND] Requested resource not found (operation: doc/copy_document)\\n hint: Document may have been deleted or moved\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"invalidRequest.inputArgs.invalid\",\n \"server_key\": \"doc\",\n \"trace_id\": \"0bb7c36217840999769818495e0779\"\n }\n}", "exit_code": 1, "duration_ms": 1000, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "wiki", "command": "+node-move", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test wiki +node-move --workspace DWSREALTESTNOSUCHID0000000000000 --node DWSREALTESTNOSUCHID0000000000000 --folder DWSREALTESTNOSUCHID0000000000000 --yes --format json", "args": [ "wiki", "+node-move", "--workspace", "DWSREALTESTNOSUCHID0000000000000", "--node", "DWSREALTESTNOSUCHID0000000000000", "--folder", "DWSREALTESTNOSUCHID0000000000000", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"api\",\n \"code\": 1,\n \"hint\": \"The API returned a business-level error. Check required parameters and values.\",\n \"message\": \"[TABLE_NOT_FOUND] Requested resource not found (operation: doc/move_document)\\n hint: Document may have been deleted or moved\",\n \"operation\": \"tools/call\",\n \"reason\": \"business_error\",\n \"server_error_code\": \"invalidRequest.inputArgs.invalid\",\n \"server_key\": \"doc\",\n \"trace_id\": \"0bb7c36217840999780286509e07fe\"\n }\n}", "exit_code": 1, "duration_ms": 1053, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "wiki", "command": "+wiki-new-doc", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-error", "input": "/private/tmp/dws-real-test wiki +wiki-new-doc --space __DWS_SHORTCUT_REAL_TEST_NO_SUCH_SPACE__ --title 'DWS shortcut 真实测试 20260715-151724' --yes --format json", "args": [ "wiki", "+wiki-new-doc", "--space", "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_SPACE__", "--title", "DWS shortcut 真实测试 20260715-151724", "--yes", "--format", "json" ], "stdout": "", "stderr": "{\n \"error\": {\n \"category\": \"validation\",\n \"code\": 3,\n \"message\": \"没找到名为 \\\"__DWS_SHORTCUT_REAL_TEST_NO_SUCH_SPACE__\\\" 的知识库;换个更完整/精确的空间名再试。\"\n }\n}", "exit_code": 3, "duration_ms": 1152, "failure_category": "missing-real-resource", "fixability": "not-cli-fixable-without-fixture", "diagnosis": "真实测试使用的资源/单据/消息/群/文档不存在;需要准备对应 fixture 后才能期望成功,不属于 shortcut 参数投影错误。" }, { "service": "todo", "command": "+todo-done", "risk": "write", "method": "real-backend-safe-negative-write; no --mock; no --dry-run", "status": "real-ok", "input": "/private/tmp/dws-real-test todo +todo-done --task 'DWS shortcut 真实测试待办 20260715-160449' --yes --format json", "args": [ "todo", "+todo-done", "--task", "DWS shortcut 真实测试待办 20260715-160449", "--yes", "--format", "json" ], "stdout": "{\n \"result\": {\n \"success\": true\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 1771, "setup": { "purpose": "为 todo +todo-done 创建当前账号自己的临时待办 fixture", "input": "/private/tmp/dws-real-test todo +remind --task 'DWS shortcut 真实测试待办 20260715-160449' --at 2026-07-22T10:15:00+08:00 --yes --format json", "stdout": "{\n \"arguments\": [],\n \"result\": {\n \"subject\": \"DWS shortcut 真实测试待办 20260715-160449\",\n \"taskId\": \"55055639461\"\n },\n \"success\": true\n}", "stderr": "", "exit_code": 0, "duration_ms": 2611 } } ] }