Commit Graph

6384 Commits

Author SHA1 Message Date
Ahmed Ibrahim
3cc0805993 Tighten fmt guard failure message
Co-authored-by: Codex <noreply@openai.com>
2026-05-10 16:15:53 +03:00
Ahmed Ibrahim
e5060bcc09 Clarify fmt recipe guard failure
Co-authored-by: Codex <noreply@openai.com>
2026-05-10 16:12:08 +03:00
Ahmed Ibrahim
480c74c9de Guard Python SDK fmt recipe
Co-authored-by: Codex <noreply@openai.com>
2026-05-10 16:02:09 +03:00
Ahmed Ibrahim
73d09fb248 Use default cwd for fmt recipe
Co-authored-by: Codex <noreply@openai.com>
2026-05-10 15:52:14 +03:00
Ahmed Ibrahim
acd8ede25b Simplify SDK fmt recipe paths
Co-authored-by: Codex <noreply@openai.com>
2026-05-10 15:49:51 +03:00
Ahmed Ibrahim
3ae0e5df76 Update generated SDK formatting
Co-authored-by: Codex <noreply@openai.com>
2026-05-10 15:43:53 +03:00
Ahmed Ibrahim
546252ebb5 Add Python SDK Ruff formatting
Co-authored-by: Codex <noreply@openai.com>
2026-05-10 15:39:38 +03:00
Ahmed Ibrahim
5c7b278d40 Assert loaded skill input injection
Create a repo skill inside the app-server harness workspace and assert that SkillInput resolves to an injected skill block at the model request boundary.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 15:24:19 +03:00
Ahmed Ibrahim
f41f2813d1 Drop unproven skill input integration case
Remove the skill-input assertion from the app-server integration suite because the current runtime path does not expose that structured input at the model boundary or in read history.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 15:19:22 +03:00
Ahmed Ibrahim
c3e22fe134 Tighten SDK integration assertions
Assert skill inputs as persisted structured history and keep run override coverage to the model request plus token usage, matching the public SDK behavior exercised by the harness.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 15:17:20 +03:00
Ahmed Ibrahim
d77f543654 Cover SDK app-server integration gaps
Add focused integration coverage for thread listing, persisted history reads, async lifecycle wrappers, skill input injection, and run override/usage behavior through the pinned app-server test harness.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 15:14:45 +03:00
Ahmed Ibrahim
b9cd273f8d Shorten app-server integration test names
Rename the split Python SDK app-server integration files and helper module to concise group names.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 14:53:02 +03:00
Ahmed Ibrahim
280d690137 Materialize fork lifecycle integration test
Seed the fork test with a real turn so the pinned app-server has a persisted rollout before thread/fork runs.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 14:49:46 +03:00
Ahmed Ibrahim
57edbbf4eb Split pinned app-server integration tests by behavior
Break the large integration test module into focused run, input, stream, turn-control, approval-mode, and lifecycle files with shared helpers for the mock Responses boundary.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 14:47:06 +03:00
Ahmed Ibrahim
daf4694e4a Align multimodal integration assertion
Assert the prompt text is present alongside app-server image wrapper text while keeping the request image checks on the real Responses payload.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 14:31:25 +03:00
Ahmed Ibrahim
4e9b97865f Fix new SDK integration assertions
Assert the latest user multimodal payload after history replay and seed a rollout before exercising archive lifecycle helpers.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 14:29:25 +03:00
Ahmed Ibrahim
ad23385e39 Add more SDK app-server integration coverage
Add new harness coverage for multimodal inputs, active turn controls, and archive lifecycle behavior through the pinned app-server.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 14:26:40 +03:00
Ahmed Ibrahim
feffa481bd Fix app-server integration expectations
Seed approval inheritance coverage with a real persisted turn and align compaction coverage with the pinned runtime's model request path.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 14:08:19 +03:00
Ahmed Ibrahim
5d0ba5a0be Port SDK behavior tests to app-server harness
Move result extraction, stream_text, approval inheritance, model list, and compact coverage onto the pinned app-server integration harness so the remaining unit tests stay focused on generated models and transport internals.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 14:04:55 +03:00
Ahmed Ibrahim
a248323b7d Relax mock integration assertions
Assert the stable parts of the pinned app-server behavior: the user prompt appears as the final user input, approval overrides update the stored policy, and thread lifecycle coverage does not depend on thread/list indexing.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 13:40:17 +03:00
Ahmed Ibrahim
ebf625c43d Stabilize app-server integration expectations
Make the new Python SDK integration tests assert stable app-server behavior: filter run result items to agent messages, accept either ordering for concurrent mock Responses requests, and avoid lifecycle operations that require a persisted rollout before one exists.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 13:37:25 +03:00
Ahmed Ibrahim
cad4bbdd64 Add Python SDK mock app-server integration tests
Build deterministic Python SDK integration coverage around the pinned app-server runtime and a local mock Responses server. Port behavioral coverage off direct SDK monkeypatches where the real app-server boundary is more useful.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 13:32:31 +03:00
Ahmed Ibrahim
f3e16de572 Update approval mode run expectations
Co-authored-by: Codex <noreply@openai.com>
2026-05-10 13:06:56 +03:00
Ahmed Ibrahim
70053fbe42 Preserve approval settings by default
Co-authored-by: Codex <noreply@openai.com>
2026-05-10 13:05:01 +03:00
Ahmed Ibrahim
3b0b5a58e1 Reduce approval mode test mocking
Replace fake sync and async client approval tests with direct serialization checks using generated TurnStartParams, while keeping existing run-path coverage for the default behavior.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 12:45:11 +03:00
Ahmed Ibrahim
934eda61c3 Make approval mode mapping exhaustive
Use an explicit match over ApprovalMode values while keeping a separate runtime validation error for non-enum inputs.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 12:36:52 +03:00
Ahmed Ibrahim
bfd11aa1fc Focus Python SDK approval mode
Default high-level thread and turn starts to auto-review, keep deny_all as the explicit opt-out, and remove the generated AskForApproval alias customization.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 12:06:14 +03:00
Ahmed Ibrahim
800aa1d6ba Add approval mode contract tests
Cover the exact public ApprovalMode values and ensure unsupported modes fail before sync or async high-level APIs can issue client requests.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 11:58:13 +03:00
Ahmed Ibrahim
ffe6e44a03 Add high-level Python SDK approval mode
Expose approval_mode with deny_all and auto_review options on the high-level Python SDK, and map those choices to generated app-server approval params internally.

