Shortcut 真实测试失败逐项 review

由 scripts/gen_shortcut_error_review.py 从真实测试结果生成;目标是把每个失败项落到“应该改哪里”。
Read:204 条,成功 162,失败 41,超时 0。 Write:162 条,成功 48,失败 114,超时 0。 判定口径:如果 fake MCP 已看到字段但真实后端仍报 required,按后端/MCP schema 映射处理;如果真实后端报资源无效/不存在,按 fixture 处理;权限类不在 CLI 中绕过。
41
Read 失败
114
Write 失败
156
逐项 review
72
测试数据/fixture
22
权限/应用配置
33
后端/MCP schema

按错误类型

类型数量
输入/业务校验36
后端/MCP33
缺 AI 表格 fixture31
缺真实资源30
鉴权/权限22
缺妙记 fixture3
敏感/高风险暂缓1

按要改哪里

要改哪里数量
测试数据72
后端/MCP schema33
权限/应用配置22
测试输入/业务校验13
后端业务/测试 fixture11
测试输入2
人工安全确认1
测试输入/shortcut 枚举1
测试输入/业务规则1

缺真实资源复盘 · 可自造/可查资源处理结果

命令/范围处理状态本次实际排查/造数结果后续建议
chat +group-members已补齐查到真实群名 `浅曦-kida,Dennis,秋画`,runner 已改为用群名而不是 openConversationId;真实回归成功。无需后续动作。
chat +messages-mget已补齐复用真实单聊消息 `msgEuOor1PmFBNlx9M06N9z1Q==`;真实回归成功。无需后续动作。
chat +messages-read-status已补齐复用真实单聊会话 `cidie1367hAfBxqipzE59k5sknHLrHmvYkw98NADhfnjPI=` 与同一 openMessageId;真实回归成功。无需后续动作。
chat +messages-query-send-status已补齐复用真实发送返回的 openTaskId;真实回归成功。无需后续动作。
ding +receiver-status已补齐先只读 `ding +list` 找到已有 openDingId,再查询 receiver status;没有新发 DING,真实回归成功。无需后续动作。
sheet +list-sheets已自造创建临时在线表格 `DWS shortcut 真实测试表格 20260715`,nodeId=`mweZ92PV6O36dZbnsMZx70ylJxEKBD6p`;真实回归成功。后续可保留为稳定 fixture,或测试结束后人工清理。
todo +todo-done已自造并修复 CLIrunner 会先创建当前账号自己的临时待办,再执行 `todo +todo-done`;同时修复了 todo 列表 pageSize=50 返回空、响应多层 result unwrap 不稳的问题;真实回归成功。无需后续动作;代码已有单测覆盖 nested result。
contact +by-mobile已按用户授权补齐使用用户指定手机号 `13161187007` 作为真实 fixture;runner 只在该命令上替换 mobile,不扩散到其它服务。真实回归成功后该项将从失败列表移除;若后续要脱敏公开报告,可再加展示层脱敏。
attendance +get-class / +get-group / +get-group-filtered不建议自造`attendance +search-class` 与 `+search-group --type FIXED` 均返回空;创建班次/考勤组会改组织考勤配置,属于高影响业务数据。需要考勤后端/业务同学提供可读测试班次与考勤组 ID。
chat +chat-get-by-id暂未找到该 shortcut 只接受数字 groupId;真实群列表只返回 openConversationId,没有数字群号字段。需要 IM 后端提供可用数字 groupId,或评估是否新增 openConversationId 形态的 shortcut。
chat +messages-resource-url暂未自造需要真实含 mediaId 的图片/文件/视频消息;当前文本消息无法产生 resource-id。可在测试群发一条图片/文件消息并提取 mediaId 后补 fixture;注意会产生群消息。
chat +thread-replies暂未自造需要真实话题消息 topicId;普通群消息不能替代。需要话题群 fixture,或由 IM 同学提供当前账号可访问 topicId。
aitable +dashboard-share-get真实资源仍失败已有真实 base/dashboard,但 share-get 返回 404 `Failed to get dashboard share config`;更像分享配置未开启或后端接口行为问题。需要 AI 表格/后端确认如何创建/开启 dashboard share fixture,或修正 404 语义。
write 类 delete/recall/approve/wiki move/copy 等不自动自造这些命令即便能造资源,也会涉及删除、撤回、审批通过、知识库移动/复制等高影响动作。需要逐项授权和专门测试空间/机器人/审批单据,不建议混在批量回归里自动跑。

Read 失败逐项 · 42 条

