fix(webui): merge length recovery stream segments

This commit is contained in:
chengyongru
2026-07-27 01:39:46 +08:00
committed by Xubin Ren
parent 3cc5a98d9f
commit 27a00c7a4f
26 changed files with 325 additions and 29 deletions
+20
View File
@@ -1121,6 +1121,26 @@ def test_replay_keeps_interrupted_pre_tool_text_in_activity() -> None:
assert msgs[2]["content"] == "Done. Open index.html to play."
def test_replay_merges_length_recovery_segments_into_one_assistant_message() -> None:
msgs = replay_transcript_to_ui_messages([
{"event": "delta", "chat_id": "t-stream", "text": "first "},
{
"event": "stream_end",
"chat_id": "t-stream",
"text": "first ",
"resuming": True,
"merge_next": True,
},
{"event": "delta", "chat_id": "t-stream", "text": "second"},
{"event": "stream_end", "chat_id": "t-stream"},
{"event": "turn_end", "chat_id": "t-stream"},
])
assert len(msgs) == 1
assert msgs[0]["role"] == "assistant"
assert msgs[0]["content"] == "first second"
def test_replay_tool_events_dedupes_finish_after_start() -> None:
msgs = replay_transcript_to_ui_messages([
{