From a17808146848023b411771257208e66b8b7d7a0b Mon Sep 17 00:00:00 2001 From: Teknium <127238744+teknium1@users.noreply.github.com> Date: Thu, 30 Apr 2026 20:25:17 -0700 Subject: [PATCH] fix(gateway): use _session_key_for_source for native image buffer write MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Minor follow-up to the native-image-buffer isolation fix. The write site in _prepare_inbound_message_text was calling build_session_key directly, while every other call site in gateway/run.py uses the _session_key_for_source helper — which consults session_store._generate_session_key first and falls back to build_session_key. Keeping the write key and consume key on the same helper prevents key drift if the session store ever overrides the default keying behavior. --- gateway/run.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gateway/run.py b/gateway/run.py index 94683edb9..710bf3b00 100644 --- a/gateway/run.py +++ b/gateway/run.py @@ -5091,11 +5091,10 @@ class GatewayRunner: message_text = event.text or "" _group_sessions_per_user = getattr(self.config, "group_sessions_per_user", True) _thread_sessions_per_user = getattr(self.config, "thread_sessions_per_user", False) - session_key = build_session_key( - source, - group_sessions_per_user=_group_sessions_per_user, - thread_sessions_per_user=_thread_sessions_per_user, - ) + # Use the same helper every other call site uses so the write key here + # matches the consume key at the run_conversation site — even if the + # session store overrides build_session_key's default behavior. + session_key = self._session_key_for_source(source) # Reset only this session's per-call buffer; other sessions may be # concurrently preparing multimodal turns on the same runner. self._consume_pending_native_image_paths(session_key)