From 8128f9a1a21077916586819cdb105fec67401f5c Mon Sep 17 00:00:00 2001 From: iceBear67 Date: Sun, 16 Aug 2026 03:45:51 +0000 Subject: [PATCH] Fix partial-move in Chat Completions session_cache_key mapping Copy the cache key before moving ConversationRequest fields so ChatCompletionRequest::from compiles (E0382). --- ...on-stable-prompt_cache_key-on-main-turns.patch | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) 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,