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 |
| 后端/MCP | 33 |
| 缺 AI 表格 fixture | 31 |
| 缺真实资源 | 30 |
| 鉴权/权限 | 22 |
| 缺妙记 fixture | 3 |
| 敏感/高风险暂缓 | 1 |
按要改哪里
| 要改哪里 | 数量 |
|---|---|
| 测试数据 | 72 |
| 后端/MCP schema | 33 |
| 权限/应用配置 | 22 |
| 测试输入/业务校验 | 13 |
| 后端业务/测试 fixture | 11 |
| 测试输入 | 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 | 已自造并修复 CLI | runner 会先创建当前账号自己的临时待办,再执行 `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 条
| # | 命令 | 风险 | 类型 | 要改哪里 | 具体改法 | 验证方式 | operation | trace_id | 证据 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | aitable +base-get-primary-doc-id | read | 后端/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… |
| 2 | aitable +chart-share-get | read | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、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… |
| 3 | aitable +dashboard-share-get | read | 缺真实资源 | 测试数据 | 把 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… |
| 4 | aitable +export-data | read | 后端/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,… |
| 5 | aitable +record-primary-doc-get | read | 后端/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… |
| 6 | aitable +role-get | read | 后端/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 … |
| 7 | aitable +workflow-get | read | 后端/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… |
| 8 | aitable +workflow-list | read | 后端/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… |
| 9 | attendance +get-class | read | 缺真实资源 | 测试数据 | 替换为真实考勤班次/考勤组/员工/假期等资源 ID;当前 no-such ID 只能验证负向路径。 | 先用考勤列表/管理后台拿真实 ID,再重跑该 attendance 命令。 | tools/call | 2127d89817840997588238831e0757 | [UNCLASSIFIED] business error: success=false (operation: attendance-wukong/get_class_detail) hint: Use --verbose for detailed error logs |
| 10 | attendance +get-global-setting | read | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `attendance +get-global-setting`;若仍是 permission,再看 trace_id。 | tools/call | 2104a64c17840997604718062e085e | [UNCLASSIFIED] business error: success=false (operation: attendance-wukong/query_global_setting) hint: Use --verbose for detailed error logs |
| 11 | attendance +get-group | read | 缺真实资源 | 测试数据 | 替换为真实考勤班次/考勤组/员工/假期等资源 ID;当前 no-such ID 只能验证负向路径。 | 先用考勤列表/管理后台拿真实 ID,再重跑该 attendance 命令。 | tools/call | 0b5deb3217840997620512305e08ef | [UNCLASSIFIED] business error: success=false (operation: attendance-wukong/get_group_detail) hint: Use --verbose for detailed error logs |
| 12 | attendance +get-group-filtered | read | 缺真实资源 | 测试数据 | 替换为真实考勤班次/考勤组/员工/假期等资源 ID;当前 no-such ID 只能验证负向路径。 | 先用考勤列表/管理后台拿真实 ID,再重跑该 attendance 命令。 | tools/call | 2104a64c17840997638062468e08c7 | [UNCLASSIFIED] business error: success=false (operation: attendance-wukong/get_group_filtered_detail) hint: Use --verbose for detailed error logs |
| 13 | attendance +get-leave-balance | read | 输入/业务校验 | 测试输入/业务校验 | 当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。 | 重跑 `attendance +get-leave-balance` 并比较 stdout/stderr。 | tools/call | 2104a64c17840997652901307e081a | [UNCLASSIFIED] 亲,假期类型没有余额 (operation: attendance-wukong/get_leave_balance_quota) hint: Use --verbose for detailed error logs |
| 14 | attendance +list-report-columns | read | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `attendance +list-report-columns`;若仍是 permission,再看 trace_id。 | tools/call | 2127d89817840997666188472e0756 | [UNCLASSIFIED] business error: success=false (operation: attendance-wukong/get_report_columns) hint: Use --verbose for detailed error logs |
| 15 | attendance +query-report-leave | read | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `attendance +query-report-leave`;若仍是 permission,再看 trace_id。 | tools/call | 2104a64c17840997679973065e085f | [UNCLASSIFIED] business error: success=false (operation: attendance-wukong/get_leave_time_by_leave_names) hint: Use --verbose for detailed error logs |
| 16 | calendar +find-room | read | 输入/业务校验 | 测试输入 | 会议室类命令需要真实 roomId 或更小会议室分组;修改 runner 先定位会议室/分组,再喂给查询命令。 | 用真实 roomId/分组重跑 calendar room/freebusy 命令。 | tools/call | 0bb7c36217840997694975303e0758 | [UNCLASSIFIED] 查询范围内的会议室数量,超过上限100,请选择更小范围的分组进行查询。 hint: Use --verbose for detailed error logs |
| 17 | calendar +room-find | read | 输入/业务校验 | 测试输入 | 会议室类命令需要真实 roomId 或更小会议室分组;修改 runner 先定位会议室/分组,再喂给查询命令。 | 用真实 roomId/分组重跑 calendar room/freebusy 命令。 | tools/call | 2104a64c17840997709913005e0819 | [UNCLASSIFIED] 查询范围内的会议室数量,超过上限100,请选择更小范围的分组进行查询。 (operation: calendar/query_available_meeting_room) hint: Use --verbose for detailed error logs |
| 18 | chat +category-list-conversations | read | 输入/业务校验 | 测试输入/业务校验 | 当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。 | 重跑 `chat +category-list-conversations` 并比较 stdout/stderr。 | tools/call | 0bb7c36217840997724375834e0758 | [UNCLASSIFIED] listConversationsByCategoryV2 error hint: Use --verbose for detailed error logs |
| 19 | chat +chat-get-by-id | read | 缺真实资源 | 测试数据 | 把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。 | 准备 fixture 后重跑 `chat +chat-get-by-id`。 | tools/call | 2127d89817840997739165535e07bd | [UNCLASSIFIED] verifyGroupId error: The group id does not exit (operation: im/get_conv_info_by_group_id) hint: Use --verbose for detailed error logs |
| 20 | chat +chat-members-get | read | 后端/MCP | 后端/MCP schema | CLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。 | 修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。 | tools/call | 2127d89817840997754345760e07bd | [UNCLASSIFIED] openCid or cid is required (operation: im/list_group_member_by_ids) hint: Use --verbose for detailed error logs |
| 21 | chat +chat-messages | read | 后端/MCP | 后端/MCP schema | CLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。 | 修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。 | tools/call | 2104a64c17840997767792656e085e | [UNCLASSIFIED] openCid or cid is required hint: Use --verbose for detailed error logs |
| 22 | chat +messages-list | read | 后端/MCP | 后端/MCP schema | CLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。 | 修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。 | tools/call | 2127d89817840997797873841e0757 | [UNCLASSIFIED] openCid or cid is required hint: Use --verbose for detailed error logs |
| 23 | chat +messages-resource-url | read | 缺真实资源 | 测试数据 | 把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。 | 准备 fixture 后重跑 `chat +messages-resource-url`。 | tools/call | 2127d89817840997855423145e07dd | [UNCLASSIFIED] failed to get download url for resourceId: x (operation: im/get_resource_download_url) hint: Use --verbose for detailed error logs |
| 24 | chat +search-msg | read | 输入/业务校验 | 测试数据 | 准备能命中的真实数据,或把 runner 查询词改成当前账号一定存在的对象;shortcut 本身不需要改。 | 造数后重跑,预期从 validation empty result 变为成功。 | tools/call | 0b5deb3217840997866824643e0853 | [UNCLASSIFIED] 当前用户暂无消息搜索权益,无法执行本次搜索。请提示用户开通消息搜索权益后重试。 hint: Use --verbose for detailed error logs |
| 25 | chat +thread-replies | read | 缺真实资源 | 测试数据 | 把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。 | 准备 fixture 后重跑 `chat +thread-replies`。 | tools/call | 0b5deb3217840997883504915e0853 | [UNCLASSIFIED] failed to decrypt openConvThreadId hint: Use --verbose for detailed error logs |
| 26 | contact +get-roster | read | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `contact +get-roster`;若仍是 permission,再看 trace_id。 | tools/call | 2106d98117840997920166915e087b | [UNCLASSIFIED] 操作人无花名册管理权限 (operation: hrmregister/get_authorized_emp_rosterInfo) hint: Use --verbose for detailed error logs |
| 27 | contact +list-roster-fields | read | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `contact +list-roster-fields`;若仍是 permission,再看 trace_id。 | tools/call | 213ee25c17840997934295673e08e2 | [UNCLASSIFIED] 操作人无花名册管理权限 (operation: hrmregister/list_authorized_roster_fields) hint: Use --verbose for detailed error logs |
| 28 | devapp +credentials-get | read | 敏感/高风险暂缓 | 人工安全确认 | 该项涉及敏感读取或无安全负向目标,不适合自动用真实资源跑;需要在安全环境逐项人工确认。 | 人工确认后单独重跑 `devapp +credentials-get`,并避免在报告中泄露密钥/凭证。 | - | - | 该命令会读取真实应用凭证/密钥;不能用真实 app 自动执行。当前仅用占位 ID 验证负向路径,真实成功需人工在安全环境单独确认。 |
| 29 | drive +download | read | 输入/业务校验 | 测试输入/业务校验 | 当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。 | 重跑 `drive +download` 并比较 stdout/stderr。 | tools/call | 0bab027317840997956923965e08c9 | [UNCLASSIFIED] 该文件类型不支持通过 download_file 下载。download_file 仅支持普通文件(如 PDF、Word、Excel 等),不支持钉钉在线文档/表格/脑图等在线编辑类型。如需导出在线文档内容,请使用钉钉文档导出相关接口。 (operation: drive/download_file) hint: Use --verbose for detailed error logs |
| 30 | drive +list | read | 输入/业务校验 | 测试输入/业务校验 | 当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。 | 重跑 `drive +list` 并比较 stdout/stderr。 | tools/call | 2106d98117840997968627612e087b | [UNCLASSIFIED] parentId 不属于指定的 spaceId,请确认 parentId 和 spaceId 属于同一个钉盘空间。 hint: Use --verbose for detailed error logs |
| 31 | minutes +action-items | read | 缺妙记 fixture | 测试数据 | 准备当前账号可见的真实妙记/听记/录制会话,或把 runner 的搜索关键词改成必然能命中的会议产物。 | 用真实 taskUuid/note/minutes 资源重跑 minutes 命令。 | - | - | 暂无妙记 |
| 32 | minutes +latest-minutes | read | 缺妙记 fixture | 测试数据 | 准备当前账号可见的真实妙记/听记/录制会话,或把 runner 的搜索关键词改成必然能命中的会议产物。 | 用真实 taskUuid/note/minutes 资源重跑 minutes 命令。 | - | - | 暂无妙记 |
| 33 | minutes +minutes-search | read | 输入/业务校验 | 测试数据 | 准备能命中的真实数据,或把 runner 查询词改成当前账号一定存在的对象;shortcut 本身不需要改。 | 造数后重跑,预期从 validation empty result 变为成功。 | - | - | 没搜到妙记 |
| 34 | minutes +transcript | read | 缺妙记 fixture | 测试数据 | 准备当前账号可见的真实妙记/听记/录制会话,或把 runner 的搜索关键词改成必然能命中的会议产物。 | 用真实 taskUuid/note/minutes 资源重跑 minutes 命令。 | - | - | 暂无妙记 |
| 35 | oa +done-approvals | read | 输入/业务校验 | 测试数据 | 准备能命中的真实数据,或把 runner 查询词改成当前账号一定存在的对象;shortcut 本身不需要改。 | 造数后重跑,预期从 validation empty result 变为成功。 | - | - | 没有已处理的审批记录 |
| 36 | oa +pending | read | 输入/业务校验 | 测试数据 | 准备能命中的真实数据,或把 runner 查询词改成当前账号一定存在的对象;shortcut 本身不需要改。 | 造数后重跑,预期从 validation empty result 变为成功。 | - | - | 当前没有待我审批的任务 |
| 37 | report +report-latest | read | 输入/业务校验 | 测试数据 | 准备能命中的真实数据,或把 runner 查询词改成当前账号一定存在的对象;shortcut 本身不需要改。 | 造数后重跑,预期从 validation empty result 变为成功。 | - | - | 暂无日志 |
| 38 | todo +due-today | read | 输入/业务校验 | 测试数据 | 准备能命中的真实数据,或把 runner 查询词改成当前账号一定存在的对象;shortcut 本身不需要改。 | 造数后重跑,预期从 validation empty result 变为成功。 | - | - | 今天没有到期的待办 |
| 39 | todo +related-tasks | read | 输入/业务校验 | 测试数据 | 准备能命中的真实数据,或把 runner 查询词改成当前账号一定存在的对象;shortcut 本身不需要改。 | 造数后重跑,预期从 validation empty result 变为成功。 | - | - | 没有与你相关的待办(creator/executor/participant 三种角色下均为空) |
| 40 | wiki +node-list | read | 输入/业务校验 | 后端业务/测试 fixture | 后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。 | 用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。 | tools/call | 2132f5ca17840998189126304e08d9 | [UNCLASSIFIED] business error: success=false hint: Use --verbose for detailed error logs |
| 41 | wiki +resolve-space | read | 输入/业务校验 | 测试数据 | 准备能命中的真实数据,或把 runner 查询词改成当前账号一定存在的对象;shortcut 本身不需要改。 | 造数后重跑,预期从 validation empty result 变为成功。 | - | - | 没有找到名称包含 DWS shortcut 真实测试 的知识空间 |
| 42 | wiki +space-list | read | 输入/业务校验 | 测试输入/业务校验 | 当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。 | 重跑 `wiki +space-list` 并比较 stdout/stderr。 | - | - | 参数 --type 取值 "ALL" 不合法,允许值:orgWikiSpace, myWikiSpace |
Write 失败逐项 · 114 条
| # | 命令 | 风险 | 类型 | 要改哪里 | 具体改法 | 验证方式 | operation | trace_id | 证据 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | aitable +advperm-disable | high-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… |
| 2 | aitable +advperm-enable | write | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、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… |
| 3 | aitable +attachment-upload | 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… |
| 4 | aitable +base-copy | 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":null,"message":"Invalid source baseId: DWSREALTESTNOSUCHID0000000000000","retryable":null,"type":"USER_ERROR"},"meta":{},"status":"error","success":true,"summary":"Invalid sou… |
| 5 | aitable +base-delete | high-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… |
| 6 | aitable +base-update | 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… |
| 7 | aitable +chart-delete | high-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 … |
| 8 | aitable +chart-share-update | 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 update … |
| 9 | aitable +chart-update | 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":"config is required","retryable":false,"type":"INPUT_ERROR"},"meta":{},"status":"error","success":true,"summary":"Failed to update chart because con… |
| 10 | aitable +dashboard-arrange | 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 align d… |
| 11 | aitable +dashboard-delete | high-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 … |
| 12 | aitable +dashboard-share-update | 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 update … |
| 13 | aitable +dashboard-update | 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 update … |
| 14 | aitable +field-delete | high-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… |
| 15 | aitable +field-update | 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 for u… |
| 16 | aitable +form-delete | high-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 … |
| 17 | aitable +form-field-hide | 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 update … |
| 18 | aitable +form-field-update | 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 update … |
| 19 | aitable +form-share-update | 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 update … |
| 20 | aitable +form-update | 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 update … |
| 21 | aitable +import-data | write | 缺真实资源 | 测试数据 | 把 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… |
| 22 | aitable +import-upload | 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","retryable":false,"type":"INPUT_ERROR"},"meta":{},"status":"error","success":true,"summary":"无效的 baseId","trace_id":"0bab027317840998… |
| 23 | aitable +record-delete | high-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":"… |
| 24 | aitable +record-primary-doc-create | 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":"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… |
| 25 | aitable +record-update | 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_RECORDS","message":"records must contain at least one writable record","retryable":false,"type":"INPUT_ERROR"},"meta":{},"status":"error","success":true,"summary":"Fa… |
| 26 | aitable +record-upsert | 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_PARAMETER","message":"records is required and must not be empty","retryable":false,"type":"INPUT_ERROR"},"meta":{},"status":"error","success":true,"summary":"records … |
| 27 | aitable +role-create | 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 create … |
| 28 | aitable +role-delete | high-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… |
| 29 | aitable +role-update | 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 patch role because roleI… |
| 30 | aitable +section-create | 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 create … |
| 31 | aitable +section-delete | high-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 … |
| 32 | aitable +section-move-node | 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 move no… |
| 33 | aitable +section-rename | 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 rename … |
| 34 | aitable +section-reorder | 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 reorder… |
| 35 | aitable +table-delete | high-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… |
| 36 | aitable +table-update | 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 update table DWSREALTESTNOSU… |
| 37 | aitable +view-delete | high-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 … |
| 38 | aitable +view-duplicate | 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 duplica… |
| 39 | aitable +view-lock | 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 lock_or… |
| 40 | aitable +view-set-fill-color-rule | 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":"conditionalFormats is required","retryable":false,"type":"INPUT_ERROR"},"meta":{},"status":"error","success":true,"summary":"Failed to set fill col… |
| 41 | aitable +view-set-frozen-cols | 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 set fro… |
| 42 | aitable +view-set-row-height | 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 set cel… |
| 43 | aitable +view-update | 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 update … |
| 44 | aitable +workflow-disable | high-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… |
| 45 | aitable +workflow-enable | 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… |
| 46 | attendance +boss-check | write | 输入/业务校验 | 后端业务/测试 fixture | 后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。 | 用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。 | tools/call | 213ee25c17840998998942184e087d | [UNCLASSIFIED] business error: success=false (operation: attendance-wukong/boss_check) hint: Use --verbose for detailed error logs |
| 47 | attendance +create-class | write | 输入/业务校验 | 后端业务/测试 fixture | 后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。 | 用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。 | tools/call | 0bab027317840999009926838e090b | [UNCLASSIFIED] business error: success=false (operation: attendance-wukong/create_class_setting) hint: Use --verbose for detailed error logs |
| 48 | attendance +create-group | write | 输入/业务校验 | 后端业务/测试 fixture | 后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。 | 用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。 | tools/call | 2106d98117840999021121258e08b8 | [UNCLASSIFIED] business error: success=false (operation: attendance-wukong/create_group_setting) hint: Use --verbose for detailed error logs |
| 49 | attendance +import-schedule | write | 输入/业务校验 | 后端业务/测试 fixture | 后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。 | 用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。 | tools/call | 2104a64c17840999034845189e085e | [UNCLASSIFIED] business error: success=false (operation: attendance-wukong/generateTurnSchedule) hint: Use --verbose for detailed error logs |
| 50 | attendance +save-leave-balance | write | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `attendance +save-leave-balance`;若仍是 permission,再看 trace_id。 | tools/call | 2127d89817840999045751134e079c | [UNCLASSIFIED] 无权更新指定员工的假期余额 (operation: attendance-wukong/update_leave_balance) hint: Use --verbose for detailed error logs |
| 51 | attendance +update-class | write | 输入/业务校验 | 后端业务/测试 fixture | 后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。 | 用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。 | tools/call | 0b5deb3217840999058236471e08b5 | [UNCLASSIFIED] business error: success=false (operation: attendance-wukong/update_class_setting) hint: Use --verbose for detailed error logs |
| 52 | attendance +update-group | write | 输入/业务校验 | 后端业务/测试 fixture | 后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。 | 用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。 | tools/call | 0b5deb3217840999068826691e087a | [UNCLASSIFIED] business error: success=false (operation: attendance-wukong/update_group_setting) hint: Use --verbose for detailed error logs |
| 53 | attendance +update-group-members | write | 输入/业务校验 | 后端业务/测试 fixture | 后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。 | 用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。 | tools/call | 2127d89817840999081094644e07dd | [UNCLASSIFIED] business error: success=false (operation: attendance-wukong/update_group_member) hint: Use --verbose for detailed error logs |
| 54 | attendance +update-leave-type | write | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `attendance +update-leave-type`;若仍是 permission,再看 trace_id。 | tools/call | 0bb7c36217840999093924897e07fe | [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 |
| 55 | calendar +respond-event | write | 缺真实资源 | 测试数据 | 把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。 | 准备 fixture 后重跑 `calendar +respond-event`。 | tools/call | 0bb7c36217840999105062121e07db | [UNCLASSIFIED] code: 300000, developerMessage: Event does not exist. (operation: calendar/respond) hint: Use --verbose for detailed error logs |
| 56 | chat +category-add-conversation | write | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `chat +category-add-conversation`;若仍是 permission,再看 trace_id。 | tools/call | 0b5deb3217840999117776203e08f9 | [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 |
| 57 | chat +category-remove-conversation | write | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `chat +category-remove-conversation`;若仍是 permission,再看 trace_id。 | tools/call | 2104a64c17840999130466520e085e | [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 |
| 58 | chat +chat-add-bot | write | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `chat +chat-add-bot`;若仍是 permission,再看 trace_id。 | tools/call | 2104a64c17840999144193460e08c7 | [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 |
| 59 | chat +chat-audit-join | write | 后端/MCP | 后端/MCP schema | CLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。 | 修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。 | tools/call | 0bb7c36217840999154832733e0758 | [UNCLASSIFIED] applicantUid is required (operation: im/audit_join_group) hint: Use --verbose for detailed error logs |
| 60 | chat +chat-mute-member | write | 后端/MCP | 后端/MCP schema | CLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。 | 修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。 | tools/call | 2104a64c17840999166036583e08a3 | [UNCLASSIFIED] openConversationId or cid is required (operation: im/set_group_member_mute_list) hint: Use --verbose for detailed error logs |
| 61 | chat +chat-quit | write | 输入/业务校验 | 测试输入/业务校验 | 当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。 | 重跑 `chat +chat-quit` 并比较 stdout/stderr。 | tools/call | 0bb7c36217840999176728426e0779 | [UNCLASSIFIED] listBaseConversationByIds error (operation: im/quit_group) hint: Use --verbose for detailed error logs |
| 62 | chat +chat-remove-bot | high-risk-write | 缺真实资源 | 测试数据 | 把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。 | 准备 fixture 后重跑 `chat +chat-remove-bot`。 | tools/call | 0b5deb3217840999189888305e08b5 | [UNCLASSIFIED] 无效的会话 (operation: bot/remove_robot_in_group) hint: Use --verbose for detailed error logs |
| 63 | chat +chat-role-remove | high-risk-write | 输入/业务校验 | 测试输入/业务校验 | 当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。 | 重跑 `chat +chat-role-remove` 并比较 stdout/stderr。 | tools/call | 2127d89817840999200483204e079c | [UNCLASSIFIED] listBaseConversationByIds error (operation: im/remove_custom_group_role) hint: Use --verbose for detailed error logs |
| 64 | chat +chat-role-remove-user | write | 输入/业务校验 | 测试输入/业务校验 | 当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。 | 重跑 `chat +chat-role-remove-user` 并比较 stdout/stderr。 | tools/call | 2127d89817840999211317952e0757 | [UNCLASSIFIED] listBaseConversationByIds error (operation: im/remove_custom_user_roles) hint: Use --verbose for detailed error logs |
| 65 | chat +chat-transfer-owner | write | 后端/MCP | 后端/MCP schema | CLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。 | 修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。 | tools/call | 0b5deb3217840999222318863e087a | [UNCLASSIFIED] openConversationId is required (operation: im/transfer_group_owner) hint: Use --verbose for detailed error logs |
| 66 | chat +chat-update-icon | write | 输入/业务校验 | 测试输入/业务校验 | 当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。 | 重跑 `chat +chat-update-icon` 并比较 stdout/stderr。 | tools/call | 2104a64c17840999232478654e0819 | [UNCLASSIFIED] listBaseConversationByIds error (operation: im/update_group_icon) hint: Use --verbose for detailed error logs |
| 67 | chat +chat-update-settings | write | 输入/业务校验 | 测试输入/shortcut 枚举 | 把测试输入的 setting-key 从 x 改为后端支持的 key;同时可在 shortcut flag 上补 enum,避免用户传非法 key。 | 改 runner 后重跑;如果补 enum,跑 shortcut 单测确认校验文案。 | tools/call | 2127d89817840999244326971e07dd | [UNCLASSIFIED] unsupported setting key: x (operation: im/update_group_settings) hint: Use --verbose for detailed error logs |
| 68 | chat +conversation-clear-messages | high-risk-write | 后端/MCP | 后端/MCP schema | CLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。 | 修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。 | tools/call | 2127d89817840999254816721e079b | [UNCLASSIFIED] openConversationId or cid is required (operation: im/clear_conversation_messages) hint: Use --verbose for detailed error logs |
| 69 | chat +conversation-clear-red-point | write | 后端/MCP | 后端/MCP schema | CLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。 | 修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。 | tools/call | 2104a64c17840999265511295e085f | [UNCLASSIFIED] openConversationId or cid is required (operation: im/clear_conversation_red_point) hint: Use --verbose for detailed error logs |
| 70 | chat +conversation-hide | write | 后端/MCP | 后端/MCP schema | CLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。 | 修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。 | tools/call | 2127d89817840999276117140e079b | [UNCLASSIFIED] openConversationId or cid is required (operation: im/hide_conversation) hint: Use --verbose for detailed error logs |
| 71 | chat +conversation-mark-read | write | 缺真实资源 | 测试数据 | 替换为当前账号真实可访问的群/会话 openConversationId;如果用真实群仍报“无效”,再查 IM 后端解析。 | 先用 `chat +my-groups` 或群搜索拿真实会话 ID,再重跑。 | tools/call | 2127d89817840999287654280e07bd | [UNCLASSIFIED] openConversationId无效,无法解析为cid (operation: im/mark_message_read) hint: Use --verbose for detailed error logs |
| 72 | chat +conversation-mark-unread | write | 后端/MCP | 后端/MCP schema | CLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。 | 修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。 | tools/call | 0bb7c36217840999298744910e0758 | [UNCLASSIFIED] openConversationId or cid is required (operation: im/mark_conversation_unread) hint: Use --verbose for detailed error logs |
| 73 | chat +conversation-mute | write | 后端/MCP | 后端/MCP schema | CLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。 | 修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。 | tools/call | 2104a64c17840999309241865e085f | [UNCLASSIFIED] openConversationId is required (operation: im/update_notification_off) hint: Use --verbose for detailed error logs |
| 74 | chat +conversation-mute-at-all | write | 后端/MCP | 后端/MCP schema | CLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。 | 修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。 | tools/call | 2127d89817840999320028068e07dd | [UNCLASSIFIED] openConversationId is required (operation: im/update_at_all_notification_off) hint: Use --verbose for detailed error logs |
| 75 | chat +conversation-mute-red-envelope | write | 后端/MCP | 后端/MCP schema | CLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。 | 修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。 | tools/call | 0bb7c36217840999330228283e07fe | [UNCLASSIFIED] openConversationId is required (operation: im/update_red_env_notification_off) hint: Use --verbose for detailed error logs |
| 76 | chat +conversation-set-top | write | 后端/MCP | 后端/MCP schema | CLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。 | 修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。 | tools/call | 2127d89817840999341302961e07fe | [UNCLASSIFIED] openConversationId or cid is required (operation: im/set_top_conversation) hint: Use --verbose for detailed error logs |
| 77 | chat +messages-add-emoji | write | 缺真实资源 | 测试数据 | 替换为真实 openMessageId,并保证消息属于当前账号可访问会话;当前 no-such ID 只能验证负向路径。 | 先用消息列表拿 messageId,再重跑消息详情/状态/撤回类命令。 | tools/call | 2127d89817840999352941910e0756 | [UNCLASSIFIED] invalid openMsgId: DWSREALTESTNOSUCHID0000000000000 (operation: im/add_emoji_reaction) hint: Use --verbose for detailed error logs |
| 78 | chat +messages-add-text-emotion | write | 缺真实资源 | 测试数据 | 替换为真实 openMessageId,并保证消息属于当前账号可访问会话;当前 no-such ID 只能验证负向路径。 | 先用消息列表拿 messageId,再重跑消息详情/状态/撤回类命令。 | tools/call | 0b5deb3217840999362862711e08b5 | [UNCLASSIFIED] invalid openMsgId: DWSREALTESTNOSUCHID0000000000000 (operation: im/add_text_emotion) hint: Use --verbose for detailed error logs |
| 79 | chat +messages-batch-recall-by-bot | write | 缺真实资源 | 测试数据 | 把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。 | 准备 fixture 后重跑 `chat +messages-batch-recall-by-bot`。 | tools/call | 2104a64c17840999373456305e0817 | [UNCLASSIFIED] business error: success=false (operation: bot/batch_recall_robot_users_msg) hint: Use --verbose for detailed error logs |
| 80 | chat +messages-batch-send-by-bot | write | 缺真实资源 | 测试数据 | 把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。 | 准备 fixture 后重跑 `chat +messages-batch-send-by-bot`。 | tools/call | 0bb7c36217840999385748776e0757 | [UNCLASSIFIED] business error: success=false (operation: bot/batch_send_robot_msg_to_users) hint: Use --verbose for detailed error logs |
| 81 | chat +messages-combine-forward | write | 缺真实资源 | 测试数据 | 替换为当前账号真实可访问的群/会话 openConversationId;如果用真实群仍报“无效”,再查 IM 后端解析。 | 先用 `chat +my-groups` 或群搜索拿真实会话 ID,再重跑。 | tools/call | 2104a64c17840999396596163e08ee | [UNCLASSIFIED] srcOpenCid无效,无法解析为cid (operation: im/combine_forward_messages) hint: Use --verbose for detailed error logs |
| 82 | chat +messages-create-text-emotion | write | 输入/业务校验 | 测试输入/业务规则 | 换成后端支持的文字表情组合,或把该命令保留为业务负向;CLI 不应绕过后端限制。 | 用一个真实可保存的表情模板重跑。 | tools/call | 0b5deb3217840999407422891e08cd | [UNCLASSIFIED] 暂不支持保存该文字表情 (operation: im/create_text_emotion) hint: Use --verbose for detailed error logs |
| 83 | chat +messages-forward | write | 缺真实资源 | 测试数据 | 替换为真实 openMessageId,并保证消息属于当前账号可访问会话;当前 no-such ID 只能验证负向路径。 | 先用消息列表拿 messageId,再重跑消息详情/状态/撤回类命令。 | tools/call | 2104a64c17840999417966407e08ee | [UNCLASSIFIED] openMessageId解密失败 (operation: im/forward_message) hint: Use --verbose for detailed error logs |
| 84 | chat +messages-forward-topic | write | 缺真实资源 | 测试数据 | 替换为真实 openMessageId,并保证消息属于当前账号可访问会话;当前 no-such ID 只能验证负向路径。 | 先用消息列表拿 messageId,再重跑消息详情/状态/撤回类命令。 | tools/call | 2127d89817840999428541474e07dd | [UNCLASSIFIED] openMessageId解密失败 (operation: im/forward_topic) hint: Use --verbose for detailed error logs |
| 85 | chat +messages-recall | write | 缺真实资源 | 测试数据 | 替换为当前账号真实可访问的群/会话 openConversationId;如果用真实群仍报“无效”,再查 IM 后端解析。 | 先用 `chat +my-groups` 或群搜索拿真实会话 ID,再重跑。 | tools/call | 2104a64c17840999441138103e08c7 | [UNCLASSIFIED] openConversationId无效,无法解析为cid (operation: im/recall_message) hint: Use --verbose for detailed error logs |
| 86 | chat +messages-recall-by-bot | write | 输入/业务校验 | 后端业务/测试 fixture | 后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。 | 用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。 | tools/call | 2104a64c17840999454382709e08a3 | [UNCLASSIFIED] business error: success=false (operation: bot/recall_robot_group_message) hint: Use --verbose for detailed error logs |
| 87 | chat +messages-remove-emoji | write | 缺真实资源 | 测试数据 | 替换为真实 openMessageId,并保证消息属于当前账号可访问会话;当前 no-such ID 只能验证负向路径。 | 先用消息列表拿 messageId,再重跑消息详情/状态/撤回类命令。 | tools/call | 0b5deb3217840999467733059e08f9 | [UNCLASSIFIED] invalid openMsgId: DWSREALTESTNOSUCHID0000000000000 (operation: im/remove_emoji_reaction) hint: Use --verbose for detailed error logs |
| 88 | chat +messages-remove-text-emotion | write | 缺真实资源 | 测试数据 | 替换为真实 openMessageId,并保证消息属于当前账号可访问会话;当前 no-such ID 只能验证负向路径。 | 先用消息列表拿 messageId,再重跑消息详情/状态/撤回类命令。 | tools/call | 0b5deb3217840999478923406e087f | [UNCLASSIFIED] invalid openMsgId: DWSREALTESTNOSUCHID0000000000000 (operation: im/remove_text_emotion) hint: Use --verbose for detailed error logs |
| 89 | chat +messages-send-by-bot | write | 缺真实资源 | 测试数据 | 把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。 | 准备 fixture 后重跑 `chat +messages-send-by-bot`。 | tools/call | 0b5deb3217840999494005921e08ef | [UNCLASSIFIED] business error: success=false (operation: bot/send_robot_group_message) hint: Use --verbose for detailed error logs |
| 90 | chat +messages-send-card | write | 后端/MCP | 后端/MCP schema | CLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。 | 修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。 | tools/call | 2104a64c17840999509255753e081a | [UNCLASSIFIED] receiverUid和openConversationId不能同时为空 (operation: im/create_and_send_card) hint: Use --verbose for detailed error logs |
| 91 | chat +messages-set-pin | write | 后端/MCP | 后端/MCP schema | CLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。 | 修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。 | tools/call | 0bb7c36217840999521117991e0758 | [UNCLASSIFIED] openConversationId or cid is required (operation: im/set_pin_message) hint: Use --verbose for detailed error logs |
| 92 | chat +messages-set-top | write | 缺真实资源 | 测试数据 | 替换为真实 openMessageId,并保证消息属于当前账号可访问会话;当前 no-such ID 只能验证负向路径。 | 先用消息列表拿 messageId,再重跑消息详情/状态/撤回类命令。 | tools/call | 2104a64c17840999532438476e0817 | [UNCLASSIFIED] openMessageId解密失败 (operation: im/set_top_message) hint: Use --verbose for detailed error logs |
| 93 | chat +messages-unset-pin | write | 后端/MCP | 后端/MCP schema | CLI fake MCP 已证明字段已装配;需要修 MCP tool schema 或网关字段映射,确认 openConversationId/openCid/cid、receiverUid、applicantUid 等字段没有在 schema 校验/转发时被丢弃。 | 修 MCP 后不改 shortcut,直接重跑真实命令;预期错误从 required 变为资源无效或成功。 | tools/call | 2104a64c17840999544428103e08ee | [UNCLASSIFIED] openConversationId or cid is required (operation: im/unset_pin_message) hint: Use --verbose for detailed error logs |
| 94 | chat +messages-unset-top | write | 缺真实资源 | 测试数据 | 替换为真实 openMessageId,并保证消息属于当前账号可访问会话;当前 no-such ID 只能验证负向路径。 | 先用消息列表拿 messageId,再重跑消息详情/状态/撤回类命令。 | tools/call | 0b5deb3217840999554154221e08f9 | [UNCLASSIFIED] openMessageId解密失败 (operation: im/unset_top_message) hint: Use --verbose for detailed error logs |
| 95 | devapp +event-subscribe | write | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `devapp +event-subscribe`;若仍是 permission,再看 trace_id。 | tools/call | 2104a64c17840999564022020e08c7 | [UNCLASSIFIED] 当前用户没有应用事件订阅权限 (operation: devapp/subscribe_dev_app_events) hint: Use --verbose for detailed error logs |
| 96 | devapp +event-unsubscribe | high-risk-write | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `devapp +event-unsubscribe`;若仍是 permission,再看 trace_id。 | tools/call | 0bb7c36217840999575698500e07db | [UNCLASSIFIED] business error: success=false (operation: devapp/unsubscribe_dev_app_events) hint: Use --verbose for detailed error logs |
| 97 | devapp +permission-add | write | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `devapp +permission-add`;若仍是 permission,再看 trace_id。 | tools/call | 2127d89817840999587758457e079c | [UNCLASSIFIED] 当前用户没有开发者身份 (operation: devapp/apply_dev_app_permissions) hint: Use --verbose for detailed error logs |
| 98 | devapp +permission-remove | high-risk-write | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `devapp +permission-remove`;若仍是 permission,再看 trace_id。 | tools/call | 2104a64c17840999598445247e085e | [UNCLASSIFIED] 当前用户没有开发者身份 (operation: devapp/remove_dev_app_permissions) hint: Use --verbose for detailed error logs |
| 99 | devapp +robot-config | write | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `devapp +robot-config`;若仍是 permission,再看 trace_id。 | tools/call | 0bb7c36217840999609828961e07db | [UNCLASSIFIED] business error: success=false (operation: devapp/set_extension_robot_config) hint: Use --verbose for detailed error logs |
| 100 | devapp +robot-disable | high-risk-write | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `devapp +robot-disable`;若仍是 permission,再看 trace_id。 | tools/call | 2104a64c17840999620461113e08ee | [UNCLASSIFIED] business error: success=false (operation: devapp/disable_dev_app_robot) hint: Use --verbose for detailed error logs |
| 101 | devapp +robot-enable | write | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `devapp +robot-enable`;若仍是 permission,再看 trace_id。 | tools/call | 0bb7c36217840999632641525e0758 | [UNCLASSIFIED] business error: success=false (operation: devapp/enable_dev_app_robot) hint: Use --verbose for detailed error logs |
| 102 | devapp +security-config | write | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `devapp +security-config`;若仍是 permission,再看 trace_id。 | tools/call | 2104a64c17840999645522046e0817 | [UNCLASSIFIED] 当前用户没有开发者身份 (operation: devapp/update_dev_app_security_config) hint: Use --verbose for detailed error logs |
| 103 | devapp +version-create | write | 输入/业务校验 | 后端业务/测试 fixture | 后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。 | 用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。 | tools/call | 0b5deb3217840999656705920e0853 | [UNCLASSIFIED] business error: success=false (operation: devapp/create_dev_app_version) hint: Use --verbose for detailed error logs |
| 104 | devapp +version-publish | write | 输入/业务校验 | 后端业务/测试 fixture | 后端只返回 success=false,信息不足;先准备真实合法 fixture,若仍无细节,需要后端补充错误码/错误信息。 | 用真实资源重跑;若仍 success=false,把 operation+trace_id 给后端。 | tools/call | 2127d89817840999667906017e075d | [UNCLASSIFIED] business error: success=false (operation: devapp/publish_dev_app_version) hint: Use --verbose for detailed error logs |
| 105 | ding +send-by-message | write | 输入/业务校验 | 测试输入/业务校验 | 当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。 | 重跑 `ding +send-by-message` 并比较 stdout/stderr。 | tools/call | 0b5deb3217840999678466213e0853 | [UNCLASSIFIED] remindType非法,合法值:APP/SMS/PHONE (operation: im/send_ding_by_message) hint: Use --verbose for detailed error logs |
| 106 | doc +comment-create-inline | write | 缺真实资源 | 测试数据 | 替换为真实文档/节点 ID;文档评论、分享、版本等命令需要资源存在且账号可访问。 | 用真实 doc/node 重跑;若仍失败再看 doc/doc-comment 工具字段。 | tools/call | 2127d89817840999689931893e079c | [TABLE_NOT_FOUND] Requested resource not found (operation: doc-comment/create_inline_comment) hint: Document may have been deleted or moved |
| 107 | doc +template-apply | write | 鉴权/权限 | 权限/应用配置 | 给当前登录账号、DWS 应用或对应资源补齐权限/scope;本仓库 shortcut 不应绕过权限。拿 trace_id 给服务端/开放平台排查具体 scope。 | 补权限后重跑 `doc +template-apply`;若仍是 permission,再看 trace_id。 | tools/call | 2127d89817840999701186954e0757 | [RESOURCE_NOT_FOUND] Requested resource not found (operation: doc/apply_doc_template) hint: Check if the resource exists or if your account has permission |
| 108 | minutes +record-pause | write | 输入/业务校验 | 测试输入/业务校验 | 当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。 | 重跑 `minutes +record-pause` 并比较 stdout/stderr。 | tools/call | 0bb7c36217840999713124987e0757 | [UNCLASSIFIED] aiAgentTestRunCmdUnknownError (operation: minutes/执行听记指令-发起AI听记录音) hint: Use --verbose for detailed error logs |
| 109 | minutes +record-resume | write | 输入/业务校验 | 测试输入/业务校验 | 当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。 | 重跑 `minutes +record-resume` 并比较 stdout/stderr。 | tools/call | 0bb7c36217840999724452848e0758 | [UNCLASSIFIED] aiAgentTestRunCmdUnknownError (operation: minutes/执行听记指令-发起AI听记录音) hint: Use --verbose for detailed error logs |
| 110 | minutes +record-stop | write | 输入/业务校验 | 测试输入/业务校验 | 当前命令已进入后端业务校验;先把测试输入换成真实合法 fixture,再判断是否需要改 shortcut。 | 重跑 `minutes +record-stop` 并比较 stdout/stderr。 | tools/call | 2127d89817840999735397508e0757 | [UNCLASSIFIED] aiAgentTestRunCmdUnknownError (operation: minutes/执行听记指令-发起AI听记录音) hint: Use --verbose for detailed error logs |
| 111 | oa +approve-by | write | 缺真实资源 | 测试数据 | 把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。 | 准备 fixture 后重跑 `oa +approve-by`。 | - | - | 没找到待审批单据:待我处理的审批里没有标题/单号包含 "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_APPROVAL_20260715-151724__" 的单据。 |
| 112 | wiki +node-copy | write | 缺真实资源 | 测试数据 | 替换为真实文档/节点 ID;文档评论、分享、版本等命令需要资源存在且账号可访问。 | 用真实 doc/node 重跑;若仍失败再看 doc/doc-comment 工具字段。 | tools/call | 0bb7c36217840999769818495e0779 | [TABLE_NOT_FOUND] Requested resource not found (operation: doc/copy_document) hint: Document may have been deleted or moved |
| 113 | wiki +node-move | write | 缺真实资源 | 测试数据 | 替换为真实文档/节点 ID;文档评论、分享、版本等命令需要资源存在且账号可访问。 | 用真实 doc/node 重跑;若仍失败再看 doc/doc-comment 工具字段。 | tools/call | 0bb7c36217840999780286509e07fe | [TABLE_NOT_FOUND] Requested resource not found (operation: doc/move_document) hint: Document may have been deleted or moved |
| 114 | wiki +wiki-new-doc | write | 缺真实资源 | 测试数据 | 把 runner 里的安全负向 ID 换成真实资源 ID;当前错误说明调用已进后端,但资源不存在。 | 准备 fixture 后重跑 `wiki +wiki-new-doc`。 | - | - | 没找到名为 "__DWS_SHORTCUT_REAL_TEST_NO_SUCH_SPACE__" 的知识库;换个更完整/精确的空间名再试。 |