From bedc42a94d9853248102f0e2ff524687f10d59d7 Mon Sep 17 00:00:00 2001 From: tzhouam Date: Sun, 4 Oct 2026 03:19:39 +0800 Subject: [PATCH] [Bugfix] Preserve session IDs when upgrading Omni engine requests Signed-off-by: tzhouam --- tests/engine/test_omni_request.py | 25 ++++++++++++++++++++++++- vllm_omni/engine/__init__.py | 1 + 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/tests/engine/test_omni_request.py b/tests/engine/test_omni_request.py index 521c92b94..23c880242 100644 --- a/tests/engine/test_omni_request.py +++ b/tests/engine/test_omni_request.py @@ -13,13 +13,15 @@ substitutable with the base class — including base-style calls that pass import inspect +import msgspec import numpy as np import pytest import torch from vllm.sampling_params import SamplingParams +from vllm.v1.engine import EngineCoreRequest from vllm.v1.request import Request -from vllm_omni.engine import PromptEmbedsPayload +from vllm_omni.engine import OmniEngineCoreRequest, PromptEmbedsPayload from vllm_omni.request import OmniRequest, OmniStreamingUpdate pytestmark = [pytest.mark.core_model, pytest.mark.cpu] @@ -111,3 +113,24 @@ def test_model_intermediate_buffer_round_trips_to_streaming_update(): assert update is not None assert request.model_intermediate_buffer is buffer assert update.model_intermediate_buffer is buffer + + +@pytest.mark.parametrize("session_id", [None, "session"]) +def test_session_survives_omni_upgrade_wire_transport_and_scheduler_conversion(session_id): + core = EngineCoreRequest( + request_id="session-request", + prompt_token_ids=[1, 2], + mm_features=None, + sampling_params=SamplingParams(max_tokens=2), + pooling_params=None, + arrival_time=0.0, + lora_request=None, + cache_salt=None, + data_parallel_rank=None, + session_id=session_id, + ) + upgraded = OmniEngineCoreRequest.from_request(core) + decoded = msgspec.msgpack.decode(msgspec.msgpack.encode(upgraded), type=OmniEngineCoreRequest) + scheduled = OmniRequest.from_engine_core_request(decoded, block_hasher=None) + assert decoded.session_id == session_id + assert scheduled.session_id == session_id diff --git a/vllm_omni/engine/__init__.py b/vllm_omni/engine/__init__.py index c36d6d986..7300e1465 100644 --- a/vllm_omni/engine/__init__.py +++ b/vllm_omni/engine/__init__.py @@ -123,6 +123,7 @@ class OmniEngineCoreRequest(EngineCoreRequest): trace_headers=request.trace_headers, resumable=request.resumable, external_req_id=request.external_req_id, + session_id=request.session_id, reasoning_ended=request.reasoning_ended, reasoning_parser_kwargs=request.reasoning_parser_kwargs, abort_immediately=request.abort_immediately,