Update examples, docs, notebooks, and public API tests to use the new mode instead of raw generated approval fields.

Co-authored-by: Codex <noreply@openai.com>
2026-05-10 11:44:34 +03:00
Ahmed Ibrahim
7edbdc555c Add approval callback TODO
Co-authored-by: Codex <noreply@openai.com>
2026-05-09 13:49:35 +03:00
Ahmed Ibrahim
d80a43263f Default Python SDK approval policy to never
Co-authored-by: Codex <noreply@openai.com>
2026-05-09 12:03:09 +03:00
Ahmed Ibrahim
78c0d5ca3d Rename Python SDK package to openai-codex
Co-authored-by: Codex <noreply@openai.com>
2026-05-09 11:38:22 +03:00
Ahmed Ibrahim
9306e60848 Define Python SDK public type surface
Co-authored-by: Codex <noreply@openai.com>
2026-05-09 11:34:46 +03:00
Ahmed Ibrahim
8d7a5c27c1 Keep Python SDK type exports
Co-authored-by: Codex <noreply@openai.com>
2026-05-09 10:39:52 +03:00
Ahmed Ibrahim
692c08faf9 Narrow Python SDK root exports
Co-authored-by: Codex <noreply@openai.com>
2026-05-09 10:35:44 +03:00
Ahmed Ibrahim
8b8e868140 Document Python SDK CI job
Co-authored-by: Codex <noreply@openai.com>
2026-05-09 10:24:29 +03:00
Ahmed Ibrahim
2654cc299e Run Python SDK tests in CI
Add a separate Python SDK runner that installs the pinned musl runtime wheel in an Alpine Python container and runs the SDK pytest suite in parallel with existing SDK checks.

