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-06-27 18:55:49 +08:00
2026-08-15 00:56:06 +08:00
2026-06-12 18:50:39 +08:00
2026-07-02 19:56:28 +08:00
2026-07-31 06:13:47 +08:00
2026-07-28 13:04:30 +08:00
2026-07-30 17:56:10 +08:00
2026-07-21 22:16:18 +08:00
2026-07-19 22:23:29 +08:00
2026-06-07 14:44:53 +08:00
2026-06-05 14:30:20 +08:00
2026-07-12 19:22:13 +08:00
2026-06-07 13:09:08 +08:00
2026-07-20 16:56:46 +08:00
2026-07-17 22:19:09 +08:00
2026-06-10 20:50:52 +08:00
2026-06-24 13:37:33 +08:00
2026-06-13 13:08:12 +08:00
2026-06-07 20:16:47 +08:00
2026-06-27 18:55:49 +08:00
2026-07-17 11:39:24 +08:00
2026-07-21 22:16:18 +08:00
2026-05-04 22:43:56 +08:00
2026-06-25 18:33:26 +08:00
2026-06-27 19:09:31 +08:00
2026-06-11 19:03:21 +08:00
2026-06-13 15:06:11 +08:00
2026-06-13 15:06:11 +08:00
2026-06-11 19:03:21 +08:00
2026-07-20 00:42:11 +08:00
2026-06-05 17:16:23 +08:00
2026-07-08 17:03:04 +08:00
2026-07-22 09:58:32 +08:00
2026-06-29 11:55:16 +08:00
2026-07-21 22:35:13 +08:00
2026-06-11 19:03:21 +08:00
2026-07-16 23:22:18 +08:00
2026-06-11 21:58:08 +08:00
2026-07-08 17:03:04 +08:00
2026-06-13 12:50:46 +08:00
2026-07-21 19:21:02 +08:00
2026-07-20 00:03:56 +08:00
2026-06-29 03:25:03 +08:00
2026-06-04 12:19:11 +08:00
2026-07-01 19:15:35 +08:00
2026-06-25 18:33:26 +08:00
2026-07-17 22:35:19 +08:00
2026-07-19 15:47:40 +08:00
2026-07-21 16:56:20 +08:00
2026-07-19 22:23:29 +08:00
2026-07-20 11:09:13 +08:00
2026-06-11 19:03:21 +08:00
2026-07-17 00:23:31 +08:00
2026-08-15 06:04:23 +08:00
2026-08-17 18:10:00 +08:00
2026-07-17 00:16:41 +08:00
2026-07-22 17:39:11 +08:00
2026-07-16 12:38:09 +08:00
2026-07-16 13:40:28 +08:00
2026-07-10 22:31:28 +08:00
2026-06-07 12:11:15 +08:00
2026-07-19 23:24:06 +08:00
2026-07-19 23:24:06 +08:00
2026-07-23 12:03:58 +08:00
2026-07-17 12:02:28 +08:00
2026-07-06 13:06:12 +08:00
2026-06-07 12:11:15 +08:00
2026-04-20 20:58:21 +08:00
2026-06-11 19:03:21 +08:00
2026-05-04 20:33:13 +08:00
2026-06-27 01:03:02 +08:00
2026-06-27 00:43:10 +08:00
2026-06-25 18:33:26 +08:00
2026-07-19 15:14:13 +08:00
2026-07-19 18:36:25 +08:00
2026-07-19 16:36:41 +08:00
2026-07-19 23:30:46 +08:00
2026-07-19 08:02:44 +08:00
2026-07-19 08:02:44 +08:00
2026-07-19 08:59:33 +08:00
2026-06-24 13:37:33 +08:00
2026-07-17 22:35:19 +08:00
2026-07-05 18:27:33 +08:00
2026-07-25 01:17:14 +08:00
2026-07-18 04:15:19 +08:00
2026-06-25 18:33:26 +08:00
2026-06-11 22:07:47 +08:00
2026-07-25 01:17:14 +08:00
2026-07-19 04:38:20 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-06-27 13:31:40 +08:00
2026-07-20 11:02:41 +08:00
2026-07-20 11:02:41 +08:00
2026-05-03 20:50:05 +08:00
2026-07-20 00:03:56 +08:00
2026-06-24 13:37:33 +08:00
2026-07-23 12:03:58 +08:00
2026-07-16 20:36:44 +08:00
2026-07-08 17:03:04 +08:00
2026-07-20 00:18:18 +08:00
2026-07-17 14:32:56 +08:00
2026-07-08 18:34:13 +08:00
2026-07-20 00:57:46 +08:00
2026-07-08 16:23:45 +08:00
2026-07-23 12:03:58 +08:00
2026-06-28 18:18:33 +08:00
2026-07-02 01:22:53 +08:00
2026-07-17 15:23:16 +08:00
2026-06-05 14:30:20 +08:00
2026-07-01 19:15:35 +08:00
2026-07-23 20:35:14 +08:00
2026-07-23 12:03:58 +08:00
2026-06-03 15:18:12 +08:00
2026-06-03 15:18:12 +08:00
2026-07-22 23:40:59 +08:00
2026-07-20 00:18:18 +08:00
2026-07-05 18:27:33 +08:00
2026-08-15 12:13:09 +08:00
2026-07-20 11:02:41 +08:00
2026-07-05 18:27:33 +08:00
2026-07-05 18:27:33 +08:00
2026-08-18 15:30:51 +08:00
2026-07-30 14:38:17 +08:00
2026-07-21 16:52:58 +08:00
2026-07-21 16:52:58 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-18 01:00:53 +08:00
2026-07-23 12:03:58 +08:00
2026-06-11 19:03:21 +08:00
2026-06-07 20:16:47 +08:00
2026-05-04 22:43:56 +08:00
2026-07-23 12:03:58 +08:00
2026-07-23 12:03:58 +08:00
2026-07-19 18:36:25 +08:00
2026-07-23 12:03:58 +08:00
2026-07-19 18:36:25 +08:00
2026-07-23 12:03:58 +08:00
2026-07-23 12:03:58 +08:00
2026-07-05 18:27:33 +08:00
2026-06-29 03:54:45 +08:00
2026-06-27 18:52:10 +08:00
2026-06-29 10:45:11 +08:00
2026-07-20 00:03:56 +08:00
2026-07-19 18:45:46 +08:00
2026-06-28 17:19:30 +08:00
2026-06-13 15:06:11 +08:00
2026-06-13 10:56:41 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-21 22:16:18 +08:00
2026-07-22 09:58:32 +08:00
2026-07-22 09:58:32 +08:00
2026-07-21 22:16:18 +08:00
2026-07-22 09:58:32 +08:00
2026-06-11 21:58:08 +08:00
2026-07-23 12:03:58 +08:00
2026-07-23 12:03:58 +08:00
2026-07-19 23:20:39 +08:00
2026-07-20 13:55:54 +08:00
2026-07-23 12:03:58 +08:00
2026-07-05 18:27:33 +08:00
2026-06-11 19:03:21 +08:00
2026-07-12 00:27:25 +08:00
2026-06-13 16:18:37 +08:00
2026-06-04 12:19:11 +08:00
2026-07-13 22:53:04 +08:00
2026-07-08 16:23:45 +08:00
2026-07-23 12:03:58 +08:00
2026-07-17 00:27:57 +08:00
2026-07-08 17:03:04 +08:00
2026-06-28 15:45:31 +08:00
2026-06-26 17:17:48 +08:00
2026-07-02 01:22:53 +08:00
2026-06-28 17:57:16 +08:00
2026-06-27 01:48:47 +08:00
2026-06-28 18:18:33 +08:00
2026-07-01 21:35:15 +08:00
2026-06-13 15:06:11 +08:00
2026-06-13 15:06:11 +08:00
2026-06-11 19:03:21 +08:00
2026-06-13 15:06:11 +08:00
2026-07-21 21:25:57 +08:00
2026-08-15 05:10:37 +08:00
2026-07-16 21:54:34 +08:00
2026-07-20 18:40:02 +08:00
2026-07-20 18:40:02 +08:00
2026-07-20 13:55:54 +08:00
2026-07-21 19:21:02 +08:00
2026-07-20 18:40:02 +08:00
2026-07-20 18:40:02 +08:00
2026-07-21 19:21:02 +08:00
2026-07-20 18:40:02 +08:00
2026-07-20 18:40:02 +08:00
2026-07-20 18:40:02 +08:00
2026-07-20 18:40:02 +08:00
2026-07-16 21:54:34 +08:00
2026-07-12 19:22:13 +08:00
2026-08-10 17:57:06 +08:00
2026-07-08 17:03:04 +08:00
2026-06-28 17:51:34 +08:00
2026-07-21 16:52:58 +08:00
2026-07-05 18:27:33 +08:00
2026-07-19 18:45:46 +08:00
2026-07-20 02:44:05 +08:00
2026-07-19 18:45:46 +08:00
2026-07-01 21:35:15 +08:00
2026-07-08 16:23:45 +08:00
2026-07-16 21:01:24 +08:00
2026-07-17 19:51:31 +08:00
2026-07-13 22:53:04 +08:00
2026-07-20 12:45:18 +08:00
2026-07-23 21:58:15 +08:00
2026-07-16 20:36:44 +08:00
2026-07-22 23:40:59 +08:00
2026-07-23 12:39:10 +08:00
2026-07-17 01:03:50 +08:00
2026-07-17 01:03:50 +08:00
2026-06-07 12:11:15 +08:00
2026-06-07 12:11:15 +08:00
2026-07-12 00:27:25 +08:00
2026-07-20 13:55:54 +08:00
2026-07-22 09:58:32 +08:00
2026-07-25 11:50:41 +08:00
2026-07-25 11:50:41 +08:00
2026-07-25 01:17:14 +08:00
2026-07-23 12:03:58 +08:00
2026-07-18 03:46:20 +08:00
2026-06-11 19:03:21 +08:00
2026-06-29 03:25:03 +08:00
2026-07-05 18:27:33 +08:00
2026-07-21 16:56:20 +08:00
2026-08-15 06:04:23 +08:00
2026-07-17 00:23:31 +08:00
2026-08-18 15:30:51 +08:00
2026-06-11 19:03:21 +08:00
2026-07-16 21:54:34 +08:00
2026-06-24 13:37:33 +08:00
2026-07-19 08:59:33 +08:00
2026-07-22 23:40:59 +08:00
2026-07-23 12:03:58 +08:00
2026-07-23 12:03:58 +08:00
2026-07-23 12:03:58 +08:00
2026-07-19 23:12:27 +08:00
2026-07-19 22:36:48 +08:00
2026-07-21 19:21:02 +08:00
2026-07-22 19:55:13 +08:00
2026-07-23 12:03:58 +08:00
2026-06-29 10:38:17 +08:00
2026-06-29 10:38:17 +08:00
2026-07-22 23:40:59 +08:00
2026-06-29 10:38:17 +08:00
2026-07-15 19:13:05 +08:00
2026-06-28 17:01:56 +08:00
2026-06-29 10:38:17 +08:00
2026-07-22 19:55:13 +08:00
2026-07-19 22:46:04 +08:00
2026-06-29 10:38:17 +08:00
2026-06-29 10:38:17 +08:00
2026-06-29 10:38:17 +08:00
2026-07-18 19:02:40 +08:00
2026-07-17 00:16:41 +08:00
2026-07-17 15:23:16 +08:00
2026-07-09 10:51:39 +08:00
2026-07-17 11:10:52 +08:00
2026-07-19 18:45:46 +08:00
2026-07-19 15:06:22 +08:00
2026-07-13 22:53:04 +08:00
2026-06-03 13:55:51 +08:00
2026-06-07 12:11:15 +08:00
2026-07-08 17:03:04 +08:00
2026-07-16 22:41:10 +08:00
2026-06-13 15:06:11 +08:00
2026-06-13 16:18:37 +08:00
2026-07-16 11:09:46 +08:00
2026-07-08 17:03:04 +08:00
2026-07-08 17:03:04 +08:00
2026-07-01 21:35:15 +08:00
2026-07-01 21:35:15 +08:00
2026-07-02 01:22:53 +08:00
2026-07-16 21:54:34 +08:00
2026-07-23 12:03:58 +08:00
2026-07-16 23:32:52 +08:00
2026-07-21 16:52:58 +08:00
2026-07-20 11:02:41 +08:00
2026-07-12 19:22:13 +08:00
2026-07-22 09:58:32 +08:00
2026-07-21 16:52:58 +08:00
2026-07-21 16:52:58 +08:00
2026-07-20 00:03:56 +08:00
2026-07-20 00:57:46 +08:00
2026-07-17 22:35:19 +08:00
2026-07-16 23:29:48 +08:00
2026-07-20 02:48:15 +08:00
2026-07-11 23:24:54 +08:00
2026-07-18 00:46:41 +08:00
2026-07-17 22:19:09 +08:00
2026-07-19 08:02:44 +08:00
2026-07-23 20:21:27 +08:00
2026-06-24 13:37:33 +08:00
2026-06-13 15:06:11 +08:00
2026-07-08 16:23:45 +08:00
2026-06-25 18:33:26 +08:00
2026-06-13 15:06:11 +08:00
2026-07-22 23:40:59 +08:00
2026-08-17 18:10:00 +08:00
2026-07-10 22:31:28 +08:00
2026-07-01 19:15:35 +08:00
2026-06-26 17:36:39 +08:00
2026-06-27 19:09:31 +08:00
2026-06-27 19:09:31 +08:00
2026-04-24 22:36:57 +08:00
2026-06-05 14:30:20 +08:00
2026-07-19 20:04:53 +08:00
2026-06-24 13:37:33 +08:00
2026-07-17 17:52:30 +08:00
2026-07-17 17:51:48 +08:00
2026-07-21 20:30:49 +08:00
2026-07-02 20:12:43 +08:00
2026-06-29 07:50:32 +08:00
2026-08-10 20:17:35 +08:00
2026-07-18 00:46:41 +08:00
2026-07-19 15:14:13 +08:00
2026-06-29 10:45:11 +08:00
2026-07-23 12:52:26 +08:00
2026-07-01 19:15:35 +08:00
2026-07-15 22:23:17 +08:00
2026-07-08 18:34:13 +08:00
2026-07-05 18:27:33 +08:00
2026-07-17 19:51:31 +08:00
2026-07-20 11:02:41 +08:00
2026-06-29 15:40:34 +08:00
2026-07-15 22:23:17 +08:00
2026-07-19 08:59:33 +08:00
2026-07-19 22:23:29 +08:00
2026-07-25 01:17:14 +08:00
2026-07-17 00:40:00 +08:00
2026-07-18 04:15:19 +08:00
2026-07-19 21:37:03 +08:00
2026-07-19 22:32:56 +08:00
2026-07-19 22:07:31 +08:00
2026-07-20 00:03:56 +08:00
2026-07-06 13:06:12 +08:00
2026-06-28 17:32:03 +08:00
2026-07-18 01:30:50 +08:00
2026-07-16 20:20:10 +08:00
2026-07-10 22:31:28 +08:00
2026-07-10 22:31:28 +08:00
2026-07-17 22:35:19 +08:00
2026-07-17 22:35:19 +08:00
2026-07-20 00:42:11 +08:00
2026-07-20 02:48:15 +08:00
2026-07-18 00:46:41 +08:00
2026-07-17 22:19:09 +08:00
2026-07-17 22:19:09 +08:00
2026-07-17 22:19:09 +08:00
2026-07-17 22:19:09 +08:00
2026-07-17 22:19:09 +08:00
2026-07-19 15:14:13 +08:00
2026-06-27 19:09:31 +08:00
2026-06-27 18:55:49 +08:00
2026-06-13 15:06:11 +08:00
2026-06-07 20:16:47 +08:00