DefaultAnalyzer.Analyze builds the CompletionRequest without MaxTokens or Temperature (internal/ai/analyzer.go:68), so the per-request override path that provider_test.go exercises as a feature is dead through the only real caller.
it happens to work today because each provider falls back to its own default (1024 tokens, temp 0.2) and buildAnalyzer seeds those defaults from ProviderConfig. but the documented CompletionRequest.MaxTokens / Temperature fields never carry through in production, and anyone constructing a provider with a zero-value config and relying on per-request values gets them silently ignored.
set MaxTokens and Temperature on the request from the analyzer's config so the request-level values are actually wired, and the precedence is consistent.
DefaultAnalyzer.Analyzebuilds theCompletionRequestwithoutMaxTokensorTemperature(internal/ai/analyzer.go:68), so the per-request override path thatprovider_test.goexercises as a feature is dead through the only real caller.it happens to work today because each provider falls back to its own default (1024 tokens, temp 0.2) and
buildAnalyzerseeds those defaults fromProviderConfig. but the documentedCompletionRequest.MaxTokens/Temperaturefields never carry through in production, and anyone constructing a provider with a zero-value config and relying on per-request values gets them silently ignored.set
MaxTokensandTemperatureon the request from the analyzer's config so the request-level values are actually wired, and the precedence is consistent.