Co-authored-by: Codex <noreply@openai.com>
2026-05-09 10:24:17 +03:00
Ahmed Ibrahim
242ca6d8fd Document pinned schema generation helpers
Co-authored-by: Codex <noreply@openai.com>
2026-05-09 10:24:00 +03:00
Ahmed Ibrahim
b7635f4d77 Generate Python SDK types from pinned runtime
Make the SDK artifact generator fetch schema from the pinned runtime package, regenerate the checked-in Python types from that schema, and assert generated artifacts stay up to date.

Co-authored-by: Codex <noreply@openai.com>
2026-05-09 10:23:41 +03:00
Ahmed Ibrahim
c24694bdb0 Document Python runtime pinning helpers
Co-authored-by: Codex <noreply@openai.com>
2026-05-09 10:23:11 +03:00
Ahmed Ibrahim
6e10973c78 Pin Python SDK runtime dependency
Make the Python SDK declare its published runtime package dependency directly and resolve the runtime version from that pin instead of inferring it from the SDK package version.

Co-authored-by: Codex <noreply@openai.com>
2026-05-09 10:23:11 +03:00
Ahmed Ibrahim
becbd2a127 Document SDK turn routing helpers
Co-authored-by: Codex <noreply@openai.com>
2026-05-09 10:23:06 +03:00
Ahmed Ibrahim
11e31d7d38 Fix Python runtime wheel release args
Build the stage-runtime command as a single non-empty Bash array and append Linux resource binaries conditionally so macOS runners do not expand an empty optional array under set -u.

Co-authored-by: Codex <noreply@openai.com>
2026-05-09 09:24:03 +03:00
Ahmed Ibrahim
1d0023776f Build Python runtime wheels in virtualenvs
Avoid installing build into runner-managed Python environments when release jobs build runtime wheels.

Co-authored-by: Codex <noreply@openai.com>
2026-05-09 09:24:03 +03:00
Ahmed Ibrahim
9b54951688 Make Python runtime publish non-blocking
Allow the Rust release workflow to finish even if the new Python runtime PyPI publish job needs follow-up.

Co-authored-by: Codex <noreply@openai.com>
2026-05-09 09:24:02 +03:00
Ahmed Ibrahim
3a3e1b477c Pin PyPI publish action to release tag commit
Use the v1.13.0 commit for the PyPI publish action so the pinned action reference has a clear release version.

Co-authored-by: Codex <noreply@openai.com>
2026-05-09 09:24:02 +03:00
Ahmed Ibrahim
356c6797b8 Use PyPI environment for runtime publishing
Set the Python runtime publish job environment to match the PyPI trusted publisher configuration.

Co-authored-by: Codex <noreply@openai.com>
2026-05-09 09:24:02 +03:00
Ahmed Ibrahim
bd14ac4758 Bundle Linux bwrap in Python runtime wheels
Pass the release bwrap binary into Linux runtime wheel staging so PyPI installs preserve sandbox fallback behavior.

Co-authored-by: Codex <noreply@openai.com>
2026-05-09 09:24:02 +03:00
Ahmed Ibrahim
d764740e6f Explain Windows runtime wheel helper packaging
Document why the release workflow includes sandbox helper executables in Windows Python runtime wheels.

Co-authored-by: Codex <noreply@openai.com>
2026-05-09 09:24:02 +03:00
Ahmed Ibrahim
29e1c96f72 Publish Python runtime wheels on release
Build platform-specific openai-codex-cli-bin wheels from signed release binaries and publish them to PyPI using trusted publishing.

Co-authored-by: Codex <noreply@openai.com>
2026-05-09 09:24:02 +03:00