Skip to content

test: protect large HTTP payload compatibility - #3721

Open
apcha-oai wants to merge 1 commit into
mainfrom
apcha/large-payload-contract
Open

test: protect large HTTP payload compatibility#3721
apcha-oai wants to merge 1 commit into
mainfrom
apcha/large-payload-contract

Conversation

@apcha-oai

Copy link
Copy Markdown
Contributor

Summary

Protect the current and recent releases’ support for large valid HTTP responses across Responses and Chat Completions. The payload guidance follows openai-node#2433: supported API output should not gain new arbitrary body, event, or line rejection limits as a side effect of security or performance fixes.

Add a deterministic public-entrypoint contract test with synthetic 32 MiB+1 text. It covers blocking Responses output_text, structured JSON parsing in both APIs, streamed Responses deltas and final responses, and Chat Completions' partial-JSON accumulation and final parsed completion. The cases run sequentially in one test so pytest workers do not multiply their memory cost. The intentional payload size is a regression probe, not an API maximum; fixtures stay in memory and use no live API or real credentials.

The existing HTTP paths accept these payloads, so this PR changes only agent guidance and a standalone repository-owned test. It makes no runtime, dependency, generation, or custom-code budget changes. WebSockets are outside this PR's scope.

@apcha-oai
apcha-oai requested a review from a team as a code owner August 22, 2026 22:54
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Aug 22, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-08-22T22:56:22.518072Z 618c5f0 PR opened
🔒 Security Review Completed 2026-08-22T22:56:07.946356Z 618c5f0 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@openai-sdks

openai-sdks Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

OkTest Summary

237/237 SDK tests passed in 13.476s for Python SDK PR #3721.

Test results — 42 files
Test Result Time
tests/chat-completions-complex-body.test.ts ✅ Passed 241ms
tests/chat-completions-create.test.ts ✅ Passed 363ms
tests/chat-completions-stream.test.ts ✅ Passed 177ms
tests/files-content-binary.test.ts ✅ Passed 333ms
tests/files-create-multipart.test.ts ✅ Passed 187ms
tests/files-list-pagination.test.ts ✅ Passed 151ms
tests/initialize-config.test.ts ✅ Passed 254ms
tests/instance-isolation.test.ts ✅ Passed 283ms
tests/models-list.test.ts ✅ Passed 200ms
tests/responses-background-lifecycle.test.ts ✅ Passed 220ms
tests/responses-body-method-errors.test.ts ✅ Passed 422ms
tests/responses-cancel-timeout.test.ts ✅ Passed 272ms
tests/responses-cancel.test.ts ✅ Passed 246ms
tests/responses-compact-retries.test.ts ✅ Passed 389ms
tests/responses-compact.test.ts ✅ Passed 448ms
tests/responses-create-advanced-stream.test.ts ✅ Passed 440ms
tests/responses-create-advanced.test.ts ✅ Passed 332ms
tests/responses-create-disconnect.test.ts ✅ Passed 1.475s
tests/responses-create-errors.test.ts ✅ Passed 287ms
tests/responses-create-malformed-api-responses.test.ts ✅ Passed 557ms
tests/responses-create-retries.test.ts ✅ Passed 339ms
tests/responses-create-stream-failures.test.ts ✅ Passed 213ms
tests/responses-create-stream-timeout.test.ts ✅ Passed 233ms
tests/responses-create-stream-wire.test.ts ✅ Passed 3.964s
tests/responses-create-stream.test.ts ✅ Passed 190ms
tests/responses-create-terminal-states.test.ts ✅ Passed 282ms
tests/responses-create-timeout.test.ts ✅ Passed 266ms
tests/responses-create.test.ts ✅ Passed 459ms
tests/responses-delete.test.ts ✅ Passed 322ms
tests/responses-input-items-errors.test.ts ✅ Passed 524ms
tests/responses-input-items-list.test.ts ✅ Passed 353ms
tests/responses-input-items-options.test.ts ✅ Passed 412ms
tests/responses-input-tokens-count-timeout.test.ts ✅ Passed 274ms
tests/responses-input-tokens-count.test.ts ✅ Passed 392ms
tests/responses-malformed-inputs.test.ts ✅ Passed 2.968s
tests/responses-not-found-errors.test.ts ✅ Passed 369ms
tests/responses-parse.test.ts ✅ Passed 599ms
tests/responses-retrieve-retries.test.ts ✅ Passed 423ms
tests/responses-retrieve.test.ts ✅ Passed 362ms
tests/responses-stored-method-errors.test.ts ✅ Passed 798ms
tests/retry-behavior.test.ts ✅ Passed 3.154s
tests/sdk-error-shape.test.ts ✅ Passed 431ms

