Skip to content

feat(codex): add opt-in gzip HTTP request body compression - #202

Merged
raine merged 1 commit into
raine:mainfrom
chris7iu:feat/codex-request-compression
Nov 6, 2026
Merged

raine merged 1 commit into
raine:mainfrom
chris7iu:feat/codex-request-compression

Conversation

@chris7iu

@chris7iu chris7iu commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds opt-in gzip request body compression for outbound Codex HTTP POST requests (codex.requestCompression in ~/.config/claude-code-proxy/config.json or CCP_CODEX_REQUEST_COMPRESSION=1).
  • When codex.requestCompression is enabled and no explicit codex.transport / CCP_CODEX_TRANSPORT is set, defaults codex_transport() to Http so requests use gzip-compressed HTTP POST (Content-Encoding: gzip) instead of uncompressed WebSocket text frames.
  • Preserves readable JSON payloads in 020-upstream-request.json traffic capture while recording compressedBytes in 021-upstream-request-metadata.json.
  • Reduces outbound Codex request payload bytes by ~80-88% on large multi-turn / tool-heavy conversations, significantly cutting metered proxy/egress bandwidth.

Test Plan

  • cargo fmt --check
  • cargo clippy --all-targets -- -D warnings
  • cargo test --lib config::tests::codex_request_compression
  • cargo test --lib providers::codex::client::tests::http_request_compression
  • Verified live against https://chatgpt.com/backend-api/codex/responses (HTTP/2 200, event: response.created).

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants