From dbd9da71858ea68332bdae35b245f4d4fdc6955a Mon Sep 17 00:00:00 2001 From: Teknium <127238744+teknium1@users.noreply.github.com> Date: Fri, 17 Jul 2026 05:23:02 -0700 Subject: [PATCH] test(codex): cover overlength cache-scope headers Exercise the real transport path for long session ids, including stable hashing and bounded body/header cache keys. --- .../agent/transports/test_codex_transport.py | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tests/agent/transports/test_codex_transport.py b/tests/agent/transports/test_codex_transport.py index 761ca8c9c66..aed43fcf0d4 100644 --- a/tests/agent/transports/test_codex_transport.py +++ b/tests/agent/transports/test_codex_transport.py @@ -320,6 +320,42 @@ class TestCodexBuildKwargs: assert headers.get("session_id") == "conv-codex-1" assert headers.get("x-client-request-id") == "conv-codex-1" + def test_codex_backend_hashes_overlength_cache_routing_headers(self, transport): + messages = [{"role": "user", "content": "Hi"}] + long_session_id = "paperclip:company:" + "a" * 80 + + kw = transport.build_kwargs( + model="gpt-5.4", + messages=messages, + tools=[], + session_id=long_session_id, + is_codex_backend=True, + ) + + headers = kw["extra_headers"] + cache_scope = headers["session_id"] + assert cache_scope == headers["x-client-request-id"] + assert cache_scope.startswith("pck_") + assert len(cache_scope) <= 64 + assert cache_scope != long_session_id + assert kw["prompt_cache_key"].startswith("pck_") + assert len(kw["prompt_cache_key"]) <= 64 + + def test_codex_backend_overlength_cache_scope_is_stable(self, transport): + session_id = "paperclip:company:" + "a" * 80 + kwargs = { + "model": "gpt-5.4", + "messages": [{"role": "user", "content": "Hi"}], + "tools": [], + "session_id": session_id, + "is_codex_backend": True, + } + + first = transport.build_kwargs(**kwargs)["extra_headers"]["session_id"] + second = transport.build_kwargs(**kwargs)["extra_headers"]["session_id"] + + assert first == second + def test_codex_backend_no_headers_without_session_id(self, transport): messages = [{"role": "user", "content": "Hi"}]