Jesse_Chen
b5bcbaed73
Independent Staging Quality Gate / validate (push) Has been cancelled
Independent Staging Quality Gate / publish (push) Has been cancelled
fix(consult): record a tool call the tool never received
staging 手测 run 951a841e 第一次工具调用发出 tool.failed 后重试成功,但回执里
steps 只有 skill 与那次成功的 tool,stepBudget.used 为 2——失败的那次完全不存在。
客户端看见失败过一次,回执说没有,两边都查不到为什么。
工具的 inputSchema 是 strict 的,模型参数不合法时 Mastra 在调用 execute 之前就拒了,
于是工具体内一切都没跑:调用不计数、失败步不记录、连 chart-calculation 活动事件都没
发出(这也是本次定位的证据——失败那次没有任何 activity,重试那次有)。工具无法记录
一次它从未收到的调用。叠加两处:safeToolError 把非超时非取消的错误全塌成
calculation_failed,而即使失败落进工具体的 catch,consultationWorkflowFailureCode
对非 ConsultationWorkflowError 返回 undefined、append 处又写成可选省略,于是最需要
解释的那条记录恰好是唯一没有原因的记录。
改为在流层补记:流是唯一能观测到全部工具失败的位置,无论失败在 schema 这侧还是
execute 那侧,且它持有 startedAt 因而能给出时长。tool-error 分支比对「流已见的错误数」
与「state 里已有的失败 tool 步数」,只在前者更多时补一条,工具仍记录它能看见的失败,
两者不重复计。另新增 consultationToolFailureCode,令每个错误都解析出一个码。
failureCode 刻意仍不进公开回执:白名单与「the public receipt never carries the
internal failure classification」是刻意约束,workflow_rate_limited 这类后端内情不该
上线到客户端。原因走可观测日志的 toolCalls[].failureCode。客户端能看到「有一步失败」,
运维能在日志里看到为什么。
另记入 BUG-268 的线上实测值:单领域 referenceReads 两次均为 2,多领域为 0——不是
从不读方法,而是最需要方法的多领域路径一份都没打开。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-18 15:30:51 +08:00
..
2026-08-15 07:06:19 +08:00
2026-08-18 00:29:06 +08:00
2026-08-17 22:13:03 +08:00
2026-08-16 14:07:57 +08:00
2026-08-17 13:14:15 +08:00
2026-08-08 11:01:56 +08:00
2026-08-16 17:55:15 +08:00
2026-08-07 18:24:16 +08:00
2026-08-08 01:38:50 +08:00
2026-08-16 17:55:15 +08:00
2026-08-08 17:29:17 +08:00
2026-08-17 11:41:35 +08:00
2026-08-16 17:55:15 +08:00
2026-08-06 20:15:50 +08:00
2026-08-16 17:55:15 +08:00
2026-08-16 17:55:15 +08:00
2026-08-15 07:06:19 +08:00
2026-08-17 17:05:56 +08:00
2026-08-13 13:29:39 +08:00
2026-08-15 00:56:06 +08:00
2026-08-15 09:32:28 +08:00
2026-08-07 12:07:57 +08:00
2026-07-30 14:38:17 +08:00
2026-08-17 18:42:54 +08:00
2026-07-20 14:58:57 +08:00
2026-07-19 14:48:02 +08:00
2026-07-22 17:39:11 +08:00
2026-07-21 16:06:30 +08:00
2026-07-19 10:56:09 +08:00
2026-07-20 14:45:08 +08:00
2026-08-17 22:13:03 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 08:25:33 +08:00
2026-07-19 10:12:18 +08:00
2026-07-21 15:50:02 +08:00
2026-07-19 04:38:20 +08:00
2026-07-21 22:16:18 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 09:12:45 +08:00
2026-07-19 04:57:43 +08:00
2026-07-19 04:38:20 +08:00
2026-07-19 14:48:02 +08:00
2026-07-19 09:12:45 +08:00
2026-07-21 22:16:18 +08:00
2026-07-19 14:48:02 +08:00
2026-07-19 09:24:23 +08:00
2026-07-19 07:50:23 +08:00
2026-07-19 07:50:23 +08:00
2026-07-19 09:12:45 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-19 08:25:33 +08:00
2026-07-18 18:40:23 +08:00
2026-07-19 22:23:29 +08:00
2026-07-19 09:45:32 +08:00
2026-07-19 11:04:25 +08:00
2026-07-19 14:51:06 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-20 14:58:57 +08:00
2026-07-20 11:44:56 +08:00
2026-08-17 22:13:03 +08:00
2026-08-17 22:13:03 +08:00
2026-07-18 18:40:23 +08:00
2026-07-27 11:29:12 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-25 01:17:14 +08:00
2026-07-29 17:49:19 +08:00
2026-07-19 06:42:17 +08:00
2026-07-20 14:58:57 +08:00
2026-07-18 18:40:23 +08:00
2026-07-19 07:20:40 +08:00
2026-07-19 06:42:17 +08:00
2026-07-19 14:48:02 +08:00
2026-07-18 18:40:23 +08:00
2026-07-19 14:48:02 +08:00
2026-07-19 07:20:40 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-08-15 16:25:39 +08:00
2026-07-18 18:40:23 +08:00
2026-07-21 16:06:30 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-18 18:40:23 +08:00
2026-07-19 10:12:18 +08:00
2026-07-22 09:43:11 +08:00
2026-07-20 20:21:53 +08:00
2026-07-20 16:52:53 +08:00
2026-08-17 14:16:05 +08:00
2026-08-17 21:38:17 +08:00
2026-08-17 21:38:17 +08:00
2026-07-21 11:58:42 +08:00
2026-08-18 11:50:28 +08:00
2026-08-13 14:43:54 +08:00
2026-07-22 02:35:31 +08:00
2026-08-17 14:16:05 +08:00
2026-07-15 22:23:17 +08:00
2026-08-18 15:30:51 +08:00
2026-07-17 11:56:29 +08:00
2026-08-16 16:59:16 +08:00
2026-08-14 20:22:52 +08:00
2026-08-15 06:04:23 +08:00
2026-08-15 06:04:23 +08:00
2026-08-18 12:00:53 +08:00
2026-07-17 14:09:57 +08:00
2026-08-16 16:59:16 +08:00
2026-08-08 21:34:03 +08:00
2026-08-15 12:42:44 +08:00
2026-07-22 10:50:23 +08:00
2026-08-15 23:55:57 +08:00
2026-08-17 17:05:56 +08:00
2026-08-17 17:05:56 +08:00
2026-08-17 18:10:00 +08:00
2026-08-17 13:03:57 +08:00
2026-08-17 13:03:57 +08:00
2026-08-18 12:00:53 +08:00
2026-08-11 17:57:40 +08:00
2026-08-11 00:10:24 +08:00
2026-08-07 12:08:58 +08:00
2026-08-06 20:15:50 +08:00
2026-08-16 18:15:28 +08:00
2026-08-17 10:25:16 +08:00
2026-08-06 20:15:50 +08:00
2026-07-21 16:03:53 +08:00
2026-08-16 16:55:09 +08:00
2026-08-15 05:10:37 +08:00
2026-08-07 19:05:01 +08:00
2026-08-10 10:49:25 +08:00
2026-08-11 16:22:02 +08:00
2026-08-17 14:16:05 +08:00
2026-08-05 11:13:34 +08:00
2026-08-16 14:07:57 +08:00
2026-07-22 02:35:31 +08:00
2026-08-15 23:55:57 +08:00
2026-08-07 12:55:32 +08:00
2026-07-30 04:09:51 +08:00
2026-08-09 13:20:06 +08:00
2026-08-17 10:25:16 +08:00
2026-08-10 19:38:27 +08:00
2026-08-10 19:38:27 +08:00
2026-08-10 19:38:27 +08:00
2026-07-21 17:52:25 +08:00
2026-08-10 19:38:27 +08:00
2026-08-10 19:38:27 +08:00
2026-08-06 20:15:50 +08:00
2026-07-21 17:52:25 +08:00
2026-08-11 16:22:02 +08:00
2026-08-07 12:55:32 +08:00
2026-08-11 19:46:11 +08:00
2026-08-17 13:14:15 +08:00
2026-08-17 13:03:57 +08:00
2026-08-05 11:13:34 +08:00
2026-08-17 18:42:54 +08:00
2026-08-07 20:03:20 +08:00
2026-08-08 17:29:17 +08:00
2026-08-08 17:29:17 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-18 18:40:23 +08:00
2026-08-18 12:00:53 +08:00
2026-07-25 01:17:14 +08:00
2026-08-15 21:52:02 +08:00
2026-07-22 15:51:54 +08:00
2026-08-15 05:10:37 +08:00
2026-08-15 05:10:37 +08:00
2026-08-09 00:54:55 +08:00
2026-08-17 14:16:05 +08:00
2026-08-15 05:10:37 +08:00
2026-08-15 05:10:37 +08:00
2026-08-15 05:10:37 +08:00
2026-08-15 05:10:37 +08:00
2026-08-15 05:10:37 +08:00
2026-08-15 05:10:37 +08:00
2026-08-15 05:10:37 +08:00
2026-08-15 05:10:37 +08:00
2026-08-15 06:04:23 +08:00
2026-08-15 05:10:37 +08:00
2026-08-15 06:04:23 +08:00
2026-08-15 09:32:28 +08:00
2026-08-17 22:13:03 +08:00
2026-08-15 23:28:49 +08:00
2026-07-17 13:42:50 +08:00
2026-08-15 17:50:51 +08:00
2026-08-16 13:13:49 +08:00
2026-08-04 11:39:33 +08:00
2026-08-05 00:58:53 +08:00
2026-08-15 00:56:06 +08:00
2026-07-19 09:00:14 +08:00
2026-08-15 00:56:06 +08:00
2026-08-16 15:31:00 +08:00
2026-08-15 21:01:00 +08:00
2026-08-14 22:49:18 +08:00
2026-08-15 18:17:51 +08:00
2026-08-15 00:56:06 +08:00
2026-08-14 22:49:18 +08:00
2026-08-14 22:49:18 +08:00
2026-08-15 00:56:06 +08:00
2026-08-14 16:37:53 +08:00
2026-08-15 00:56:06 +08:00
2026-08-15 17:50:51 +08:00
2026-08-15 00:56:06 +08:00
2026-08-14 22:49:18 +08:00
2026-08-15 17:50:51 +08:00
2026-08-15 00:56:06 +08:00
2026-08-07 19:05:01 +08:00
2026-08-17 13:14:15 +08:00
2026-08-17 13:14:15 +08:00
2026-08-14 09:13:57 +08:00
2026-07-17 14:09:57 +08:00
2026-08-17 13:03:57 +08:00
2026-07-17 17:17:10 +08:00
2026-08-14 16:52:35 +08:00
2026-08-14 16:52:35 +08:00
2026-08-15 12:27:00 +08:00
2026-08-18 10:12:55 +08:00
2026-08-06 19:18:04 +08:00
2026-08-15 21:52:02 +08:00
2026-08-15 16:25:39 +08:00
2026-08-08 21:34:03 +08:00
2026-07-21 10:22:05 +08:00
2026-07-22 00:07:42 +08:00