Brennan Benson
9907117569
feat(native-chat): record an explicit provider outcome on every structured turn ( #21278 )
...
A structured turn that FAILED was recorded as `completed`, identically to one
that succeeded, so nothing downstream could tell them apart. Claude mapped only
its two abort reasons to `interrupted` and let an API error fall through to
`completed`; Codex collapsed every non-`completed` status to `interrupted` and
read a missing status as a clean finish.
Add `outcome` — success / failure / cancellation — to the turn record, emitted by
both providers. The four-arm lifecycle union is deliberately untouched: it stays
a report on what the HOST observed, and its readers are unaffected by
construction.
Absent means UNKNOWN and never success. Historical rows, older hosts, and any end
the host inferred rather than heard (the child going away, a turn superseded
before its result) all carry no outcome, so a newer client cannot mistake an old
host's `completed` API error for a clean turn.
Claude's abort-reason list had a second copy in the provider-fallback reader;
both now classify through one `claudeResultOutcome`, so the durable verdict and
the visible error row cannot drift.
2026-09-18 02:41:40 -04:00
..
2026-07-23 18:35:31 -07:00
2026-07-27 17:53:41 -07:00
2026-07-27 17:53:41 -07:00
2026-08-17 02:19:57 -07:00
2026-08-17 02:19:57 -07:00
2026-08-26 16:44:55 -07:00
2026-08-26 16:44:55 -07:00
2026-07-20 14:34:53 -07:00
2026-09-07 09:18:38 -07:00
2026-09-07 09:18:38 -07:00
2026-08-31 13:12:19 -07:00
2026-09-06 11:49:42 -07:00
2026-09-06 11:49:42 -07:00
2026-08-28 16:45:58 -07:00
2026-08-31 13:12:19 -07:00
2026-08-28 16:45:58 -07:00
2026-08-28 16:45:58 -07:00
2026-08-28 16:45:58 -07:00
2026-08-28 16:45:58 -07:00
2026-08-28 16:45:58 -07:00
2026-08-28 16:45:58 -07:00
2026-09-04 00:53:31 -07:00
2026-09-04 00:53:31 -07:00
2026-09-07 09:18:38 -07:00
2026-08-31 13:12:19 -07:00
2026-08-31 13:12:19 -07:00
2026-09-06 11:49:42 -07:00
2026-08-28 16:45:58 -07:00
2026-09-06 11:49:42 -07:00
2026-09-07 09:18:38 -07:00
2026-08-28 16:45:58 -07:00
2026-09-09 00:13:20 -07:00
2026-09-10 12:16:30 -07:00
2026-09-09 00:13:20 -07:00
2026-09-10 12:16:30 -07:00
2026-09-10 12:16:30 -07:00
2026-09-05 15:33:04 -07:00
2026-09-09 00:13:20 -07:00
2026-08-26 14:33:34 -07:00
2026-09-11 21:22:10 -07:00
2026-07-20 14:34:53 -07:00
2026-07-23 16:08:46 -07:00
2026-07-23 16:08:46 -07:00
2026-07-23 16:08:46 -07:00
2026-09-11 21:22:10 -07:00
2026-09-11 11:00:09 -07:00
2026-09-11 11:00:09 -07:00
2026-09-11 11:00:09 -07:00
2026-07-20 14:34:53 -07:00
2026-08-18 14:10:32 -07:00
2026-09-16 00:30:52 -07:00
2026-07-21 15:12:14 -07:00
2026-09-11 21:22:06 -07:00
2026-09-11 21:22:06 -07:00
2026-08-29 20:21:14 -07:00
2026-08-29 20:21:14 -07:00
2026-08-29 20:21:14 -07:00
2026-08-29 20:21:14 -07:00
2026-08-31 15:16:38 -07:00
2026-08-29 20:21:14 -07:00
2026-08-29 20:21:14 -07:00
2026-08-29 20:21:14 -07:00
2026-08-26 16:44:55 -07:00
2026-08-26 16:44:55 -07:00
2026-08-29 20:21:14 -07:00
2026-08-29 20:21:14 -07:00
2026-08-29 20:21:14 -07:00
2026-08-24 10:47:54 -07:00
2026-09-07 16:21:47 -07:00
2026-08-30 17:54:13 -07:00
2026-09-05 15:33:04 -07:00
2026-09-09 00:13:20 -07:00
2026-08-26 17:00:21 -07:00
2026-08-26 17:00:21 -07:00
2026-07-27 17:53:41 -07:00
2026-08-26 16:44:55 -07:00
2026-07-20 14:34:53 -07:00
2026-07-20 14:34:53 -07:00
2026-07-20 14:34:53 -07:00
2026-09-11 00:19:57 -07:00
2026-08-23 13:52:18 -07:00
2026-08-23 13:52:18 -07:00
2026-08-31 11:20:22 -07:00
2026-08-31 11:20:22 -07:00
2026-08-31 11:20:22 -07:00
2026-08-31 11:20:22 -07:00
2026-08-18 14:10:32 -07:00
2026-09-10 14:32:50 -07:00
2026-07-20 14:34:53 -07:00
2026-09-14 14:59:03 -07:00
2026-09-17 20:12:11 -07:00
2026-09-17 20:12:11 -07:00
2026-08-26 16:44:55 -07:00
2026-08-26 16:44:55 -07:00
2026-08-26 16:44:55 -07:00
2026-08-11 21:16:36 -07:00
2026-08-11 21:16:36 -07:00
2026-09-14 13:37:13 -07:00
2026-08-28 16:45:58 -07:00
2026-08-28 16:45:58 -07:00
2026-09-01 04:21:43 -07:00
2026-09-01 04:21:43 -07:00
2026-08-31 13:12:19 -07:00
2026-08-31 13:12:19 -07:00
2026-08-07 16:53:41 -07:00
2026-08-26 15:42:54 -07:00
2026-07-20 14:34:53 -07:00
2026-08-26 15:42:54 -07:00
2026-08-26 15:42:54 -07:00
2026-08-26 15:42:54 -07:00
2026-08-26 15:42:54 -07:00
2026-09-08 19:53:24 -07:00
2026-09-08 19:53:24 -07:00
2026-08-26 15:42:54 -07:00
2026-08-26 15:42:54 -07:00
2026-08-26 15:42:54 -07:00
2026-07-06 21:47:02 -07:00
2026-07-27 17:53:41 -07:00
2026-07-23 18:35:31 -07:00
2026-08-26 15:42:54 -07:00
2026-08-26 15:42:54 -07:00
2026-08-24 23:12:37 -07:00
2026-08-26 23:37:16 -07:00
2026-08-26 15:42:54 -07:00
2026-07-27 17:53:41 -07:00
2026-08-11 00:33:17 -07:00
2026-08-11 00:33:17 -07:00
2026-08-11 00:33:17 -07:00
2026-08-26 15:42:54 -07:00
2026-09-15 01:59:58 -07:00
2026-08-11 18:19:43 -07:00
2026-08-17 15:12:12 -07:00
2026-07-27 18:06:30 -07:00
2026-07-27 18:06:30 -07:00
2026-07-31 11:59:05 -07:00
2026-08-17 15:12:12 -07:00
2026-07-06 21:47:02 -07:00
2026-08-13 22:48:24 -07:00
2026-08-31 11:20:22 -07:00
2026-08-23 13:52:18 -07:00
2026-08-29 14:13:35 -07:00
2026-08-24 23:12:37 -07:00
2026-08-07 14:06:29 -07:00
2026-08-07 14:06:29 -07:00
2026-08-28 16:45:58 -07:00
2026-08-28 16:45:58 -07:00
2026-08-31 13:12:19 -07:00
2026-09-06 20:24:21 -07:00
2026-09-06 20:24:21 -07:00
2026-09-16 15:54:04 -07:00
2026-09-17 12:59:03 -07:00
2026-09-16 15:54:04 -07:00
2026-09-16 15:54:04 -07:00
2026-09-17 12:59:03 -07:00
2026-09-14 13:37:13 -07:00
2026-09-13 21:58:32 -07:00
2026-09-09 00:13:20 -07:00
2026-09-09 00:13:20 -07:00
2026-08-31 13:12:19 -07:00
2026-09-09 00:13:20 -07:00
2026-09-15 02:00:27 -07:00
2026-09-11 00:19:57 -07:00
2026-09-07 16:21:47 -07:00
2026-09-07 16:21:47 -07:00
2026-09-16 15:54:04 -07:00
2026-09-04 15:09:23 -07:00
2026-09-11 11:00:09 -07:00
2026-09-11 11:00:09 -07:00
2026-09-11 11:00:09 -07:00
2026-09-11 11:00:09 -07:00
2026-09-16 15:54:04 -07:00
2026-09-11 11:00:09 -07:00
2026-09-14 14:59:03 -07:00
2026-09-14 10:42:38 -07:00
2026-09-14 10:42:38 -07:00
2026-09-09 00:13:20 -07:00
2026-09-18 02:41:40 -04:00
2026-09-14 00:23:20 -07:00
2026-09-10 14:32:50 -07:00
2026-09-09 00:13:20 -07:00
2026-09-18 02:41:40 -04:00
2026-09-18 02:41:40 -04:00
2026-09-16 15:54:04 -07:00
2026-09-16 15:54:04 -07:00
2026-09-18 02:41:40 -04:00
2026-08-31 13:12:19 -07:00
2026-09-14 00:23:20 -07:00
2026-09-18 02:41:40 -04:00
2026-09-16 18:21:52 -07:00
2026-09-16 18:21:52 -07:00
2026-09-07 09:18:38 -07:00
2026-09-07 09:18:38 -07:00
2026-09-13 21:58:32 -07:00
2026-09-16 15:54:04 -07:00
2026-08-28 16:45:58 -07:00
2026-08-28 16:45:58 -07:00
2026-09-16 18:21:52 -07:00
2026-09-16 18:21:52 -07:00
2026-08-31 13:12:19 -07:00
2026-08-31 13:12:19 -07:00
2026-09-14 14:59:03 -07:00
2026-09-14 14:59:03 -07:00
2026-09-14 14:59:03 -07:00
2026-09-14 14:59:03 -07:00
2026-09-16 15:54:04 -07:00
2026-09-07 12:20:24 -07:00
2026-09-07 12:20:24 -07:00
2026-09-16 15:54:04 -07:00
2026-09-13 21:58:32 -07:00
2026-09-14 14:59:03 -07:00
2026-09-16 18:21:52 -07:00
2026-09-17 12:59:03 -07:00
2026-09-14 00:23:20 -07:00
2026-09-14 13:37:13 -07:00
2026-09-14 13:37:13 -07:00
2026-09-14 13:37:13 -07:00
2026-09-16 18:21:52 -07:00
2026-09-13 21:58:32 -07:00
2026-08-28 16:45:58 -07:00
2026-09-16 18:21:52 -07:00
2026-09-09 00:13:20 -07:00
2026-09-10 14:32:50 -07:00
2026-09-16 18:21:52 -07:00
2026-09-16 18:21:52 -07:00
2026-09-14 14:59:03 -07:00
2026-08-28 16:45:58 -07:00
2026-09-04 16:42:42 -07:00
2026-09-16 18:21:52 -07:00
2026-09-09 00:13:20 -07:00
2026-09-09 00:13:20 -07:00
2026-09-15 01:24:30 -07:00
2026-09-15 01:24:30 -07:00
2026-09-09 00:13:20 -07:00
2026-09-09 00:13:20 -07:00
2026-09-09 00:13:20 -07:00
2026-09-05 15:33:04 -07:00
2026-09-07 13:51:47 -07:00
2026-08-26 16:44:55 -07:00
2026-08-27 13:05:12 -07:00
2026-08-26 16:44:55 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-08-26 16:44:55 -07:00
2026-08-26 16:44:55 -07:00
2026-07-23 18:35:31 -07:00
2026-08-23 13:52:18 -07:00
2026-08-26 16:44:55 -07:00
2026-07-22 17:12:22 -07:00
2026-08-26 16:44:55 -07:00
2026-08-24 23:15:01 -07:00
2026-08-28 16:45:58 -07:00
2026-08-28 16:45:58 -07:00
2026-09-01 04:21:43 -07:00
2026-09-07 22:21:39 -07:00
2026-09-14 13:37:13 -07:00
2026-07-27 18:06:30 -07:00
2026-08-24 23:12:37 -07:00
2026-07-20 14:34:53 -07:00
2026-08-26 16:44:55 -07:00
2026-08-26 16:44:55 -07:00
2026-08-18 02:12:21 -07:00
2026-08-18 02:12:21 -07:00
2026-09-11 21:22:10 -07:00
2026-09-11 21:22:10 -07:00
2026-09-11 21:22:10 -07:00
2026-09-11 21:22:10 -07:00
2026-07-23 16:08:46 -07:00
2026-08-18 14:10:32 -07:00
2026-09-11 21:22:10 -07:00
2026-09-11 21:22:10 -07:00
2026-08-23 13:52:18 -07:00
2026-08-23 13:52:18 -07:00
2026-08-24 23:15:01 -07:00
2026-07-24 13:38:10 -07:00
2026-08-24 23:15:01 -07:00
2026-09-08 19:44:31 -07:00
2026-08-24 23:15:01 -07:00
2026-09-08 19:44:31 -07:00
2026-07-23 16:08:46 -07:00
2026-09-11 21:22:10 -07:00
2026-09-11 21:22:10 -07:00
2026-08-24 23:15:01 -07:00
2026-09-11 21:22:10 -07:00
2026-07-24 13:38:10 -07:00
2026-08-24 23:15:01 -07:00
2026-08-24 23:15:01 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-07-20 14:34:53 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-24 23:15:01 -07:00
2026-08-31 15:16:38 -07:00
2026-08-26 16:44:55 -07:00
2026-09-16 00:30:52 -07:00
2026-08-26 16:44:55 -07:00
2026-08-26 16:44:55 -07:00
2026-08-26 16:44:55 -07:00
2026-08-26 16:44:55 -07:00
2026-08-31 11:20:22 -07:00
2026-08-29 20:21:14 -07:00
2026-08-26 16:44:55 -07:00
2026-08-18 14:14:44 -07:00
2026-08-27 13:05:12 -07:00
2026-08-26 16:44:55 -07:00
2026-08-27 13:05:12 -07:00
2026-08-27 13:05:12 -07:00
2026-08-26 16:44:55 -07:00
2026-08-26 16:44:55 -07:00
2026-08-18 14:14:44 -07:00
2026-08-18 14:10:32 -07:00
2026-09-11 21:22:10 -07:00
2026-09-16 00:30:52 -07:00
2026-09-16 00:30:52 -07:00
2026-08-31 11:20:22 -07:00
2026-08-31 11:20:22 -07:00
2026-08-31 11:20:22 -07:00