diff --git a/internal/translator/antigravity/claude/antigravity_claude_request.go b/internal/translator/antigravity/claude/antigravity_claude_request.go index 038ddb8e..87772d8c 100644 --- a/internal/translator/antigravity/claude/antigravity_claude_request.go +++ b/internal/translator/antigravity/claude/antigravity_claude_request.go @@ -22,6 +22,14 @@ import ( // deriveSessionID generates a stable session ID from the request. // Uses the hash of the first user message to identify the conversation. func deriveSessionID(rawJSON []byte) string { + userIDResult := gjson.GetBytes(rawJSON, "metadata.user_id") + if userIDResult.Exists() { + userID := userIDResult.String() + idx := strings.Index(userID, "session_") + if idx != -1 { + return userID[idx+8:] + } + } messages := gjson.GetBytes(rawJSON, "messages") if !messages.IsArray() { return ""