test: preserve large HTTP response payloads - #514
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Castiron custom code✅ No new custom-code files detected. 48 mixed files remain; 0 existing customizations changed. Compared 48 existing customizations unchanged
8 more in the full report. A changed generated baseline means this report cannot reliably identify which handwritten lines changed. Inspect the custom-code diffDownload the exact patch produced by this run (requires repository access): gh run download 32603738942 --repo openai/openai-ruby \
--name castiron-custom-code-32603738942-1 --dir /tmp/castiron-custom-code-32603738942-1
git apply --stat /tmp/castiron-custom-code-32603738942-1/custom-code.patch
cat /tmp/castiron-custom-code-32603738942-1/custom-code.patchOr reproduce it from an SDK checkout containing the vendored reporter: git fetch --no-tags origin e0dbef709a2419385f44d6187d12831981b9dda3 6a127281fcd6ae1f7430ca0bbcdcaf0b8aa18b61
python3 scripts/castiron/custom_code_report.py report \
--base e0dbef709a2419385f44d6187d12831981b9dda3 \
--head 6a127281fcd6ae1f7430ca0bbcdcaf0b8aa18b61 --fetch --require-head-hash --public \
--out /tmp/castiron-custom-code-6a127281fcd6
cat /tmp/castiron-custom-code-6a127281fcd6/custom-code.patchThis is the current full custom patch for mixed files, not an attribution of only the handwritten lines changed by this PR. |
Summary
Protect existing large HTTP payload behavior against future regressions; this PR does not remove or change any existing limit. Large JSON responses and SSE events are valid API payloads. Carry the guidance from openai/openai-node#2433 into the Ruby SDK: prefer incremental processing, efficient buffering, cleanup, and cancellation over arbitrary rejection limits; any new limit requires an owner-approved API contract.
Add three sequential, offline regressions using synthetic 32 MiB + 1 byte text over a local HTTP server:
output_text.The streaming helpers exercise the same HTTP/SSE reader as their raw-stream counterparts. The fixture size is a regression probe, not a new API maximum; its high memory use is intentional. No runtime limits, dependencies, generated files, custom-code budgets, or generation metadata change. WebSockets are outside this PR's scope.