fix: name provider instances in responses, drop the empty auth-user header, type plugin errors - #957
fix: name provider instances in responses, drop the empty auth-user header, type plugin errors#957SantiagoDePolonia wants to merge 4 commits into
Conversation
…eader, type plugin errors
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
|
Warning Review limit reachedNext included review available in 16 minutes. View limit detailsLimit details: You’ve used all 4 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (32)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
|
|
@coderabbitai review |
|
@greptileai review |
|
|
@coderabbitai review |
Rate Limit Exceeded
|
|
@coderabbitai review |
|
Four small pre-release fixes.
Provider instance names in responses. The
providerfield on/v1/responsesand/v1/chat/completions(streamed and not) now names the configured provider instance instead of the provider type, so two instances of one type are distinguishable — an instance namedmockdsof typedeepseekreports"provider": "mockds". This follows #946: the gateway stamps the instance name from the execution metadata, and the OpenAI-compatible adapters plus the providers that translate Responses through chat (cohere, gemini, vertex, bedrock, groq, chutes, minimax, bailian, ollama, opencode-go) carryopts.ClientName(...)the same way the HTTP clients already do. The audit log is unchanged —providerstays the type that drives routing and filters,provider_nameis the instance — and the dashboard workflow chart's provider node now readsprovider_name. Scope: this covers theproviderfield GoModel itself authors. A chat stream from an OpenAI-compatible upstream is relayed byte for byte, so on the rare upstream that self-reports aprovidermember in its own SSE payload (OpenRouter-style) that value still passes through unchanged, as it did before this PR.Empty
X-Gomodel-Auth-Userresponse header. Every authenticated request emitted the header with an empty value when the credential had no user path (including master-key requests). It is now removed instead of set empty; the middleware still clears an identity installed by outer extension middleware.Plugin failure error type. A fail-closed plugin returned HTTP 500 with type
provider_erroralthough no provider was called. It now returns typeinternal_error(codeplugin_failureand the status are unchanged), as does a guardrail block with a 5xx status..dockerignore. A localdocker buildbaked the developer's gitignoredconfig/config.yamlinto the image, where/app/config/config.yamlis a default config search path.config/config.yamlis now excluded;config.example.yamlandflow.yamlstill ship.Also fixes two
internal/serverversion-handler tests that compared a UTC-derived cookie date against the local date and failed for runs made after midnight in a UTC+ timezone.Tested:
go test ./...andgo test -raceon the touched packages,make lint,make test-dashboard(670 pass). Live against a gateway with two deepseek instances (deepseekandmockds):/v1/responsesand/v1/chat/completions, buffered and streamed, report the instance that served the request; the audit entry keepsprovider: deepseekwithprovider_name: mockds; noX-Gomodel-Auth-Userheader on master-key responses..dockerignoreverified by inspecting the build context of adocker buildbefore and after.