Skip to content

model-provider: route model discovery through HTTP client factory#31361

Draft
bolinfest wants to merge 1 commit into
pr31342from
pr31361
Draft

model-provider: route model discovery through HTTP client factory#31361
bolinfest wants to merge 1 commit into
pr31342from
pr31361

Conversation

@bolinfest

@bolinfest bolinfest commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Why

Model discovery is a startup-critical request path, but it still constructed a default reqwest client directly. That meant features.respect_system_proxy could apply to Responses API traffic while /models catalog refreshes bypassed the same resolved proxy policy.

This is the next focused migration on top of #31342. It makes the proxy decision mandatory at the model-provider boundary rather than adding another optional flag a caller could omit.

What changed

  • Require an HttpClientFactory when constructing a ModelProvider models manager.
  • Pass the factory resolved from Config through codex-core into the OpenAI models endpoint.
  • Build the /models transport with the route-aware API client and the full request destination.
  • Keep the Amazon Bedrock provider unchanged functionally because its model catalog is static.
  • Give test-only construction an explicit ReqwestDefault policy.

Review guide

  1. model-provider/src/provider.rs adds the required factory to the provider API.
  2. model-provider/src/models_endpoint.rs is the behavior change that routes /models through the shared client policy.
  3. core/src/thread_manager.rs supplies the feature-derived factory; the remaining edits update test and alternate-provider construction.

Validation

  • cargo check --tests -p codex-model-provider -p codex-core -p codex-memories-write
  • just test -p codex-model-provider (50 tests passed)

Follow-up

Other direct reqwest consumers will be migrated in separate, reviewable stack entries.


Stack created with Sapling. Best reviewed with ReviewStack.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant