Skip to content

release: 2.34.0#3136

Open
stainless-app[bot] wants to merge 32 commits intomainfrom
release-please--branches--main--changes--next
Open

release: 2.34.0#3136
stainless-app[bot] wants to merge 32 commits intomainfrom
release-please--branches--main--changes--next

Conversation

@stainless-app
Copy link
Copy Markdown
Contributor

@stainless-app stainless-app Bot commented Apr 28, 2026

Automated Release PR

2.34.0 (2026-04-30)

Full Changelog: v2.33.0...v2.34.0

Features

  • api: add support for Admin API Keys per endpoint (b8b176a)
  • api: manual updates (c1870f1)
  • api: manual updates (f6bb9c7)
  • support setting headers via env (1e89d8b)

Bug Fixes

  • allow explicit Azure auth headers (a0626ba)
  • api: correct prompt_cache_retention enum value from in-memory to in_memory (d47d9f0)
  • api: preserve python api key attribute type (62607f6)
  • api: resolve python auth type checks (42a31a7)
  • api: support admin api key auth (f029eb9)
  • avoid bearer fallback for admin auth (22e01a8)
  • preserve selected auth credentials (0d27f9d)
  • require bearer auth for stream helpers (d055539)
  • types: correct created_at and completed_at to float in Response (7da4b88)
  • types: correct timestamp types to int in Response model (e55631c)
  • use correct field name format for multipart file arrays (9ee4825)

Performance Improvements

  • client: optimize file structure copying in multipart requests (dca474e)

Chores

  • internal: more robust bootstrap script (9ec1600)
  • tests: bump steady to v0.22.1 (486dfed)

Documentation

  • api: add rate limit and vector store info to files create (4f776df)
  • api: update files rate limit documentation (b141a20)

This pull request is managed by Stainless's GitHub App.

The semver version number is based on included commit messages. Alternatively, you can manually set the version number in the title of this pull request.

For a better experience, it is recommended to use either rebase-merge or squash-merge when merging this pull request.

🔗 Stainless website
📚 Read the docs
🙋 Reach out for help or questions

@stainless-app stainless-app Bot requested a review from a team as a code owner April 28, 2026 19:02
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from a8839a7 to 23d0480 Compare April 28, 2026 21:55
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch 2 times, most recently from 600f710 to 9c2a697 Compare April 29, 2026 01:54
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch 2 times, most recently from b9296b5 to 6db0f8e Compare April 29, 2026 06:00
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 6db0f8e to 685f7e5 Compare April 29, 2026 14:10
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 685f7e5 to daf988a Compare April 29, 2026 15:29
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from daf988a to 5b2fa7a Compare April 29, 2026 15:38
@apcha-oai
Copy link
Copy Markdown
Contributor

@codex review pls

Copy link
Copy Markdown

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

Choose a reason for hiding this comment

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

💡 Codex Review

options=make_request_options(

P1 Badge Set bearer auth in sync embeddings.create

Embeddings.create() posts to /embeddings without security={"bearer_auth": True}. After this release, default request security allows admin keys, so an admin-only client will take a different auth path than the async variant (which now sets bearer auth) and can fail unexpectedly at runtime.



P1 Badge Enforce bearer auth in chat completions parse helper

This helper calls /chat/completions but omits explicit bearer security in make_request_options(). With new per-endpoint auth defaults, admin-only credentials can now be selected here, diverging from create() in the same resource and causing auth failures for users relying on parse helpers.


options=make_request_options(

P1 Badge Enforce bearer auth in responses parse helper

Responses.parse posts to /responses but does not pass security={"bearer_auth": True}. Because default security now includes admin auth, admin-only clients may send the wrong credential type from this helper, unlike other /responses methods that were updated to bearer-only.



P1 Badge Require bearer auth in async chat completions parse helper

AsyncCompletions.parse() also calls /chat/completions without security={"bearer_auth": True}. After introducing per-endpoint auth selection, this async helper can choose admin auth for admin-only clients, unlike the updated async create() methods, leading to endpoint auth mismatches.


options=make_request_options(

P1 Badge Require bearer auth in async responses parse helper

AsyncResponses.parse() posts to /responses without explicit bearer security. Since this release added admin-key auth selection by default, admin-only clients may send the wrong credential type from parse helpers while other /responses methods now force bearer auth.


options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout

P2 Badge Add bearer security to Assistants run stream helpers

Deprecated threads.runs stream helpers build requests to run endpoints without security={"bearer_auth": True} (create_and_stream/submit_tool_outputs_stream, sync and async). With new default admin-or-bearer selection, admin-only clients can now send wrong auth for these endpoints and fail unexpectedly.


options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout

P2 Badge Add bearer security to Assistants thread stream helpers

threads.create_and_run_stream (sync and async) calls /threads/runs without explicit bearer security. Since per-endpoint auth routing was added, admin-only clients can select admin auth here, while related non-stream methods in these resources now set bearer auth explicitly.


if api_key is None and azure_ad_token is None and azure_ad_token_provider is None:
raise OpenAIError(
"Missing credentials. Please pass one of `api_key`, `azure_ad_token`, `azure_ad_token_provider`, or the `AZURE_OPENAI_API_KEY` or `AZURE_OPENAI_AD_TOKEN` environment variables."
)

P2 Badge Honor _enforce_credentials in Azure client constructors

AzureOpenAI and AsyncAzureOpenAI accept _enforce_credentials, but the missing-credentials guard runs unconditionally and ignores that flag. Passing _enforce_credentials=False still raises OpenAIError, so the newly exposed option does not match its intended behavior.

ℹ️ 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".

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

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/openai/_client.py Outdated
Comment thread src/openai/_client.py Outdated
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 5b2fa7a to b5ab3e2 Compare April 30, 2026 16:55
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from b5ab3e2 to 3de0414 Compare April 30, 2026 17:33
stainless-app Bot added 2 commits April 30, 2026 18:01
Include all admin APIs in the code generation.
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 3de0414 to dd28344 Compare April 30, 2026 18:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant