otel: normalize gen_ai.response.model to match request format
Anthropic responses echo the same logical model with a different separator (e.g. request 'claude-opus-4.6' resolves to 'claude-opus-4-6'), causing GROUP BY / DISTINCT on gen_ai.response.model to produce duplicate rows. Add normalizeResponseModel(requestModel, responseModel) that echoes the request value when the two strings only differ in '.' vs '-', and returns the resolved value unchanged when it adds real specificity (e.g. 'gpt-5.4-mini' -> 'gpt-5.4-mini-2026-03-17'). Wire into the three call sites that set gen_ai.response.model: chatMLFetcher (chat spans), toolCallingLoop (foreground invoke_agent), and claudeOTelTracker (Claude invoke_agent). Fixes #318805
Z
zhichli committed
a09e44ba92cd9a74aa15271e19aa2c8f6824f810
Parent: 93b3566