Skip to content

release: 0.81.0 - #434

Open
openai-sdks[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main--components--openai
Open

release: 0.81.0#434
openai-sdks[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main--components--openai

Conversation

@openai-sdks

@openai-sdks openai-sdks Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Automated Release PR

0.81.0 (2026-08-21)

Features

  • Add client.with_options support (#438) (72b0927)
  • add Realtime transcription over WebSockets (#445) (e9f45c4)
  • add Realtime WebSocket core (#443) (aba0f05)
  • api: add file and vector store polling helpers (#421) (2cad0f7)
  • api: Add obfuscation field to ChatCompletionChunk (#484) (5065a37)
  • update streaming models and regional endpoint selection (#442) (f2e94ab)

Bug Fixes

  • align nullable collection matchers (#497) (ee922b3), closes #376
  • attach partial completion to streaming length errors (#432) (2dd3eab)
  • ci: require fail-closed CodeQL checks for Ruby and GitHub Actions (#480) (8d716b6)
  • ci: update Bedrock lockfile during releases (#509) (ccabba8)
  • fix Page#next_page to raise when unavailable (#487) (4d7bb33)
  • ignore response stream keepalive events (#422) (0182edd), closes #287
  • improve API status error diagnostics (#472) (eab2b2a)
  • isolate union coercion state (#446) (5a7752a)
  • keep authenticated requests on the configured origin (#470) (3978736)
  • keep CodeQL action updates atomic (#473) (1dc83e5)
  • normalize filenames inferred from file handles (#468) (d8cba3f)
  • omit URL fragments from diagnostic logs (#466) (7bfb7c4)
  • preserve derived pagination cursors (#489) (e6346e3)
  • preserve generic request authentication precedence (#476) (14695dc)
  • preserve nullable nil values (#450) (79cc156)
  • preserve request boundaries across redirects (#471) (48be3b5)
  • redact credentials from client inspect (#488) (b78194a)
  • remove runtime base64 dependency (#454) (d4415dd)
  • require authority when validating request origins (#483) (35acd86)
  • retain collection conversion errors (#495) (851f534)
  • streaming: keep indexed snapshots compact (#490) (0491bb7)
  • Validate multipart file content types (#467) (313f3a3)

Chores

  • api: Clarify image background and realtime audio-delta docs (#499) (d873fcf)
  • api: enforce signature formatting and canonicalize generated Ruby (#451) (38440f2)
  • api: refresh image model docs and generated lint policy (#486) (589d384)
  • api: refresh SDK generation metadata (#512) (3ddbc77)
  • ci: upgrade actions/checkout to v7.0.1 (#475) (4fecd5b)
  • deps-dev: bump sorbet-runtime from 0.6.13421 to 0.6.13425 (#493) (a099412)
  • deps-dev: bump syntax_tree-rbs from f94bc30 to 2478329 (#462) (3a95231)
  • deps-dev: safely update development dependencies (#478) (69d62eb)
  • deps-dev: upgrade Steep with compatible RBS diagnostics (#474) (85686e9)
  • deps: bump actions/github-script from 7.1.0 to 9.0.0 (#485) (f55d45d)
  • deps: bump rubygems/release-gem from 1.2.0 to 1.4.1 (#460) (9faee6a)
  • deps: configure Ruby and GitHub Actions Dependabot (#439) (4f57b71)
  • enforce outer local variable shadowing (#433) (d644765)
  • enforce redundant enable directives (#436) (aeb8cde)
  • enforce top-level return arguments (#435) (8a022a6)
  • isolate documentation dependencies (#482) (3130e59)
  • remove Tapioca development dependency (#452) (0965227)
  • restore generated webhook signature comments (#502) (a64c3bd)
  • set a 4,000-line custom-code budget (#510) (0706a29)
  • synchronize generated response signatures and tests (#444) (4effc6a)

Documentation

  • add Realtime voice turn example (#449) (b18e4c7)
  • add recurring repository improvement skill (#491) (8977731)
  • security: standardize Ruby vulnerability reporting (#440) (2c16022)
  • strengthen Ruby SDK security guidance (#437) (68b5c92)

Refactors

  • isolate Chat Completions structured-output parsing (#501) (e0e6e42)
  • isolate file polling status loops (#496) (7ab65d8)
  • isolate Responses structured-output parsing (#498) (2c4abe5)

This PR was generated with Release Please. See documentation.

@openai-sdks
openai-sdks Bot requested a review from a team as a code owner August 17, 2026 19:34
@openai-sdks

openai-sdks Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor Author

OkTest Summary

237/237 SDK tests passed in 10.07s for Ruby SDK PR #434.

Test results — 42 files
Test Result Time
tests/chat-completions-complex-body.test.ts ✅ Passed 177ms
tests/chat-completions-create.test.ts ✅ Passed 238ms
tests/chat-completions-stream.test.ts ✅ Passed 150ms
tests/files-content-binary.test.ts ✅ Passed 140ms
tests/files-create-multipart.test.ts ✅ Passed 147ms
tests/files-list-pagination.test.ts ✅ Passed 157ms
tests/initialize-config.test.ts ✅ Passed 161ms
tests/instance-isolation.test.ts ✅ Passed 275ms
tests/models-list.test.ts ✅ Passed 244ms
tests/responses-background-lifecycle.test.ts ✅ Passed 255ms
tests/responses-body-method-errors.test.ts ✅ Passed 456ms
tests/responses-cancel-timeout.test.ts ✅ Passed 235ms
tests/responses-cancel.test.ts ✅ Passed 256ms
tests/responses-compact-retries.test.ts ✅ Passed 254ms
tests/responses-compact.test.ts ✅ Passed 237ms
tests/responses-create-advanced-stream.test.ts ✅ Passed 172ms
tests/responses-create-advanced.test.ts ✅ Passed 200ms
tests/responses-create-disconnect.test.ts ✅ Passed 1.046s
tests/responses-create-errors.test.ts ✅ Passed 274ms
tests/responses-create-malformed-api-responses.test.ts ✅ Passed 125ms
tests/responses-create-retries.test.ts ✅ Passed 354ms
tests/responses-create-stream-failures.test.ts ✅ Passed 148ms
tests/responses-create-stream-timeout.test.ts ✅ Passed 228ms
tests/responses-create-stream-wire.test.ts ✅ Passed 2.432s
tests/responses-create-stream.test.ts ✅ Passed 80ms
tests/responses-create-terminal-states.test.ts ✅ Passed 299ms
tests/responses-create-timeout.test.ts ✅ Passed 215ms
tests/responses-create.test.ts ✅ Passed 279ms
tests/responses-delete.test.ts ✅ Passed 261ms
tests/responses-input-items-errors.test.ts ✅ Passed 186ms
tests/responses-input-items-list.test.ts ✅ Passed 196ms
tests/responses-input-items-options.test.ts ✅ Passed 223ms
tests/responses-input-tokens-count-timeout.test.ts ✅ Passed 257ms
tests/responses-input-tokens-count.test.ts ✅ Passed 230ms
tests/responses-malformed-inputs.test.ts ✅ Passed 2.199s
tests/responses-not-found-errors.test.ts ✅ Passed 305ms
tests/responses-parse.test.ts ✅ Passed 198ms
tests/responses-retrieve-retries.test.ts ✅ Passed 349ms
tests/responses-retrieve.test.ts ✅ Passed 247ms
tests/responses-stored-method-errors.test.ts ✅ Passed 747ms
tests/retry-behavior.test.ts ✅ Passed 3.207s
tests/sdk-error-shape.test.ts ✅ Passed 384ms

View OkTest run #32521494841

SDK merge (fc32489e0b92) · head (cfa3a689d81b) · base (0491bb7ae7dd) · OkTest (2b1bdfd25e98)

@jbeckwith-oai jbeckwith-oai added the generator Touches generated SDK files label Aug 17, 2026
@openai-sdks
openai-sdks Bot force-pushed the release-please--branches--main--components--openai branch 4 times, most recently from 74941bf to 5aa1627 Compare August 17, 2026 21:38
@openai-sdks openai-sdks Bot changed the title release: 0.80.1 release: 0.81.0 Aug 17, 2026
@openai-sdks
openai-sdks Bot force-pushed the release-please--branches--main--components--openai branch 21 times, most recently from 0899be3 to 2b91315 Compare August 19, 2026 18:39
@github-actions

github-actions Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Castiron custom code

✅ No new custom-code files detected.

48 mixed files remain; 0 existing customizations changed.

Compared 0491bb7ae7ddcfa3a689d81b. Generated baselines verified.

48 existing customizations unchanged
  • lib/openai.rb
  • lib/openai/client.rb
  • lib/openai/models/chat/chat_completion_message.rb
  • lib/openai/models/chat/chat_completion_message_function_tool_call.rb
  • lib/openai/models/chat/completion_create_params.rb
  • lib/openai/models/response_format_json_schema.rb
  • lib/openai/models/responses/function_tool.rb
  • lib/openai/models/responses/response.rb
  • lib/openai/models/responses/response_create_params.rb
  • lib/openai/models/responses/response_format_text_config.rb
  • lib/openai/models/responses/response_format_text_json_schema_config.rb
  • lib/openai/models/responses/response_function_tool_call.rb
  • lib/openai/models/responses/response_function_web_search.rb
  • lib/openai/models/responses/response_output_text.rb
  • lib/openai/models/responses/tool.rb
  • lib/openai/resources/beta/responses.rb
  • lib/openai/resources/beta/threads.rb
  • lib/openai/resources/chat/completions.rb
  • lib/openai/resources/files.rb
  • lib/openai/resources/responses.rb
  • lib/openai/resources/vector_stores/file_batches.rb
  • lib/openai/resources/vector_stores/files.rb
  • lib/openai/resources/webhooks.rb
  • rbi/openai/client.rbi
  • rbi/openai/models/chat/chat_completion_message.rbi
  • rbi/openai/models/chat/chat_completion_message_function_tool_call.rbi
  • rbi/openai/models/chat/completion_create_params.rbi
  • rbi/openai/models/response_format_json_schema.rbi
  • rbi/openai/models/responses/response.rbi
  • rbi/openai/models/responses/response_create_params.rbi
  • rbi/openai/models/responses/response_function_tool_call.rbi
  • rbi/openai/models/responses/response_function_web_search.rbi
  • rbi/openai/models/responses/response_output_text.rbi
  • rbi/openai/resources/chat/completions.rbi
  • rbi/openai/resources/files.rbi
  • rbi/openai/resources/responses.rbi
  • rbi/openai/resources/vector_stores/file_batches.rbi
  • rbi/openai/resources/vector_stores/files.rbi
  • scripts/castiron/README.md
  • scripts/castiron/custom_code_report.py

8 more in the full report.

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 32521553282 --repo openai/openai-ruby \
  --name castiron-custom-code-32521553282-1 --dir /tmp/castiron-custom-code-32521553282-1
git apply --stat /tmp/castiron-custom-code-32521553282-1/custom-code.patch
cat /tmp/castiron-custom-code-32521553282-1/custom-code.patch

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

git fetch --no-tags origin 0491bb7ae7dd465c48aa1b84496b2e6d7e3597ea cfa3a689d81bc2c142fe2fa8d18f9cb871460ff6
python3 scripts/castiron/custom_code_report.py report \
  --base 0491bb7ae7dd465c48aa1b84496b2e6d7e3597ea \
  --head cfa3a689d81bc2c142fe2fa8d18f9cb871460ff6 --fetch --require-head-hash --public \
  --out /tmp/castiron-custom-code-cfa3a689d81b
cat /tmp/castiron-custom-code-cfa3a689d81b/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

@openai-sdks
openai-sdks Bot force-pushed the release-please--branches--main--components--openai branch 8 times, most recently from 54ce6c3 to f4372ee Compare August 20, 2026 20:45
@chatgpt-codex-connector

Copy link
Copy Markdown

💡 Codex Review

openai (0.81.0)

P2 Badge Update the Bedrock lockfile with the release version

This updates only the primary lockfile, while gemfiles/bedrock.gemfile.lock still locks the local openai path gem at 0.80.0. After OpenAI::VERSION becomes 0.81.0, Bedrock commands using BUNDLE_GEMFILE=gemfiles/bedrock.gemfile must re-resolve and rewrite the checked-in lockfile, and fail outright when Bundler frozen/deployment mode is enabled because the path gemspec changed. Update the Bedrock lockfile to 0.81.0 as part of this release bump.

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@openai-sdks
openai-sdks Bot force-pushed the release-please--branches--main--components--openai branch from f4372ee to ab9eade Compare August 20, 2026 20:49
@chatgpt-codex-connector

Copy link
Copy Markdown

💡 Codex Review

openai (0.81.0)

P1 Badge Update the Bedrock lockfile for the release version

The release updates only the primary lockfile, leaving gemfiles/bedrock.gemfile.lock with the path gem recorded as openai (0.80.0) while the gemspec now resolves to 0.81.0. The test-bedrock job in .github/workflows/ci-checks.yml selects that lockfile via BUNDLE_GEMFILE; a frozen install now aborts with “The gemspecs for path gems changed, but the lockfile can't be updated,” so the tracked Bedrock bundle is no longer reproducible and can fail CI until its lockfile is regenerated.

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@openai-sdks
openai-sdks Bot force-pushed the release-please--branches--main--components--openai branch from ab9eade to e1c76f3 Compare August 20, 2026 22:33

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e1c76f3832

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread lib/openai/version.rb
Comment thread README.md Outdated
Comment on lines +76 to +78
See the [Realtime WebSocket guide](realtime.md) and the runnable
[text, transcription, and voice examples](examples/realtime/README.md) for
lifecycle, authentication, proxy, TLS, and custom transport details.
[text and transcription examples](examples/realtime/README.md) for lifecycle,
authentication, proxy, TLS, and custom transport details.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve the newly added Realtime voice documentation

This release still packages examples/realtime/websocket_voice_turn.rb, documents it in realtime.md, and announces it in the 0.81.0 changelog, but these lines revert the immediately preceding voice-example commit and tell README users that only text and transcription examples exist. Keep the voice example in this list (and the corresponding capability sentence above) so the release documentation accurately exposes the feature being shipped.

Useful? React with 👍 / 👎.

@openai-sdks
openai-sdks Bot force-pushed the release-please--branches--main--components--openai branch 8 times, most recently from ad5fcf4 to 92689d9 Compare August 21, 2026 13:31
@openai-sdks
openai-sdks Bot force-pushed the release-please--branches--main--components--openai branch 5 times, most recently from 5cb7d1e to e49eb11 Compare August 21, 2026 17:04
@openai-sdks
openai-sdks Bot force-pushed the release-please--branches--main--components--openai branch from e49eb11 to cfa3a68 Compare August 21, 2026 20:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autorelease: pending generator Touches generated SDK files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Track model conversion correctness after #295 rollback Unknown Stream Events Classified as a ResponseErrorEvent

1 participant