Charles Yao and Claude Opus 4.8
de8a5745ea
fix(dify_builder): always emit a terminal SSE frame so held version can't go stale
...
Two paths ended a streaming advance without a terminal `state`/`error`
frame, leaving the SSE client stalled to the deadline with a stale held
version -> its next action 409s:
1. advance_session published the terminal `state` frame outside the
try/finally and unguarded. If the post-advance view projection
(get_session_view -> read_graph) or the publish itself raised after a
SUCCESSFUL advance, the exception escaped and no terminal frame was
sent. Guard it and fall back to a terminal `error` frame.
2. submit_action_stream emitted a terminal `state` frame on settle only
for `message`. `update_model` also settles synchronously while bumping
the version, so it now emits one too -- otherwise the FE keeps the old
version and 409s on its next action.
Adds regression tests for both (projection-failure -> error frame;
update_model -> state frame).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-09-03 08:48:23 +08:00
..
2026-08-31 05:57:40 +00:00
2026-08-18 04:30:17 +00:00
2026-08-29 14:05:35 +00:00
2026-09-03 08:48:23 +08:00
2026-08-31 03:33:09 +00:00
2026-08-18 12:01:49 +00:00
2026-08-21 06:09:39 +00:00
2026-08-29 14:06:07 +00:00
2026-08-27 02:41:43 +00:00
2026-08-29 14:05:34 +00:00
2026-08-29 14:06:07 +00:00
2026-08-29 14:05:34 +00:00
2026-08-11 07:39:01 +00:00
2026-08-11 06:19:08 +00:00
2026-08-06 04:14:12 +00:00
2026-08-27 08:51:05 +00:00
2026-08-27 08:51:05 +00:00
2026-08-21 05:56:30 +00:00
2026-08-21 05:56:30 +00:00
2026-08-25 01:48:12 +00:00
2026-08-21 08:13:23 +00:00
2026-08-21 08:13:23 +00:00
2026-08-21 08:13:23 +00:00
2026-08-21 08:46:06 +00:00
2026-08-21 08:05:43 +00:00
2026-08-25 01:48:12 +00:00
2026-08-31 03:22:01 +00:00
2026-08-31 03:22:01 +00:00
2026-08-26 07:14:27 +00:00
2026-08-21 08:05:43 +00:00
2026-08-21 05:56:30 +00:00
2026-08-21 05:56:30 +00:00
2026-08-21 05:56:30 +00:00
2026-08-20 05:03:08 +00:00
2026-08-31 02:51:19 +00:00
2026-07-28 06:32:07 +00:00
2026-08-29 14:05:34 +00:00
2026-08-29 14:05:34 +00:00
2026-08-25 10:21:32 +00:00
2026-07-22 02:15:01 +00:00
2026-08-21 06:09:26 +00:00
2026-08-20 05:11:46 +00:00
2026-08-19 07:23:47 +00:00
2026-08-29 14:06:07 +00:00
2026-08-29 14:05:35 +00:00
2026-08-31 09:30:52 +00:00
2026-08-18 12:23:33 +00:00
2026-08-29 14:05:34 +00:00
2026-08-26 06:31:06 +00:00
2026-08-18 12:01:49 +00:00
2026-08-20 05:11:46 +00:00
2026-08-25 10:21:32 +00:00
2026-08-11 07:39:01 +00:00
2026-08-24 01:55:48 +00:00
2026-08-26 06:32:13 +00:00
2026-08-28 14:47:16 +00:00
2026-08-28 14:47:16 +00:00
2026-08-26 06:32:13 +00:00
2026-08-18 12:01:49 +00:00
2026-08-18 12:26:01 +00:00
2026-08-28 14:47:16 +00:00
2026-08-26 07:33:37 +00:00
2026-08-28 14:47:17 +00:00
2026-08-29 14:05:34 +00:00
2026-08-31 05:55:38 +00:00
2026-08-29 14:05:34 +00:00
2026-08-18 12:01:29 +00:00
2026-08-11 07:39:01 +00:00
2026-08-11 07:39:01 +00:00
2026-08-29 14:05:35 +00:00
2026-08-18 12:23:33 +00:00
2026-08-12 07:45:39 +00:00
2026-08-24 06:35:42 +00:00
2026-08-07 00:42:55 +00:00
2026-08-28 14:47:16 +00:00
2026-08-29 14:05:35 +00:00
2026-08-23 12:38:04 -07:00
2026-08-11 07:39:01 +00:00
2026-08-28 14:47:16 +00:00
2026-08-24 06:35:42 +00:00
2026-08-28 14:47:16 +00:00
2026-08-28 14:47:16 +00:00
2026-08-28 14:47:16 +00:00
2026-08-28 14:47:16 +00:00
2026-08-28 14:47:16 +00:00
2026-08-28 14:47:16 +00:00
2026-08-28 14:47:16 +00:00
2026-08-28 14:47:16 +00:00
2026-08-25 10:26:06 +00:00
2026-08-11 07:39:01 +00:00
2026-08-28 14:47:16 +00:00
2026-08-18 12:01:49 +00:00
2026-08-28 14:47:16 +00:00
2026-08-10 03:27:56 +00:00
2026-08-04 13:14:02 +00:00
2026-08-28 14:47:17 +00:00
2026-07-15 03:37:16 +00:00
2026-08-29 14:05:34 +00:00
2026-08-27 12:15:07 +00:00
2026-08-29 14:05:34 +00:00
2026-08-12 08:42:09 +00:00
2026-08-29 14:05:34 +00:00
2026-07-16 09:32:11 +00:00
2026-08-20 05:11:46 +00:00
2026-08-18 12:01:49 +00:00
2026-08-11 16:37:14 +00:00
2026-08-11 16:37:14 +00:00
2026-08-18 12:23:33 +00:00
2026-08-07 00:42:13 +00:00
2026-08-29 14:05:34 +00:00
2026-08-31 04:37:07 +00:00
2026-08-31 04:37:07 +00:00
2026-08-26 07:33:37 +00:00
2026-07-13 07:48:15 +00:00
2026-08-26 07:33:37 +00:00
2026-08-15 09:54:09 +00:00
2026-08-29 14:05:35 +00:00
2026-08-20 13:13:43 +00:00
2026-08-06 04:06:04 +00:00
2026-08-08 11:52:15 +00:00
2026-08-24 01:57:17 +00:00
2026-08-08 11:52:15 +00:00
2026-08-29 14:05:35 +00:00
2026-08-29 14:06:07 +00:00
2026-08-20 05:12:30 +00:00
2026-08-29 14:05:34 +00:00
2026-08-31 04:37:07 +00:00
2026-08-05 10:03:23 +00:00
2026-08-24 05:29:14 +00:00
2026-08-29 14:05:34 +00:00
2026-07-27 09:36:44 +00:00
2026-08-07 09:21:13 +00:00
2026-08-29 14:05:34 +00:00
2026-08-29 14:05:34 +00:00
2026-07-27 02:12:57 +00:00
2026-08-20 05:11:46 +00:00
2026-08-28 14:47:16 +00:00
2026-08-20 05:05:31 +00:00
2026-08-20 02:27:49 +00:00
2026-08-29 14:05:34 +00:00
2026-08-24 04:01:02 +00:00
2026-08-02 02:49:17 +00:00
2026-08-28 14:32:27 +00:00
2026-08-29 14:05:35 +00:00
2026-08-24 03:20:32 +00:00
2026-08-25 10:21:32 +00:00
2026-08-13 05:19:52 +00:00
2026-07-28 03:20:27 +00:00
2026-08-18 12:26:01 +00:00
2026-08-29 14:05:34 +00:00
2026-08-27 02:41:02 +00:00
2026-08-18 12:23:33 +00:00
2026-08-06 01:08:39 +00:00
2026-08-06 01:08:39 +00:00
2026-08-11 07:39:01 +00:00