From 314361733f16e11ed6f42a2da772c68d1236b071 Mon Sep 17 00:00:00 2001 From: Teknium <127238744+teknium1@users.noreply.github.com> Date: Tue, 5 May 2026 05:23:51 -0700 Subject: [PATCH] test(api_server): _run_agent result now carries session_id for #16938 --- gateway/platforms/api_server.py | 4 +++- tests/gateway/test_api_server.py | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gateway/platforms/api_server.py b/gateway/platforms/api_server.py index 200006b745..b460754331 100644 --- a/gateway/platforms/api_server.py +++ b/gateway/platforms/api_server.py @@ -2488,7 +2488,9 @@ class APIServerAdapter(BasePlatformAdapter): # Include the effective session ID in the result so callers # (e.g. X-Hermes-Session-Id header) can track compression- # triggered session rotations. (#16938) - result["session_id"] = getattr(agent, "session_id", session_id) + _eff_sid = getattr(agent, "session_id", session_id) + if isinstance(_eff_sid, str) and _eff_sid: + result["session_id"] = _eff_sid return result, usage return await loop.run_in_executor(None, _run) diff --git a/tests/gateway/test_api_server.py b/tests/gateway/test_api_server.py index d97ef646b3..2bf539041e 100644 --- a/tests/gateway/test_api_server.py +++ b/tests/gateway/test_api_server.py @@ -395,7 +395,12 @@ class TestAgentExecution: session_id="session-123", ) - assert result == {"final_response": "ok"} + # _run_agent annotates result with the effective agent.session_id + # when it's a real string, so the response-header writer can track + # compression-triggered session rotations (#16938). The mock agent + # here doesn't set an explicit session_id string so the guard skips + # the annotation — header will fall back to the provided session_id. + assert result["final_response"] == "ok" assert usage == {"input_tokens": 1, "output_tokens": 2, "total_tokens": 3} mock_agent.run_conversation.assert_called_once_with( user_message="hello",