Skip to content

[pull] main from openai:main - #171

Merged
pull[bot] merged 3 commits into
Mattlk13:mainfrom
openai:main
Sep 22, 2026
Merged

pull[bot] merged 3 commits into
Mattlk13:mainfrom
openai:main

Conversation

@pull

@pull pull Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

markstuart-oai and others added 3 commits September 22, 2026 18:07
## Summary

Adds gpt-6-sol and gpt-6-luna to the known Chat Completions and
Responses model identifiers.

## Changes

- Add the two identifiers to Python model type hints.
- Continue accepting existing model identifiers and arbitrary model
strings.

Co-authored-by: markstuart-oai <323302876+markstuart-oai@users.noreply.github.com>
Automated Release PR
---


##
[3.18.0](v3.17.0...v3.18.0)
(2026-09-22)


### Features

* **api:** add GPT-6 Sol and Luna model identifiers
([#3935](#3935))
([455ce1b](455ce1b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: openai-sdks[bot] <284451331+openai-sdks[bot]@users.noreply.github.com>
- [x] I understand that this repository is auto-generated and my pull
request may not be merged

## Changes being requested

Automatic retries can reuse a consumed request body. A one-shot iterable
or non-seekable multipart file part may then send an empty body on the
retry; if that retry succeeds, the SDK reports success without resending
the original payload. Seekable streams also need their original offset
restored. The expected behavior is to retry only when every body part
can be replayed.

The retry paths currently decide whether to retry based on response
status or request failure, but do not check the replayability of
`options.content` and `options.files` or rewind seekable parts. This
patch adds one replayability guard for both synchronous and asynchronous
clients:

- bytes, bytearrays, and exact list/tuple containers remain retryable;
- opaque iterables, including wrappers that return one stored iterator,
and non-seekable streams are treated as non-replayable;
- seekable content and multipart file parts are restored to their
starting offset before retrying;
- retryable status responses, timeouts, and connection failures all use
the guard.

The patch does not buffer request bodies or change the public API.
[#3484](#3484) proposes
spooling non-seekable multipart streams to preserve retries; this PR
takes the smaller, conservative approach of not retrying a consumed
stream. The multipart checks here were added in response to review
feedback, so they are no longer out of scope.

## Additional context & links

The one-shot-content and multipart regression cases fail on the earlier
base and pass with this change. The branch has been normally merged with
current `main`, retaining the separate retry-limit and application-error
changes from [#3867](#3867).

Validation after that merge:

- `PYTHONPATH=src ./scripts/test tests/test_client.py` with the
repository's pinned Steady mock server: 275 passed, 2 skipped in each
Pydantic lane;
- `PYTHONPATH=src ./scripts/lint`: Ruff, Pyright, mypy, and import
checks passed using the documented Node.js and pnpm versions;
- `git diff --check`: passed.

---------

Co-authored-by: Marcus Wood <marcuswood@openai.com>
@pull pull Bot locked and limited conversation to collaborators Sep 22, 2026
@pull pull Bot added the ⤵️ pull label Sep 22, 2026
@pull
pull Bot merged commit 6e0c2be into Mattlk13:main Sep 22, 2026
2 of 4 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants