Commit Graph
18475 Commits
Author SHA1 Message Date
Michael Bolin 4dd7f3cdf1 merge commit for archive created by Sapling 2026-07-09 12:08:59 -07:00
Michael Bolin fc0a88aa07 login: use route-aware HTTP client abstraction 2026-07-09 12:08:20 -07:00
Michael Bolin f04684df98 merge commit for archive created by Sapling 2026-07-09 12:02:10 -07:00
Michael Bolin a1ef58123f login: use route-aware HTTP client abstraction 2026-07-09 12:01:00 -07:00
Michael Bolin d4b562fb9a Merge c50357588b into sapling-pr-archive-bolinfest 2026-07-09 11:53:36 -07:00
Michael Bolin c50357588b core-plugins: route requests through HTTP client factory 2026-07-09 11:53:23 -07:00
Michael Bolin bf21583df2 app-server-daemon: route updater download through HTTP client factory 2026-07-09 11:53:23 -07:00
Michael Bolin cfcc11db69 cloud-tasks: route environment requests through HTTP client factory 2026-07-09 11:53:23 -07:00
Michael Bolin 132bd72d99 backend-client: route requests through HTTP client factory 2026-07-09 11:53:23 -07:00
Michael Bolin a45cdd65cd login: use route-aware HTTP client abstraction 2026-07-09 11:53:23 -07:00
Michael Bolin 2e8c3756f9 build: ratchet direct reqwest dependencies (#31431)
## Why

The `codex-http-client` migration now has a shared implementation and
several migrated request paths, but nothing prevents a new crate from
adding another direct `reqwest` dependency while the remaining call
sites are being converted. The dependency graph should both enforce the
direction of travel and make the remaining scope visible.

This PR adds that ratchet on top of #31363. It does not claim the
migration is complete: the allowlist deliberately records all 18
first-party crates that still depend on `reqwest` directly.

## What changed

- Ban `reqwest` with cargo-deny unless its immediate parent is an
explicitly listed wrapper.
- Identify `codex-http-client` as the intended owner.
- Record the 18 current first-party direct dependents as temporary
migration exceptions.
- Separately allow six third-party integrations that own their `reqwest`
dependency: `oauth2`, `opentelemetry-http`, `opentelemetry-otlp`,
`rmcp`, `sentry`, and `webrtc-sys-build`.
- Cover both `reqwest` 0.12 and 0.13 with the same package-level rule.

## Migration rule

A new first-party crate cannot add `reqwest`. When a listed crate
finishes migrating, its direct Cargo dependency and its wrapper entry
should be removed in the same PR, so the first-party list can only
shrink.

## Review guide

The entire change is the new `reqwest` entry in `codex-rs/deny.toml`:

1. `codex-http-client` is the permanent intended wrapper.
2. The next 18 entries are the first-party migration backlog.
3. The final six entries are separately documented third-party parents
required by cargo-deny graph semantics.

## Validation

- `cargo deny check bans --hide-inclusion-graph` (`bans ok`; existing
duplicate-version warnings remain warnings)




























---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed
with [ReviewStack](https://reviewstack.dev/openai/codex/pull/31431).
* #31837
* #31828
* #31825
* #31821
* #31637
* __->__ #31431
2026-07-09 11:53:18 -07:00
Michael Bolin f5c3e9fa01 Merge bbc00eaa75 into sapling-pr-archive-bolinfest 2026-07-09 11:44:38 -07:00
Michael Bolin bbc00eaa75 core-plugins: route requests through HTTP client factory 2026-07-09 11:44:25 -07:00
Michael Bolin 79abb4882c app-server-daemon: route updater download through HTTP client factory 2026-07-09 11:44:25 -07:00
Michael Bolin d8735566ca cloud-tasks: route environment requests through HTTP client factory 2026-07-09 11:44:25 -07:00
Michael Bolin cdb527518f backend-client: route requests through HTTP client factory 2026-07-09 11:44:25 -07:00
Michael Bolin 3b84b5cce7 login: use route-aware HTTP client abstraction 2026-07-09 11:44:25 -07:00
Michael Bolin ab1f37eb8e build: ratchet direct reqwest dependencies 2026-07-09 11:44:25 -07:00
Michael Bolin 3ab3fa3363 merge commit for archive created by Sapling 2026-07-09 11:41:39 -07:00
Michael Bolin 4fd8c87257 core-plugins: route requests through HTTP client factory 2026-07-09 11:41:27 -07:00
Felipe Coury 2c85975eea fix(sandboxing): initialize network proxy config inline (#31830)
## Why

PR #31767 flattened `NetworkProxyConfig`, leaving the [seatbelt test
setup](https://github.com/openai/codex/blob/d72d669ca727a26765315ffe03db3dd2594d9b91/codex-rs/sandboxing/src/seatbelt_tests.rs#L660-L662)
to assign fields directly after `NetworkProxyConfig::default()`. Rust
1.95 flags that pattern as `clippy::field_reassign_with_default`, and
the macOS Bazel Clippy job treats the warning as an error, blocking
`main` and PRs based on it.

## What Changed

Initialize `enabled` and `mode` in the `NetworkProxyConfig` struct
literal, then apply the Unix socket allowlist through the existing
setter. This preserves the test behavior while satisfying Clippy.

## How to Test

This is a test-only initialization change, so there is no manual product
flow.

Targeted tests:

- `just test -p codex-sandboxing` (65 passed)
- `just clippy -p codex-sandboxing`

The local argument-comment lint could not complete because Bazel's LLVM
repository is missing the `compiler-rt` BUILD package. The touched Rust
diff was manually audited and adds no positional literal calls.
2026-07-09 19:36:36 +01:00
Michael Bolin 16d04d4c0e merge commit for archive created by Sapling 2026-07-09 11:36:02 -07:00
Michael Bolin a21a737b68 core-plugins: route requests through HTTP client factory 2026-07-09 11:35:20 -07:00
Michael Bolin 4094a9d502 Merge daf617a557 into sapling-pr-archive-bolinfest 2026-07-09 11:16:26 -07:00
Michael Bolin daf617a557 core-plugins: route requests through HTTP client factory 2026-07-09 11:16:01 -07:00
Michael Bolin 9e0eb5cc34 merge commit for archive created by Sapling 2026-07-09 11:00:51 -07:00
Michael Bolin d572f2dcde app-server-daemon: route updater download through HTTP client factory 2026-07-09 11:00:45 -07:00
Michael Bolin 85be1b3b6b merge commit for archive created by Sapling 2026-07-09 10:54:42 -07:00
Michael Bolin c669beb0f5 app-server-daemon: route updater download through HTTP client factory 2026-07-09 10:54:22 -07:00
Michael Bolin 98d2d4f221 Merge c93a7ca6db into sapling-pr-archive-bolinfest 2026-07-09 10:50:08 -07:00
Michael Bolin c93a7ca6db app-server-daemon: route updater download through HTTP client factory 2026-07-09 10:50:01 -07:00
Michael Bolin c741a5d335 merge commit for archive created by Sapling 2026-07-09 10:48:04 -07:00
Michael Bolin 234670dcbf cloud-tasks: route environment requests through HTTP client factory 2026-07-09 10:47:58 -07:00
Michael Bolin ae02b80a9f merge commit for archive created by Sapling 2026-07-09 10:45:43 -07:00
Michael Bolin f9c8ec5621 cloud-tasks: route environment requests through HTTP client factory 2026-07-09 10:45:22 -07:00
Michael Bolin 4c863d8e02 Merge 6127c6a3f5 into sapling-pr-archive-bolinfest 2026-07-09 10:41:28 -07:00
Michael Bolin 6127c6a3f5 cloud-tasks: route environment requests through HTTP client factory 2026-07-09 10:41:13 -07:00
Michael Bolin 6e5a9017e2 merge commit for archive created by Sapling 2026-07-09 10:41:00 -07:00
Michael Bolin 3c6d810e60 backend-client: route requests through HTTP client factory 2026-07-09 10:40:40 -07:00
Michael Bolin a39b435b7b Merge 10c283c1c4 into sapling-pr-archive-bolinfest 2026-07-09 10:37:45 -07:00
Michael Bolin 10c283c1c4 backend-client: route requests through HTTP client factory 2026-07-09 10:37:31 -07:00
Michael Bolin 58c30cb441 merge commit for archive created by Sapling 2026-07-09 10:31:07 -07:00
Michael Bolin ab5927ce96 backend-client: route requests through HTTP client factory 2026-07-09 10:30:37 -07:00
Michael Bolin 2abad68961 Merge 080d07d94f into sapling-pr-archive-bolinfest 2026-07-09 10:24:27 -07:00
Michael Bolin 080d07d94f backend-client: route requests through HTTP client factory 2026-07-09 10:24:15 -07:00
Eric Traut d72d669ca7 tui: update safety buffering copy (#31813)
## Summary

The safety-buffering message currently leads with additional safety
checks, which can make the delay feel accusatory. Update it to describe
the system taking more time before responding, matching the revised
user-facing language.

- Replace the safety-buffering copy in both retry and non-retry flows.
- Keep the faster-model escape hatch while aligning its wording with the
updated message.
- Update the TUI snapshots for both states.
2026-07-09 10:03:22 -07:00
Michael Bolin 5e969be86d Merge 93835d1ed2 into sapling-pr-archive-bolinfest 2026-07-09 09:58:41 -07:00
Michael Bolin 93835d1ed2 login: use route-aware HTTP client abstraction 2026-07-09 09:58:35 -07:00
Michael Bolin cd625940ef build: ratchet direct reqwest dependencies 2026-07-09 09:58:35 -07:00
Michael Bolin 0e19d5e908 codex-api: route file uploads through HTTP client factory (#31363)
## Why

Codex Apps file parameters use a three-step upload flow: create a file
record, PUT bytes to a returned signed URL, and finalize the upload.
Each step still constructed a default `reqwest` client, so the flow
could bypass `features.respect_system_proxy` even after model API
requests honored it.

This stack entry makes the resolved client policy a required input to
the upload API and resolves each concrete destination independently.

## What changed

- Require `HttpClientFactory` in `upload_openai_file`.
- Build clients for the create, signed upload, and finalize URLs through
the shared API route policy.
- Pass the factory derived from the turn configuration at the Apps/MCP
call site.
- Return a destination-aware `ClientBuild` error when enabled route
selection cannot construct a client.
- Preserve the legacy logged fallback for the feature-off
`ReqwestDefault` policy.

## Review guide

1. `codex-api/src/files.rs` changes the upload API and centralizes
route-aware client construction.
2. The three request stages each supply their actual URL, including the
separately hosted signed blob URL.
3. `core/src/mcp_openai_file.rs` is the only production caller and
supplies the turn configuration factory.

## Validation

- `cargo check --tests -p codex-api -p codex-core`
- `just test -p codex-api files` (1 matching upload test passed; 135
tests skipped by filter)
- `just fix -p codex-api -p codex-core`

## Follow-up

Other direct HTTP clients remain separate migration slices.














---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed
with [ReviewStack](https://reviewstack.dev/openai/codex/pull/31363).
* #31637
* #31431
* __->__ #31363
2026-07-09 09:58:22 -07:00