feat: use message LCP cache affinity keys

This commit is contained in:
2026-06-29 15:47:57 +08:00
parent 229ed6a669
commit 24eb68cc09
6 changed files with 179 additions and 37 deletions
@@ -63,12 +63,14 @@ func (s *Server) prepareTaskRequest(ctx context.Context, r *http.Request, user *
return preparedTaskRequest{}, err
}
inputs := make([]store.ConversationMessageInput, 0, len(messages))
messageHashes := make([]any, 0, len(messages))
for _, rawMessage := range messages {
message, _ := rawMessage.(map[string]any)
if message == nil {
message = map[string]any{"content": rawMessage}
}
hash, assetHashes := canonicalConversationMessageHash(message)
messageHashes = append(messageHashes, hash)
inputs = append(inputs, store.ConversationMessageInput{
Hash: hash,
Role: stringFromRequestAny(message["role"]),
@@ -83,6 +85,7 @@ func (s *Server) prepareTaskRequest(ctx context.Context, r *http.Request, user *
preparedBody["conversationId"] = conversationKey
preparedBody["conversationRecordId"] = conversationID
preparedBody["messageRefs"] = messageRefsForRequest(refs)
preparedBody["messageHashes"] = messageHashes
preparedBody["newMessageCount"] = newCount
delete(preparedBody, "messages")
result.ConversationID = conversationID