View OkTest run #32603767074

SDK merge (8d30c894f838) · head (618c5f022cdc) · base (e43b422412a9) · OkTest (2b1bdfd25e98)

@github-actions

Copy link
Copy Markdown
Contributor

Castiron custom code

✅ No new custom-code files detected.

34 mixed files remain; 0 existing customizations changed.

Compared e43b422412a9618c5f022cdc. Generated baselines verified.

34 existing customizations unchanged
  • api.md
  • scripts/castiron/README.md
  • scripts/castiron/custom_code_report.py
  • scripts/castiron/test_custom_code_report.py
  • src/openai/init.py
  • src/openai/_client.py
  • src/openai/resources/audio/transcriptions.py
  • src/openai/resources/audio/translations.py
  • src/openai/resources/beta/beta.py
  • src/openai/resources/beta/responses/responses.py
  • src/openai/resources/beta/threads/runs/runs.py
  • src/openai/resources/beta/threads/threads.py
  • src/openai/resources/chat/completions/completions.py
  • src/openai/resources/embeddings.py
  • src/openai/resources/files.py
  • src/openai/resources/realtime/realtime.py
  • src/openai/resources/responses/responses.py
  • src/openai/resources/uploads/uploads.py
  • src/openai/resources/vector_stores/file_batches.py
  • src/openai/resources/vector_stores/files.py
  • src/openai/resources/videos.py
  • src/openai/resources/webhooks/init.py
  • src/openai/resources/webhooks/webhooks.py
  • src/openai/types/chat/init.py
  • src/openai/types/chat/chat_completion_message_tool_call.py
  • src/openai/types/fine_tuning/fine_tuning_job_integration.py
  • src/openai/types/responses/init.py
  • src/openai/types/responses/response.py
  • src/openai/types/responses/response_function_web_search.py
  • src/openai/types/responses/response_function_web_search_param.py
  • src/openai/types/responses/tool.py
  • src/openai/types/responses/tool_param.py
  • src/openai/types/webhooks/init.py
  • tests/api_resources/test_videos.py

A changed generated baseline means this report cannot reliably identify which handwritten lines changed.

Inspect the custom-code diff

Download the exact patch produced by this run (requires repository access):

gh run download 32603784169 --repo openai/openai-python \
  --name castiron-custom-code-32603784169-1 --dir /tmp/castiron-custom-code-32603784169-1
git apply --stat /tmp/castiron-custom-code-32603784169-1/custom-code.patch
cat /tmp/castiron-custom-code-32603784169-1/custom-code.patch

Or reproduce it from an SDK checkout containing the vendored reporter:

git fetch --no-tags origin e43b422412a9e96c9cc5192c61fffbe2d7e04836 618c5f022cdc4bdabebc82eb9df522c0d58689c6
python3 scripts/castiron/custom_code_report.py report \
  --base e43b422412a9e96c9cc5192c61fffbe2d7e04836 \
  --head 618c5f022cdc4bdabebc82eb9df522c0d58689c6 --fetch --require-head-hash --public \
  --out /tmp/castiron-custom-code-618c5f022cdc
cat /tmp/castiron-custom-code-618c5f022cdc/custom-code.patch

This is the current full custom patch for mixed files, not an attribution of only the handwritten lines changed by this PR.

Full report and patch

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.

1 participant