#命令风险类型要改哪里具体改法验证方式operationtrace_id证据
1aitable +base-get-primary-doc-idread后端/MCP后端/MCP schema修 aitable MCP wrapper 的参数校验和错误语义:不要返回 success=true+error;对 required 字段给出 CLI 可识别的参数名,系统错误要带 retryable/trace。MCP 修完后重跑该 aitable 命令,并确认 stdout JSON 不再出现 success=true 但 error 非空。--[MCP_TOOL_ERROR] {"data":{},"error":{"code":"-1","message":"no record","retryable":true,"type":"SYSTEM_ERROR"},"meta":{},"status":"error","success":true,"summary":"Failed to query cell doc for record 1015oH3OXy in table…
2aitable +chart-share-getread鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `aitable +chart-share-get`;若仍是 permission,再看 trace_id。--[MCP_TOOL_ERROR] {"data":{},"error":{"code":"403","message":"Forbidden","retryable":false,"type":"AUTH_ERROR"},"meta":{},"status":"error","success":true,"summary":"Failed to get chart share config for chart widget-dlxFo…
3aitable +dashboard-share-getread缺真实资源测试数据把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。准备 fixture 后重跑 `aitable +dashboard-share-get`。--[MCP_TOOL_ERROR] {"data":{},"error":{"code":"404","message":"Not Found","retryable":true,"type":"SYSTEM_ERROR"},"meta":{},"status":"error","success":true,"summary":"Failed to get dashboard share config for dashboard KY9…
4aitable +export-dataread后端/MCP后端/MCP schema修 aitable MCP wrapper 的参数校验和错误语义:不要返回 success=true+error;对 required 字段给出 CLI 可识别的参数名,系统错误要带 retryable/trace。MCP 修完后重跑该 aitable 命令,并确认 stdout JSON 不再出现 success=true 但 error 非空。--[MCP_TOOL_ERROR] {"data":{},"error":{"code":"INVALID_PARAMS","message":"taskId cannot be combined with scope, format, tableId or viewId","retryable":false,"type":"INPUT_ERROR"},"meta":{},"status":"error","success":true,…
5aitable +record-primary-doc-getread后端/MCP后端/MCP schema修 aitable MCP wrapper 的参数校验和错误语义:不要返回 success=true+error;对 required 字段给出 CLI 可识别的参数名,系统错误要带 retryable/trace。MCP 修完后重跑该 aitable 命令,并确认 stdout JSON 不再出现 success=true 但 error 非空。--[MCP_TOOL_ERROR] {"data":{},"error":{"code":"-1","message":"no record","retryable":true,"type":"SYSTEM_ERROR"},"meta":{},"status":"error","success":true,"summary":"Failed to query cell doc for record 1015oH3OXy in table…
6aitable +role-getread后端/MCP后端/MCP schema修 aitable MCP wrapper 的参数校验和错误语义:不要返回 success=true+error;对 required 字段给出 CLI 可识别的参数名,系统错误要带 retryable/trace。MCP 修完后重跑该 aitable 命令,并确认 stdout JSON 不再出现 success=true 但 error 非空。--[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 get role because roleId …
7aitable +workflow-getread后端/MCP后端/MCP schema修 aitable MCP wrapper 的参数校验和错误语义:不要返回 success=true+error;对 required 字段给出 CLI 可识别的参数名,系统错误要带 retryable/trace。MCP 修完后重跑该 aitable 命令,并确认 stdout JSON 不再出现 success=true 但 error 非空。--[MCP_TOOL_ERROR] {"data":{},"error":{"code":"GET_WORKFLOW_ERROR","message":"调用远程服务业务异常","retryable":true,"type":"SYSTEM_ERROR"},"meta":{},"status":"error","success":true,"summary":"Failed to get workflow in base 'gpG2Nd…
8aitable +workflow-listread后端/MCP后端/MCP schema修 aitable MCP wrapper 的参数校验和错误语义:不要返回 success=true+error;对 required 字段给出 CLI 可识别的参数名,系统错误要带 retryable/trace。MCP 修完后重跑该 aitable 命令,并确认 stdout JSON 不再出现 success=true 但 error 非空。--[MCP_TOOL_ERROR] {"data":{},"error":{"code":"LIST_WORKFLOWS_ERROR","message":"biz error","retryable":true,"type":"SYSTEM_ERROR"},"meta":{},"status":"error","success":true,"summary":"Failed to list workflows in base 'gpG…
9attendance +get-classread缺真实资源测试数据替换为真实考勤班次/考勤组/员工/假期等资源 ID;当前 no-such ID 只能验证负向路径。先用考勤列表/管理后台拿真实 ID,再重跑该 attendance 命令。tools/call2127d89817840997588238831e0757[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/get_class_detail) hint: Use --verbose for detailed error logs
10attendance +get-global-settingread鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `attendance +get-global-setting`;若仍是 permission,再看 trace_id。tools/call2104a64c17840997604718062e085e[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/query_global_setting) hint: Use --verbose for detailed error logs
11attendance +get-groupread缺真实资源测试数据替换为真实考勤班次/考勤组/员工/假期等资源 ID;当前 no-such ID 只能验证负向路径。先用考勤列表/管理后台拿真实 ID,再重跑该 attendance 命令。tools/call0b5deb3217840997620512305e08ef[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/get_group_detail) hint: Use --verbose for detailed error logs
12attendance +get-group-filteredread缺真实资源测试数据替换为真实考勤班次/考勤组/员工/假期等资源 ID;当前 no-such ID 只能验证负向路径。先用考勤列表/管理后台拿真实 ID,再重跑该 attendance 命令。tools/call2104a64c17840997638062468e08c7[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/get_group_filtered_detail) hint: Use --verbose for detailed error logs
13attendance +get-leave-balanceread输入/业务校验测试输入/业务校验当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。重跑 `attendance +get-leave-balance` 并比较 stdout/stderr。tools/call2104a64c17840997652901307e081a[UNCLASSIFIED] 亲,假期类型没有余额 (operation: attendance-wukong/get_leave_balance_quota) hint: Use --verbose for detailed error logs
14attendance +list-report-columnsread鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `attendance +list-report-columns`;若仍是 permission,再看 trace_id。tools/call2127d89817840997666188472e0756[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/get_report_columns) hint: Use --verbose for detailed error logs
15attendance +query-report-leaveread鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `attendance +query-report-leave`;若仍是 permission,再看 trace_id。tools/call2104a64c17840997679973065e085f[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/get_leave_time_by_leave_names) hint: Use --verbose for detailed error logs
16calendar +find-roomread输入/业务校验测试输入会议室类命令需要真实 roomId 或更小会议室分组;修改 runner 先定位会议室/分组,再喂给查询命令。用真实 roomId/分组重跑 calendar room/freebusy 命令。tools/call0bb7c36217840997694975303e0758[UNCLASSIFIED] 查询范围内的会议室数量,超过上限100,请选择更小范围的分组进行查询。 hint: Use --verbose for detailed error logs
17calendar +room-findread输入/业务校验测试输入会议室类命令需要真实 roomId 或更小会议室分组;修改 runner 先定位会议室/分组,再喂给查询命令。用真实 roomId/分组重跑 calendar room/freebusy 命令。tools/call2104a64c17840997709913005e0819[UNCLASSIFIED] 查询范围内的会议室数量,超过上限100,请选择更小范围的分组进行查询。 (operation: calendar/query_available_meeting_room) hint: Use --verbose for detailed error logs
18chat +category-list-conversationsread输入/业务校验测试输入/业务校验当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。重跑 `chat +category-list-conversations` 并比较 stdout/stderr。tools/call0bb7c36217840997724375834e0758[UNCLASSIFIED] listConversationsByCategoryV2 error hint: Use --verbose for detailed error logs
19chat +chat-get-by-idread缺真实资源测试数据把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。准备 fixture 后重跑 `chat +chat-get-by-id`。tools/call2127d89817840997739165535e07bd[UNCLASSIFIED] verifyGroupId error: The group id does not exit (operation: im/get_conv_info_by_group_id) hint: Use --verbose for detailed error logs
20chat +chat-members-getread后端/MCP后端/MCP schemaCLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。tools/call2127d89817840997754345760e07bd[UNCLASSIFIED] openCid or cid is required (operation: im/list_group_member_by_ids) hint: Use --verbose for detailed error logs
21chat +chat-messagesread后端/MCP后端/MCP schemaCLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。tools/call2104a64c17840997767792656e085e[UNCLASSIFIED] openCid or cid is required hint: Use --verbose for detailed error logs
22chat +messages-listread后端/MCP后端/MCP schemaCLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。tools/call2127d89817840997797873841e0757[UNCLASSIFIED] openCid or cid is required hint: Use --verbose for detailed error logs
23chat +messages-resource-urlread缺真实资源测试数据把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。准备 fixture 后重跑 `chat +messages-resource-url`。tools/call2127d89817840997855423145e07dd[UNCLASSIFIED] failed to get download url for resourceId: x (operation: im/get_resource_download_url) hint: Use --verbose for detailed error logs
24chat +search-msgread输入/业务校验测试数据准备能命中的真实数据,或把 runner 查询词改成当前账号一定存在的对象;shortcut 本身不需要改。造数后重跑,预期从 validation empty result 变为成功。tools/call0b5deb3217840997866824643e0853[UNCLASSIFIED] 当前用户暂无消息搜索权益,无法执行本次搜索。请提示用户开通消息搜索权益后重试。 hint: Use --verbose for detailed error logs
25chat +thread-repliesread缺真实资源测试数据把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。准备 fixture 后重跑 `chat +thread-replies`。tools/call0b5deb3217840997883504915e0853[UNCLASSIFIED] failed to decrypt openConvThreadId hint: Use --verbose for detailed error logs
26contact +get-rosterread鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `contact +get-roster`;若仍是 permission,再看 trace_id。tools/call2106d98117840997920166915e087b[UNCLASSIFIED] 操作人无花名册管理权限 (operation: hrmregister/get_authorized_emp_rosterInfo) hint: Use --verbose for detailed error logs
27contact +list-roster-fieldsread鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `contact +list-roster-fields`;若仍是 permission,再看 trace_id。tools/call213ee25c17840997934295673e08e2[UNCLASSIFIED] 操作人无花名册管理权限 (operation: hrmregister/list_authorized_roster_fields) hint: Use --verbose for detailed error logs
28devapp +credentials-getread敏感/高风险暂缓人工安全确认该项涉及敏感读取或无安全负向目标,不适合自动用真实资源跑;需要在安全环境逐项人工确认。人工确认后单独重跑 `devapp +credentials-get`,并避免在报告中泄露密钥/凭证。--该命令会读取真实应用凭证/密钥;不能用真实 app 自动执行。当前仅用占位 ID 验证负向路径,真实成功需人工在安全环境单独确认。
29drive +downloadread输入/业务校验测试输入/业务校验当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。重跑 `drive +download` 并比较 stdout/stderr。tools/call0bab027317840997956923965e08c9[UNCLASSIFIED] 该文件类型不支持通过 download_file 下载。download_file 仅支持普通文件(如 PDF、Word、Excel 等),不支持钉钉在线文档/表格/脑图等在线编辑类型。如需导出在线文档内容,请使用钉钉文档导出相关接口。 (operation: drive/download_file) hint: Use --verbose for detailed error logs
30drive +listread输入/业务校验测试输入/业务校验当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。重跑 `drive +list` 并比较 stdout/stderr。tools/call2106d98117840997968627612e087b[UNCLASSIFIED] parentId 不属于指定的 spaceId,请确认 parentId 和 spaceId 属于同一个钉盘空间。 hint: Use --verbose for detailed error logs
31minutes +action-itemsread缺妙记 fixture测试数据准备当前账号可见的真实妙记/听记/录制会话,或把 runner 的搜索关键词改成必然能命中的会议产物。用真实 taskUuid/note/minutes 资源重跑 minutes 命令。--暂无妙记
32minutes +latest-minutesread缺妙记 fixture测试数据准备当前账号可见的真实妙记/听记/录制会话,或把 runner 的搜索关键词改成必然能命中的会议产物。用真实 taskUuid/note/minutes 资源重跑 minutes 命令。--暂无妙记
33minutes +minutes-searchread输入/业务校验测试数据准备能命中的真实数据,或把 runner 查询词改成当前账号一定存在的对象;shortcut 本身不需要改。造数后重跑,预期从 validation empty result 变为成功。--没搜到妙记
34minutes +transcriptread缺妙记 fixture测试数据准备当前账号可见的真实妙记/听记/录制会话,或把 runner 的搜索关键词改成必然能命中的会议产物。用真实 taskUuid/note/minutes 资源重跑 minutes 命令。--暂无妙记
35oa +done-approvalsread输入/业务校验测试数据准备能命中的真实数据,或把 runner 查询词改成当前账号一定存在的对象;shortcut 本身不需要改。造数后重跑,预期从 validation empty result 变为成功。--没有已处理的审批记录
36oa +pendingread输入/业务校验测试数据准备能命中的真实数据,或把 runner 查询词改成当前账号一定存在的对象;shortcut 本身不需要改。造数后重跑,预期从 validation empty result 变为成功。--当前没有待我审批的任务
37report +report-latestread输入/业务校验测试数据准备能命中的真实数据,或把 runner 查询词改成当前账号一定存在的对象;shortcut 本身不需要改。造数后重跑,预期从 validation empty result 变为成功。--暂无日志
38todo +due-todayread输入/业务校验测试数据准备能命中的真实数据,或把 runner 查询词改成当前账号一定存在的对象;shortcut 本身不需要改。造数后重跑,预期从 validation empty result 变为成功。--今天没有到期的待办
39todo +related-tasksread输入/业务校验测试数据准备能命中的真实数据,或把 runner 查询词改成当前账号一定存在的对象;shortcut 本身不需要改。造数后重跑,预期从 validation empty result 变为成功。--没有与你相关的待办(creator/executor/participant 三种角色下均为空)
40wiki +node-listread输入/业务校验后端业务/测试 fixture后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。tools/call2132f5ca17840998189126304e08d9[UNCLASSIFIED] business error: success=false hint: Use --verbose for detailed error logs
41wiki +resolve-spaceread输入/业务校验测试数据准备能命中的真实数据,或把 runner 查询词改成当前账号一定存在的对象;shortcut 本身不需要改。造数后重跑,预期从 validation empty result 变为成功。--没有找到名称包含 DWS shortcut 真实测试 的知识空间
42wiki +space-listread输入/业务校验测试输入/业务校验当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。重跑 `wiki +space-list` 并比较 stdout/stderr。--参数 --type 取值 "ALL" 不合法,允许值:orgWikiSpace, myWikiSpace

Write 失败逐项 · 114 条

#命令风险类型要改哪里具体改法验证方式operationtrace_id证据
1aitable +advperm-disablehigh-risk-write鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `aitable +advperm-disable`;若仍是 permission,再看 trace_id。--[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 adv…
2aitable +advperm-enablewrite鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `aitable +advperm-enable`;若仍是 permission,再看 trace_id。--[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 adv…
3aitable +attachment-uploadwrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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":t…
4aitable +base-copywrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[MCP_TOOL_ERROR] {"data":{},"error":{"code":null,"message":"Invalid source baseId: DWSREALTESTNOSUCHID0000000000000","retryable":null,"type":"USER_ERROR"},"meta":{},"status":"error","success":true,"summary":"Invalid sou…
5aitable +base-deletehigh-risk-write缺真实资源测试数据把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。准备 fixture 后重跑 `aitable +base-delete`。--[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 DWSREALTESTNOSUCHID000…
6aitable +base-updatewrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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":t…
7aitable +chart-deletehigh-risk-write缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 …
8aitable +chart-share-updatewrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 …
9aitable +chart-updatewrite后端/MCP后端/MCP schema修 aitable MCP wrapper 的参数校验和错误语义:不要返回 success=true+error;对 required 字段给出 CLI 可识别的参数名,系统错误要带 retryable/trace。MCP 修完后重跑该 aitable 命令,并确认 stdout JSON 不再出现 success=true 但 error 非空。--[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 con…
10aitable +dashboard-arrangewrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 d…
11aitable +dashboard-deletehigh-risk-write缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 …
12aitable +dashboard-share-updatewrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 …
13aitable +dashboard-updatewrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 …
14aitable +field-deletehigh-risk-write后端/MCP后端/MCP schema修 aitable MCP wrapper 的参数校验和错误语义:不要返回 success=true+error;对 required 字段给出 CLI 可识别的参数名,系统错误要带 retryable/trace。MCP 修完后重跑该 aitable 命令,并确认 stdout JSON 不再出现 success=true 但 error 非空。--[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 befor…
15aitable +field-updatewrite后端/MCP后端/MCP schema修 aitable MCP wrapper 的参数校验和错误语义:不要返回 success=true+error;对 required 字段给出 CLI 可识别的参数名,系统错误要带 retryable/trace。MCP 修完后重跑该 aitable 命令,并确认 stdout JSON 不再出现 success=true 但 error 非空。--[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 u…
16aitable +form-deletehigh-risk-write缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 …
17aitable +form-field-hidewrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 …
18aitable +form-field-updatewrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 …
19aitable +form-share-updatewrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 …
20aitable +form-updatewrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 …
21aitable +import-datawrite缺真实资源测试数据把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。准备 fixture 后重跑 `aitable +import-data`。--[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":"impo…
22aitable +import-uploadwrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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":"0bab027317840998…
23aitable +record-deletehigh-risk-write后端/MCP后端/MCP schema修 aitable MCP wrapper 的参数校验和错误语义:不要返回 success=true+error;对 required 字段给出 CLI 可识别的参数名,系统错误要带 retryable/trace。MCP 修完后重跑该 aitable 命令,并确认 stdout JSON 不再出现 success=true 但 error 非空。--[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":"…
24aitable +record-primary-doc-createwrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 c…
25aitable +record-updatewrite后端/MCP后端/MCP schema修 aitable MCP wrapper 的参数校验和错误语义:不要返回 success=true+error;对 required 字段给出 CLI 可识别的参数名,系统错误要带 retryable/trace。MCP 修完后重跑该 aitable 命令,并确认 stdout JSON 不再出现 success=true 但 error 非空。--[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":"Fa…
26aitable +record-upsertwrite后端/MCP后端/MCP schema修 aitable MCP wrapper 的参数校验和错误语义:不要返回 success=true+error;对 required 字段给出 CLI 可识别的参数名,系统错误要带 retryable/trace。MCP 修完后重跑该 aitable 命令,并确认 stdout JSON 不再出现 success=true 但 error 非空。--[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 …
27aitable +role-createwrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 …
28aitable +role-deletehigh-risk-write后端/MCP后端/MCP schema修 aitable MCP wrapper 的参数校验和错误语义:不要返回 success=true+error;对 required 字段给出 CLI 可识别的参数名,系统错误要带 retryable/trace。MCP 修完后重跑该 aitable 命令,并确认 stdout JSON 不再出现 success=true 但 error 非空。--[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 role…
29aitable +role-updatewrite后端/MCP后端/MCP schema修 aitable MCP wrapper 的参数校验和错误语义:不要返回 success=true+error;对 required 字段给出 CLI 可识别的参数名,系统错误要带 retryable/trace。MCP 修完后重跑该 aitable 命令,并确认 stdout JSON 不再出现 success=true 但 error 非空。--[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 roleI…
30aitable +section-createwrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 …
31aitable +section-deletehigh-risk-write缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 …
32aitable +section-move-nodewrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 no…
33aitable +section-renamewrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 …
34aitable +section-reorderwrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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…
35aitable +table-deletehigh-risk-write缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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":t…
36aitable +table-updatewrite后端/MCP后端/MCP schema修 aitable MCP wrapper 的参数校验和错误语义:不要返回 success=true+error;对 required 字段给出 CLI 可识别的参数名,系统错误要带 retryable/trace。MCP 修完后重跑该 aitable 命令,并确认 stdout JSON 不再出现 success=true 但 error 非空。--[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 DWSREALTESTNOSU…
37aitable +view-deletehigh-risk-write缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 …
38aitable +view-duplicatewrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 duplica…
39aitable +view-lockwrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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…
40aitable +view-set-fill-color-rulewrite后端/MCP后端/MCP schema修 aitable MCP wrapper 的参数校验和错误语义:不要返回 success=true+error;对 required 字段给出 CLI 可识别的参数名,系统错误要带 retryable/trace。MCP 修完后重跑该 aitable 命令,并确认 stdout JSON 不再出现 success=true 但 error 非空。--[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 col…
41aitable +view-set-frozen-colswrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 fro…
42aitable +view-set-row-heightwrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 cel…
43aitable +view-updatewrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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 …
44aitable +workflow-disablehigh-risk-write缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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":{},"sta…
45aitable +workflow-enablewrite缺 AI 表格 fixture测试数据准备真实 Base/Table/View/Field/Record/Role/Chart/Dashboard 等 fixture,并把真实 ID 写入真实测试 runner;当前安全负向 ID 只能证明调用链,不可能成功。fixture 准备好后重跑对应 aitable 命令;预期从 not_found/invalid_base_id 变为成功或更具体业务错误。--[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":{},"sta…
46attendance +boss-checkwrite输入/业务校验后端业务/测试 fixture后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。tools/call213ee25c17840998998942184e087d[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/boss_check) hint: Use --verbose for detailed error logs
47attendance +create-classwrite输入/业务校验后端业务/测试 fixture后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。tools/call0bab027317840999009926838e090b[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/create_class_setting) hint: Use --verbose for detailed error logs
48attendance +create-groupwrite输入/业务校验后端业务/测试 fixture后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。tools/call2106d98117840999021121258e08b8[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/create_group_setting) hint: Use --verbose for detailed error logs
49attendance +import-schedulewrite输入/业务校验后端业务/测试 fixture后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。tools/call2104a64c17840999034845189e085e[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/generateTurnSchedule) hint: Use --verbose for detailed error logs
50attendance +save-leave-balancewrite鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `attendance +save-leave-balance`;若仍是 permission,再看 trace_id。tools/call2127d89817840999045751134e079c[UNCLASSIFIED] 无权更新指定员工的假期余额 (operation: attendance-wukong/update_leave_balance) hint: Use --verbose for detailed error logs
51attendance +update-classwrite输入/业务校验后端业务/测试 fixture后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。tools/call0b5deb3217840999058236471e08b5[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/update_class_setting) hint: Use --verbose for detailed error logs
52attendance +update-groupwrite输入/业务校验后端业务/测试 fixture后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。tools/call0b5deb3217840999068826691e087a[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/update_group_setting) hint: Use --verbose for detailed error logs
53attendance +update-group-memberswrite输入/业务校验后端业务/测试 fixture后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。tools/call2127d89817840999081094644e07dd[UNCLASSIFIED] business error: success=false (operation: attendance-wukong/update_group_member) hint: Use --verbose for detailed error logs
54attendance +update-leave-typewrite鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `attendance +update-leave-type`;若仍是 permission,再看 trace_id。tools/call0bb7c36217840999093924897e07fe[RESOURCE_NOT_FOUND] Requested resource not found (operation: attendance-wukong/save_leave_type) hint: Check if the resource exists or if your account has permission
55calendar +respond-eventwrite缺真实资源测试数据把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。准备 fixture 后重跑 `calendar +respond-event`。tools/call0bb7c36217840999105062121e07db[UNCLASSIFIED] code: 300000, developerMessage: Event does not exist. (operation: calendar/respond) hint: Use --verbose for detailed error logs
56chat +category-add-conversationwrite鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `chat +category-add-conversation`;若仍是 permission,再看 trace_id。tools/call0b5deb3217840999117776203e08f9[RESOURCE_NOT_FOUND] Requested resource not found (operation: im/add_conv_to_categories) hint: Check if the resource exists or if your account has permission
57chat +category-remove-conversationwrite鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `chat +category-remove-conversation`;若仍是 permission,再看 trace_id。tools/call2104a64c17840999130466520e085e[RESOURCE_NOT_FOUND] Requested resource not found (operation: im/remove_conv_from_categories) hint: Check if the resource exists or if your account has permission
58chat +chat-add-botwrite鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `chat +chat-add-bot`;若仍是 permission,再看 trace_id。tools/call2104a64c17840999144193460e08c7[RESOURCE_NOT_FOUND] Requested resource not found (operation: bot/add_robot_to_group) hint: Check if the resource exists or if your account has permission
59chat +chat-audit-joinwrite后端/MCP后端/MCP schemaCLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。tools/call0bb7c36217840999154832733e0758[UNCLASSIFIED] applicantUid is required (operation: im/audit_join_group) hint: Use --verbose for detailed error logs
60chat +chat-mute-memberwrite后端/MCP后端/MCP schemaCLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。tools/call2104a64c17840999166036583e08a3[UNCLASSIFIED] openConversationId or cid is required (operation: im/set_group_member_mute_list) hint: Use --verbose for detailed error logs
61chat +chat-quitwrite输入/业务校验测试输入/业务校验当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。重跑 `chat +chat-quit` 并比较 stdout/stderr。tools/call0bb7c36217840999176728426e0779[UNCLASSIFIED] listBaseConversationByIds error (operation: im/quit_group) hint: Use --verbose for detailed error logs
62chat +chat-remove-bothigh-risk-write缺真实资源测试数据把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。准备 fixture 后重跑 `chat +chat-remove-bot`。tools/call0b5deb3217840999189888305e08b5[UNCLASSIFIED] 无效的会话 (operation: bot/remove_robot_in_group) hint: Use --verbose for detailed error logs
63chat +chat-role-removehigh-risk-write输入/业务校验测试输入/业务校验当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。重跑 `chat +chat-role-remove` 并比较 stdout/stderr。tools/call2127d89817840999200483204e079c[UNCLASSIFIED] listBaseConversationByIds error (operation: im/remove_custom_group_role) hint: Use --verbose for detailed error logs
64chat +chat-role-remove-userwrite输入/业务校验测试输入/业务校验当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。重跑 `chat +chat-role-remove-user` 并比较 stdout/stderr。tools/call2127d89817840999211317952e0757[UNCLASSIFIED] listBaseConversationByIds error (operation: im/remove_custom_user_roles) hint: Use --verbose for detailed error logs
65chat +chat-transfer-ownerwrite后端/MCP后端/MCP schemaCLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。tools/call0b5deb3217840999222318863e087a[UNCLASSIFIED] openConversationId is required (operation: im/transfer_group_owner) hint: Use --verbose for detailed error logs
66chat +chat-update-iconwrite输入/业务校验测试输入/业务校验当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。重跑 `chat +chat-update-icon` 并比较 stdout/stderr。tools/call2104a64c17840999232478654e0819[UNCLASSIFIED] listBaseConversationByIds error (operation: im/update_group_icon) hint: Use --verbose for detailed error logs
67chat +chat-update-settingswrite输入/业务校验测试输入/shortcut 枚举把测试输入的 setting-key 从 x 改为后端支持的 key;同时可在 shortcut flag 上补 enum,避免用户传非法 key。改 runner 后重跑;如果补 enum,跑 shortcut 单测确认校验文案。tools/call2127d89817840999244326971e07dd[UNCLASSIFIED] unsupported setting key: x (operation: im/update_group_settings) hint: Use --verbose for detailed error logs
68chat +conversation-clear-messageshigh-risk-write后端/MCP后端/MCP schemaCLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。tools/call2127d89817840999254816721e079b[UNCLASSIFIED] openConversationId or cid is required (operation: im/clear_conversation_messages) hint: Use --verbose for detailed error logs
69chat +conversation-clear-red-pointwrite后端/MCP后端/MCP schemaCLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。tools/call2104a64c17840999265511295e085f[UNCLASSIFIED] openConversationId or cid is required (operation: im/clear_conversation_red_point) hint: Use --verbose for detailed error logs
70chat +conversation-hidewrite后端/MCP后端/MCP schemaCLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。tools/call2127d89817840999276117140e079b[UNCLASSIFIED] openConversationId or cid is required (operation: im/hide_conversation) hint: Use --verbose for detailed error logs
71chat +conversation-mark-readwrite缺真实资源测试数据替换为当前账号真实可访问的群/会话 openConversationId;如果用真实群仍报“无效”,再查 IM 后端解析。先用 `chat +my-groups` 或群搜索拿真实会话 ID,再重跑。tools/call2127d89817840999287654280e07bd[UNCLASSIFIED] openConversationId无效,无法解析为cid (operation: im/mark_message_read) hint: Use --verbose for detailed error logs
72chat +conversation-mark-unreadwrite后端/MCP后端/MCP schemaCLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。tools/call0bb7c36217840999298744910e0758[UNCLASSIFIED] openConversationId or cid is required (operation: im/mark_conversation_unread) hint: Use --verbose for detailed error logs
73chat +conversation-mutewrite后端/MCP后端/MCP schemaCLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。tools/call2104a64c17840999309241865e085f[UNCLASSIFIED] openConversationId is required (operation: im/update_notification_off) hint: Use --verbose for detailed error logs
74chat +conversation-mute-at-allwrite后端/MCP后端/MCP schemaCLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。tools/call2127d89817840999320028068e07dd[UNCLASSIFIED] openConversationId is required (operation: im/update_at_all_notification_off) hint: Use --verbose for detailed error logs
75chat +conversation-mute-red-envelopewrite后端/MCP后端/MCP schemaCLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。tools/call0bb7c36217840999330228283e07fe[UNCLASSIFIED] openConversationId is required (operation: im/update_red_env_notification_off) hint: Use --verbose for detailed error logs
76chat +conversation-set-topwrite后端/MCP后端/MCP schemaCLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。tools/call2127d89817840999341302961e07fe[UNCLASSIFIED] openConversationId or cid is required (operation: im/set_top_conversation) hint: Use --verbose for detailed error logs
77chat +messages-add-emojiwrite缺真实资源测试数据替换为真实 openMessageId,并保证消息属于当前账号可访问会话;当前 no-such ID 只能验证负向路径。先用消息列表拿 messageId,再重跑消息详情/状态/撤回类命令。tools/call2127d89817840999352941910e0756[UNCLASSIFIED] invalid openMsgId: DWSREALTESTNOSUCHID0000000000000 (operation: im/add_emoji_reaction) hint: Use --verbose for detailed error logs
78chat +messages-add-text-emotionwrite缺真实资源测试数据替换为真实 openMessageId,并保证消息属于当前账号可访问会话;当前 no-such ID 只能验证负向路径。先用消息列表拿 messageId,再重跑消息详情/状态/撤回类命令。tools/call0b5deb3217840999362862711e08b5[UNCLASSIFIED] invalid openMsgId: DWSREALTESTNOSUCHID0000000000000 (operation: im/add_text_emotion) hint: Use --verbose for detailed error logs
79chat +messages-batch-recall-by-botwrite缺真实资源测试数据把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。准备 fixture 后重跑 `chat +messages-batch-recall-by-bot`。tools/call2104a64c17840999373456305e0817[UNCLASSIFIED] business error: success=false (operation: bot/batch_recall_robot_users_msg) hint: Use --verbose for detailed error logs
80chat +messages-batch-send-by-botwrite缺真实资源测试数据把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。准备 fixture 后重跑 `chat +messages-batch-send-by-bot`。tools/call0bb7c36217840999385748776e0757[UNCLASSIFIED] business error: success=false (operation: bot/batch_send_robot_msg_to_users) hint: Use --verbose for detailed error logs
81chat +messages-combine-forwardwrite缺真实资源测试数据替换为当前账号真实可访问的群/会话 openConversationId;如果用真实群仍报“无效”,再查 IM 后端解析。先用 `chat +my-groups` 或群搜索拿真实会话 ID,再重跑。tools/call2104a64c17840999396596163e08ee[UNCLASSIFIED] srcOpenCid无效,无法解析为cid (operation: im/combine_forward_messages) hint: Use --verbose for detailed error logs
82chat +messages-create-text-emotionwrite输入/业务校验测试输入/业务规则换成后端支持的文字表情组合,或把该命令保留为业务负向;CLI 不应绕过后端限制。用一个真实可保存的表情模板重跑。tools/call0b5deb3217840999407422891e08cd[UNCLASSIFIED] 暂不支持保存该文字表情 (operation: im/create_text_emotion) hint: Use --verbose for detailed error logs
83chat +messages-forwardwrite缺真实资源测试数据替换为真实 openMessageId,并保证消息属于当前账号可访问会话;当前 no-such ID 只能验证负向路径。先用消息列表拿 messageId,再重跑消息详情/状态/撤回类命令。tools/call2104a64c17840999417966407e08ee[UNCLASSIFIED] openMessageId解密失败 (operation: im/forward_message) hint: Use --verbose for detailed error logs
84chat +messages-forward-topicwrite缺真实资源测试数据替换为真实 openMessageId,并保证消息属于当前账号可访问会话;当前 no-such ID 只能验证负向路径。先用消息列表拿 messageId,再重跑消息详情/状态/撤回类命令。tools/call2127d89817840999428541474e07dd[UNCLASSIFIED] openMessageId解密失败 (operation: im/forward_topic) hint: Use --verbose for detailed error logs
85chat +messages-recallwrite缺真实资源测试数据替换为当前账号真实可访问的群/会话 openConversationId;如果用真实群仍报“无效”,再查 IM 后端解析。先用 `chat +my-groups` 或群搜索拿真实会话 ID,再重跑。tools/call2104a64c17840999441138103e08c7[UNCLASSIFIED] openConversationId无效,无法解析为cid (operation: im/recall_message) hint: Use --verbose for detailed error logs
86chat +messages-recall-by-botwrite输入/业务校验后端业务/测试 fixture后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。tools/call2104a64c17840999454382709e08a3[UNCLASSIFIED] business error: success=false (operation: bot/recall_robot_group_message) hint: Use --verbose for detailed error logs
87chat +messages-remove-emojiwrite缺真实资源测试数据替换为真实 openMessageId,并保证消息属于当前账号可访问会话;当前 no-such ID 只能验证负向路径。先用消息列表拿 messageId,再重跑消息详情/状态/撤回类命令。tools/call0b5deb3217840999467733059e08f9[UNCLASSIFIED] invalid openMsgId: DWSREALTESTNOSUCHID0000000000000 (operation: im/remove_emoji_reaction) hint: Use --verbose for detailed error logs
88chat +messages-remove-text-emotionwrite缺真实资源测试数据替换为真实 openMessageId,并保证消息属于当前账号可访问会话;当前 no-such ID 只能验证负向路径。先用消息列表拿 messageId,再重跑消息详情/状态/撤回类命令。tools/call0b5deb3217840999478923406e087f[UNCLASSIFIED] invalid openMsgId: DWSREALTESTNOSUCHID0000000000000 (operation: im/remove_text_emotion) hint: Use --verbose for detailed error logs
89chat +messages-send-by-botwrite缺真实资源测试数据把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。准备 fixture 后重跑 `chat +messages-send-by-bot`。tools/call0b5deb3217840999494005921e08ef[UNCLASSIFIED] business error: success=false (operation: bot/send_robot_group_message) hint: Use --verbose for detailed error logs
90chat +messages-send-cardwrite后端/MCP后端/MCP schemaCLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。tools/call2104a64c17840999509255753e081a[UNCLASSIFIED] receiverUid和openConversationId不能同时为空 (operation: im/create_and_send_card) hint: Use --verbose for detailed error logs
91chat +messages-set-pinwrite后端/MCP后端/MCP schemaCLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。tools/call0bb7c36217840999521117991e0758[UNCLASSIFIED] openConversationId or cid is required (operation: im/set_pin_message) hint: Use --verbose for detailed error logs
92chat +messages-set-topwrite缺真实资源测试数据替换为真实 openMessageId,并保证消息属于当前账号可访问会话;当前 no-such ID 只能验证负向路径。先用消息列表拿 messageId,再重跑消息详情/状态/撤回类命令。tools/call2104a64c17840999532438476e0817[UNCLASSIFIED] openMessageId解密失败 (operation: im/set_top_message) hint: Use --verbose for detailed error logs
93chat +messages-unset-pinwrite后端/MCP后端/MCP schemaCLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。tools/call2104a64c17840999544428103e08ee[UNCLASSIFIED] openConversationId or cid is required (operation: im/unset_pin_message) hint: Use --verbose for detailed error logs
94chat +messages-unset-topwrite缺真实资源测试数据替换为真实 openMessageId,并保证消息属于当前账号可访问会话;当前 no-such ID 只能验证负向路径。先用消息列表拿 messageId,再重跑消息详情/状态/撤回类命令。tools/call0b5deb3217840999554154221e08f9[UNCLASSIFIED] openMessageId解密失败 (operation: im/unset_top_message) hint: Use --verbose for detailed error logs
95devapp +event-subscribewrite鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `devapp +event-subscribe`;若仍是 permission,再看 trace_id。tools/call2104a64c17840999564022020e08c7[UNCLASSIFIED] 当前用户没有应用事件订阅权限 (operation: devapp/subscribe_dev_app_events) hint: Use --verbose for detailed error logs
96devapp +event-unsubscribehigh-risk-write鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `devapp +event-unsubscribe`;若仍是 permission,再看 trace_id。tools/call0bb7c36217840999575698500e07db[UNCLASSIFIED] business error: success=false (operation: devapp/unsubscribe_dev_app_events) hint: Use --verbose for detailed error logs
97devapp +permission-addwrite鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `devapp +permission-add`;若仍是 permission,再看 trace_id。tools/call2127d89817840999587758457e079c[UNCLASSIFIED] 当前用户没有开发者身份 (operation: devapp/apply_dev_app_permissions) hint: Use --verbose for detailed error logs
98devapp +permission-removehigh-risk-write鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `devapp +permission-remove`;若仍是 permission,再看 trace_id。tools/call2104a64c17840999598445247e085e[UNCLASSIFIED] 当前用户没有开发者身份 (operation: devapp/remove_dev_app_permissions) hint: Use --verbose for detailed error logs
99devapp +robot-configwrite鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `devapp +robot-config`;若仍是 permission,再看 trace_id。tools/call0bb7c36217840999609828961e07db[UNCLASSIFIED] business error: success=false (operation: devapp/set_extension_robot_config) hint: Use --verbose for detailed error logs
100devapp +robot-disablehigh-risk-write鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `devapp +robot-disable`;若仍是 permission,再看 trace_id。tools/call2104a64c17840999620461113e08ee[UNCLASSIFIED] business error: success=false (operation: devapp/disable_dev_app_robot) hint: Use --verbose for detailed error logs
101devapp +robot-enablewrite鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `devapp +robot-enable`;若仍是 permission,再看 trace_id。tools/call0bb7c36217840999632641525e0758[UNCLASSIFIED] business error: success=false (operation: devapp/enable_dev_app_robot) hint: Use --verbose for detailed error logs
102devapp +security-configwrite鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `devapp +security-config`;若仍是 permission,再看 trace_id。tools/call2104a64c17840999645522046e0817[UNCLASSIFIED] 当前用户没有开发者身份 (operation: devapp/update_dev_app_security_config) hint: Use --verbose for detailed error logs
103devapp +version-createwrite输入/业务校验后端业务/测试 fixture后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。tools/call0b5deb3217840999656705920e0853[UNCLASSIFIED] business error: success=false (operation: devapp/create_dev_app_version) hint: Use --verbose for detailed error logs
104devapp +version-publishwrite输入/业务校验后端业务/测试 fixture后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。tools/call2127d89817840999667906017e075d[UNCLASSIFIED] business error: success=false (operation: devapp/publish_dev_app_version) hint: Use --verbose for detailed error logs
105ding +send-by-messagewrite输入/业务校验测试输入/业务校验当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。重跑 `ding +send-by-message` 并比较 stdout/stderr。tools/call0b5deb3217840999678466213e0853[UNCLASSIFIED] remindType非法,合法值:APP/SMS/PHONE (operation: im/send_ding_by_message) hint: Use --verbose for detailed error logs
106doc +comment-create-inlinewrite缺真实资源测试数据替换为真实文档/节点 ID;文档评论、分享、版本等命令需要资源存在且账号可访问。用真实 doc/node 重跑;若仍失败再看 doc/doc-comment 工具字段。tools/call2127d89817840999689931893e079c[TABLE_NOT_FOUND] Requested resource not found (operation: doc-comment/create_inline_comment) hint: Document may have been deleted or moved
107doc +template-applywrite鉴权/权限权限/应用配置给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。补权限后重跑 `doc +template-apply`;若仍是 permission,再看 trace_id。tools/call2127d89817840999701186954e0757[RESOURCE_NOT_FOUND] Requested resource not found (operation: doc/apply_doc_template) hint: Check if the resource exists or if your account has permission
108minutes +record-pausewrite输入/业务校验测试输入/业务校验当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。重跑 `minutes +record-pause` 并比较 stdout/stderr。tools/call0bb7c36217840999713124987e0757[UNCLASSIFIED] aiAgentTestRunCmdUnknownError (operation: minutes/执行听记指令-发起AI听记录音) hint: Use --verbose for detailed error logs
109minutes +record-resumewrite输入/业务校验测试输入/业务校验当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。重跑 `minutes +record-resume` 并比较 stdout/stderr。tools/call0bb7c36217840999724452848e0758[UNCLASSIFIED] aiAgentTestRunCmdUnknownError (operation: minutes/执行听记指令-发起AI听记录音) hint: Use --verbose for detailed error logs
110minutes +record-stopwrite输入/业务校验测试输入/业务校验当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。重跑 `minutes +record-stop` 并比较 stdout/stderr。tools/call2127d89817840999735397508e0757[UNCLASSIFIED] aiAgentTestRunCmdUnknownError (operation: minutes/执行听记指令-发起AI听记录音) hint: Use --verbose for detailed error logs
111oa +approve-bywrite缺真实资源测试数据把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。准备 fixture 后重跑 `oa +approve-by`。--没找到待审批单据:待我处理的审批里没有标题/单号包含 "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_APPROVAL_20260715-151724__" 的单据。
112wiki +node-copywrite缺真实资源测试数据替换为真实文档/节点 ID;文档评论、分享、版本等命令需要资源存在且账号可访问。用真实 doc/node 重跑;若仍失败再看 doc/doc-comment 工具字段。tools/call0bb7c36217840999769818495e0779[TABLE_NOT_FOUND] Requested resource not found (operation: doc/copy_document) hint: Document may have been deleted or moved
113wiki +node-movewrite缺真实资源测试数据替换为真实文档/节点 ID;文档评论、分享、版本等命令需要资源存在且账号可访问。用真实 doc/node 重跑;若仍失败再看 doc/doc-comment 工具字段。tools/call0bb7c36217840999780286509e07fe[TABLE_NOT_FOUND] Requested resource not found (operation: doc/move_document) hint: Document may have been deleted or moved
114wiki +wiki-new-docwrite缺真实资源测试数据把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。准备 fixture 后重跑 `wiki +wiki-new-doc`。--没找到名为 "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_SPACE__" 的知识库;换个更完整/精确的空间名再试。