[Bugfix][MiniCPM-o] Fix async-chunk snapshot replacement and prompt cleanup (#6406)

Signed-off-by: natureofnature <wzliu@connect.hku.hk>
Co-authored-by: amy-why-3459 <wuhaiyan17@huawei.com>
This commit is contained in:
NATUREandamy-why-3459 authored and GitHub committed 2026-08-21 16:37:21 +08:00
1 parent ea0a24465b
commit 4f7c08c0eb
14 files changed
+458 -19

No files matched your search

@@ -537,6 +537,15 @@ def test_empty_final_ignores_generation_scheduler_placeholder_token():
# The runner injects the engine request id on every step (GPU
# _preprocess, NPU _gather_runtime_additional_information)...
{"request_id": "a", "meta": {"request_id": "a"}},
# Runtime snapshot bookkeeping alone is not a Talker payload.
{
"request_id": "a",
"meta": {
"request_id": "a",
"num_processed_tokens": 0,
"resumable": True,
},
},
# ...but a pre-warm step can also reach the model with nothing at all.
{},
],
@@ -423,6 +423,12 @@ def test_duplex_turn_end_closes_epoch_and_next_turn_restarts_sequence() -> None:
request,
True,
)
duplicate_boundary = tts2code2wav_async_chunk(
manager,
_duplex_delta(turn_id=7, turn_end=True),
request,
True,
)
next_turn = tts2code2wav_async_chunk(
manager,
_duplex_delta(20, turn_id=8),
@@ -435,6 +441,10 @@ def test_duplex_turn_end_closes_epoch_and_next_turn_restarts_sequence() -> None:
assert turn_end.meta.last_chunk is True
assert turn_end.meta.turn_end is True
assert turn_end.meta.is_segment_finished.item() is True
assert turn_end.meta.replace_runtime_additional_information is True
assert duplicate_boundary is not None
assert duplicate_boundary.meta.is_segment_finished.item() is True
assert duplicate_boundary.meta.replace_runtime_additional_information is True
assert next_turn.meta.cache_epoch == turn_end.meta.cache_epoch + 1
assert next_turn.meta.chunk_seq == 0
assert next_turn.meta.last_chunk is False