[codex] Pin Python SDK to glibc-compatible runtime#25766
Conversation
There was a problem hiding this comment.
💡 Codex Review
codex/sdk/python/src/openai_codex/api.py
Line 729 in c71f8da
The regenerated protocol now includes clientUserMessageId on TurnSteerParams, but the public steer helpers still only accept input and CodexClient.turn_steer builds a fixed payload without that field. Any client that sends follow-up user messages via turn.steer(...) therefore cannot attach the same client-side message identifier that is now supported for turn/start, so correlation/deduplication works for the first message but not for subsequent steers in the same turn.
ℹ️ 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".
| input: RunInput, | ||
| *, | ||
| approval_mode: ApprovalMode | None = None, | ||
| client_user_message_id: str | None = None, |
There was a problem hiding this comment.
Thread the message id through run helpers
Adding client_user_message_id only to Thread.turn/AsyncThread.turn leaves callers of the higher-level run() convenience methods unable to set the same ID; those wrappers still mirror every other turn option and immediately call self.turn(...) without this new argument. In code paths that rely on run() to start and collect a turn, the client-supplied user message ID is silently impossible to send, so deduplication/correlation based on that field will not work unless callers rewrite to the lower-level handle API.
Useful? React with 👍 / 👎.
| read = "read" | ||
| write = "write" | ||
| none = "none" | ||
| deny = "deny" |
There was a problem hiding this comment.
Keep aliases for renamed permission enum values
Renaming the Python enum member from none to deny breaks existing SDK callers that refer to FileSystemAccessMode.none when constructing permission payloads; this is an external integration surface covered by the repo's breaking-change review rules. If the wire value needs to change to deny, keep a deprecated Python alias such as none = "deny" (and do the same for the analogous network socket enum) so source-compatible callers can still upgrade while emitting the new value.
Useful? React with 👍 / 👎.
|
Superseded by upstream branch PR #25907. |
Summary
openai-codex-cli-bin==0.136.0in the Python SDKmanylinux_2_17wheel0.136.0Why
openai-codex==0.1.0b2pins runtime0.132.0, whose Linux wheels are taggedmusllinux. Pip therefore cannot resolve the dependency on normal glibc Linux distributions such as Ubuntu. Runtime0.136.0publishesmanylinux_2_17wheels for Linux x86_64 and aarch64.Validation
just fmtgit diff --checkUV_CACHE_DIR=/private/tmp/codex-uv-cache-public UV_DEFAULT_INDEX=https://pypi.org/simple uv lock --checkPer repository instruction, left test execution to CI after publishing the PR.