diff --git a/patches/0006-Pin-a-session-stable-prompt_cache_key-on-main-turns.patch b/patches/0006-Pin-a-session-stable-prompt_cache_key-on-main-turns.patch index 0696e41..9828acc 100644 --- a/patches/0006-Pin-a-session-stable-prompt_cache_key-on-main-turns.patch +++ b/patches/0006-Pin-a-session-stable-prompt_cache_key-on-main-turns.patch @@ -108,15 +108,24 @@ index 7bd0cd870c5400ef4d3fb2ba6ce50cfc53ffd62c..db582daced370d89cc1158d5cbbf81b7 #[test] fn prompt_cache_key_reaches_the_wire_only_where_the_backend_claims() { diff --git a/crates/codegen/xai-grok-sampling-types/src/conversation/chat_completions.rs b/crates/codegen/xai-grok-sampling-types/src/conversation/chat_completions.rs -index dac77d82f7f96836f5f4ed26f2e12eb13164e4f5..b80820fbbf3c96e348f44880c432361eb537817a 100644 +index dac77d82f7f96836f5f4ed26f2e12eb13164e4f5..05a683317ae774f3ba674202ff12ae3ae50f56ec 100644 --- a/crates/codegen/xai-grok-sampling-types/src/conversation/chat_completions.rs +++ b/crates/codegen/xai-grok-sampling-types/src/conversation/chat_completions.rs -@@ -295,7 +295,7 @@ impl From for ChatCompletionRequest { +@@ -251,6 +251,8 @@ impl From for ConversationItem { + + impl From for ChatCompletionRequest { + fn from(req: ConversationRequest) -> Self { ++ // Copy before any field moves — `session_cache_key` borrows `req`. ++ let user = req.session_cache_key().map(str::to_owned); + let messages: Vec = conversation_to_chat_messages(req.items); + + let tools_is_empty = req.tools.is_empty(); +@@ -295,7 +297,7 @@ impl From for ChatCompletionRequest { top_p: req.top_p, frequency_penalty: None, presence_penalty: None, - user: None, -+ user: req.session_cache_key().map(str::to_owned), ++ user, tools, tool_choice, search_parameters: None,