Fix partial-move in Chat Completions session_cache_key mapping
CI / test (push) Canceled after 0s
CI / grok-linux-amd64 (push) Canceled after 0s
CI / grok-windows-amd64 (push) Canceled after 0s
CI / grok-macos-arm64 (push) Canceled after 0s
CI / release (push) Canceled after 0s

Copy the cache key before moving ConversationRequest fields so
ChatCompletionRequest::from compiles (E0382).
This commit is contained in:
iceBear67
2026-08-16 03:45:51 +00:00
parent 62bd461356
commit 8128f9a1a2
@@ -108,15 +108,24 @@ index 7bd0cd870c5400ef4d3fb2ba6ce50cfc53ffd62c..db582daced370d89cc1158d5cbbf81b7
#[test] #[test]
fn prompt_cache_key_reaches_the_wire_only_where_the_backend_claims() { 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 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 --- a/crates/codegen/xai-grok-sampling-types/src/conversation/chat_completions.rs
+++ b/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<ConversationRequest> for ChatCompletionRequest { @@ -251,6 +251,8 @@ impl From<ChatResponseMessage> for ConversationItem {
impl From<ConversationRequest> 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<ChatRequestMessage> = conversation_to_chat_messages(req.items);
let tools_is_empty = req.tools.is_empty();
@@ -295,7 +297,7 @@ impl From<ConversationRequest> for ChatCompletionRequest {
top_p: req.top_p, top_p: req.top_p,
frequency_penalty: None, frequency_penalty: None,
presence_penalty: None, presence_penalty: None,
- user: None, - user: None,
+ user: req.session_cache_key().map(str::to_owned), + user,
tools, tools,
tool_choice, tool_choice,
search_parameters: None, search_parameters: None,