Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
726 commits
Select commit Hold shift + click to select a range
5cf01c1
fix(extensions): handle concurrent async SQLite startup (#4987)
00200200 Sep 13, 2026
b65f8ea
fix(extensions): include shell and apply_patch calls in AdvancedSQLit…
rioyu123 Sep 13, 2026
fad45fa
fix(extensions): reap subprocesses on early stream close in experimen…
Hughhhhcoder Sep 13, 2026
6b0d874
fix(sandbox): keep command paths POSIX on a Windows host (#4958)
hyeonsang010716 Sep 13, 2026
c8c0763
fix(ci): deploy docs after dependency and workflow updates (#4976)
dependabot[bot] Sep 13, 2026
5a5cde8
fix(extensions): preserve exact IDs in AdvancedSQLiteSession.delete_b…
jiangLLM Sep 14, 2026
fbf59a4
fix(sessions): do not forward session limit as Conversations page siz…
tiagovilasboas Sep 14, 2026
3736cdd
fix(deps): update python-multipart requirement from >=0.0.31 to >=0.0…
dependabot[bot] Sep 16, 2026
9dbaa0e
fix(deps): update python-dotenv requirement from >=1.2.2 to >=1.2.3 i…
dependabot[bot] Sep 16, 2026
f4d0c7b
fix(deps): update starlette requirement from >=1.3.1 to >=1.6.0 in /e…
dependabot[bot] Sep 16, 2026
5ea7c44
fix(deps): update python-dotenv requirement from >=1.2.2 to >=1.2.3 i…
dependabot[bot] Sep 16, 2026
10f7e60
fix(deps-dev): bump pymdown-extensions from 11.0.1 to 11.0.2 (#5036)
dependabot[bot] Sep 16, 2026
bcda491
fix(deps): bump runloop-api-client from 1.16.0 to 1.31.0 (#5037)
dependabot[bot] Sep 16, 2026
40a9888
fix(deps): bump starlette from 1.3.1 to 1.6.0 (#5038)
dependabot[bot] Sep 16, 2026
5f9899d
fix(deps): update starlette requirement from >=1.3.1 to >=1.6.0 in /e…
dependabot[bot] Sep 16, 2026
f03103a
Add SDKs team as repository code owner (#5058)
jbeckwith-oai Sep 16, 2026
d59fdb8
fix(tracing): do not cache a missing OPENAI_API_KEY (#5017)
hyeonsang010716 Sep 16, 2026
9f6f6b1
docs: clarify Unix-local execution boundaries (#5064)
seratch Sep 17, 2026
58a6d2c
docs: update translated pages (#5065)
seratch Sep 17, 2026
1d17ca4
fix(core): align conditional approvals with validated tool arguments …
seratch Sep 17, 2026
e34311b
docs(examples): drop the duplicated word in the Temporal trace name (…
simpleqt Sep 17, 2026
fdf21db
release: 0.22.3 (#5077)
seratch Sep 17, 2026
0910b46
fix(deps): bump anyio from 4.10.0 to 4.14.2 (#5091)
dependabot[bot] Sep 20, 2026
57f0b38
fix(core): serialize only traced fields in ModelSettings.to_traceable…
kaluli123123 Sep 20, 2026
b365b57
docs: fix session guide subject-verb agreement (#5019)
00200200 Sep 20, 2026
51bcea7
fix(core): preserve structured guardrail diagnostics and agent output…
rksharma-owg Sep 20, 2026
06298d5
fix(tracing): retry rate-limited trace exports (Fixes #5023) (#5052)
jaideeppyne Sep 20, 2026
987b083
docs: add Laminar to external tracing processors list (#5044)
olzhik11 Sep 20, 2026
d5abd9f
fix(extensions): close owned event streams when runs fail (#5060)
WenJing95 Sep 20, 2026
65a9921
fix(tests): restore any_llm_model in sys.modules after stubbed import…
Jinzhengxu Sep 20, 2026
165390c
fix(extensions): keep the current branch when a forced delete_branch …
L4XB Sep 20, 2026
9415f7e
fix(sandbox): preserve multiline skill frontmatter descriptions (#5098)
seratch Sep 20, 2026
a4fe85c
fix(sandbox): reject host sources in dictionary sandbox manifests (#5…
seratch Sep 20, 2026
91f5cfd
fix(sandbox): validate host grants against normalized workspace roots…
seratch Sep 20, 2026
5a80698
fix(realtime): bound incoming WebSocket message size by default (#5102)
seratch Sep 20, 2026
442469e
fix(extensions): validate MongoDB session identifiers (#5104)
seratch Sep 20, 2026
32c61e7
docs: demonstrate server-owned tool approval state (#5105)
seratch Sep 20, 2026
ca55abc
docs: clarify handoff history privacy boundaries (#5101)
seratch Sep 20, 2026
b1213bf
docs: demonstrate fail-closed trace redaction (#5109)
seratch Sep 20, 2026
4adad5e
fix(examples): restrict the Realtime demo to local bounded sessions (…
seratch Sep 20, 2026
2f66876
docs: fix spelling in spending glossary (#5020)
00200200 Sep 20, 2026
f23da76
fix(core): bound agent tool streaming callback backlogs (#5106)
seratch Sep 20, 2026
079b844
fix(voice): raise the builtin TimeoutError from _wait_for_event on 3.…
kosesena Sep 20, 2026
758d12b
docs: require interactive approval for host shell commands (#5107)
seratch Sep 20, 2026
91f69fd
docs: authenticate Twilio streams and clean up sessions (#5110)
seratch Sep 20, 2026
de0aa85
fix(tracing): omit reasoning from default trace exports (#5108)
seratch Sep 20, 2026
7fce7f6
fix(voice): stop forcing the STT session logging header (#5114)
seratch Sep 20, 2026
40956e0
fix(core): redact default tool failure details (#5112)
seratch Sep 20, 2026
f3a15f6
fix(core): preserve guarded final outputs in agent tools (#5115)
seratch Sep 20, 2026
c641e39
fix(sandbox): reject privileged storage with read-only host grants (#…
seratch Sep 20, 2026
c329e92
fix(core): redact streaming task exception tracebacks (#5121)
seratch Sep 21, 2026
a2fdb94
feat(sessions): add an opt-in encrypted history scan budget (#5118)
seratch Sep 21, 2026
27625dd
fix(extensions): preserve filtered history during automatic compactio…
seratch Sep 21, 2026
46cc8d8
fix(core): isolate nested agent tool state across fresh runs (#5123)
seratch Sep 21, 2026
fae72a4
fix(core): validate agent tool stream callbacks before execution (#5125)
seratch Sep 21, 2026
082daee
docs: secure local Dapr database provisioning (#5122)
seratch Sep 21, 2026
76547e5
fix(voice): honor pipeline tracing opt-out inside caller traces (#5120)
seratch Sep 21, 2026
45e6f6c
docs: clarify encrypted session key guidance (#5126)
seratch Sep 21, 2026
518b1f2
fix(realtime): enforce Realtime tool output guardrails (#5127)
seratch Sep 21, 2026
b3a1601
perf(core): avoid list shifts in function-tool scheduling (#5130)
seratch Sep 21, 2026
f010d18
fix(core): preserve closed parent constraints in singleton allOf (#5131)
seratch Sep 21, 2026
88b722d
fix(core/extensions): respect sensitive trace capture for model metad…
seratch Sep 21, 2026
bd91ae6
fix(mcp): bind resumed MCP calls to their original recipients (#5119)
seratch Sep 21, 2026
a58d03c
fix(realtime): redact exception details from Realtime tool error even…
seratch Sep 21, 2026
9a21ab1
feat(mcp): add configurable MCP listing page limits (#5133)
seratch Sep 21, 2026
7120585
docs(realtime): make Twilio SIP transcript logging opt-in (#5134)
seratch Sep 21, 2026
daa1bcb
feat(sandbox): allow configuring memory consolidation turns (#5135)
seratch Sep 21, 2026
f2ae64c
fix(core): preserve tool identity during asynchronous enablement (#5136)
seratch Sep 21, 2026
a264757
fix(sessions): add an optional compaction rollback item budget (#5137)
seratch Sep 21, 2026
78e5b4d
fix(extensions): honor run tracing policy in Codex command spans (#5138)
seratch Sep 21, 2026
90defea
docs: cap financial research at 15 planned searches (#5140)
seratch Sep 21, 2026
9316424
fix(sandbox): limit Darwin host PATH read grants to the child environ…
seratch Sep 21, 2026
5237420
fix(core): resolve tools after agent start hooks (#5124)
seratch Sep 21, 2026
ad93f54
fix(core): restore nested agent tool state against the tool's own age…
tao-hpu Sep 21, 2026
153b3f1
fix(deps): update httpx2 requirement from >=2.12.0 to >=2.13.0 in /ex…
dependabot[bot] Sep 22, 2026
59d860f
fix(deps): update twilio requirement from <10,>=9 to >=9.11.1,<10 in …
dependabot[bot] Sep 22, 2026
04e699f
fix(deps): update uvicorn requirement from >=0.52.4 to >=0.53.0 in /e…
dependabot[bot] Sep 22, 2026
47c21ee
fix(deps-dev): bump coverage from 7.10.3 to 7.16.1 (#5152)
dependabot[bot] Sep 22, 2026
34952bc
fix(deps): bump cbor2 from 5.9.0 to 6.1.4 (#5153)
dependabot[bot] Sep 22, 2026
e94309d
fix(deps-dev): bump dapr from 1.16.0 to 1.18.3 (#5154)
dependabot[bot] Sep 22, 2026
971c5f3
fix(deps-dev): bump pymongo from 4.16.0 to 4.18.1 (#5155)
dependabot[bot] Sep 22, 2026
5ed5727
fix(deps): update pyjwt requirement from >=2.13.0 to >=2.14.0 in /exa…
dependabot[bot] Sep 22, 2026
a62e594
fix(deps): update httpx2 requirement from >=2.12.0 to >=2.13.0 in /ex…
dependabot[bot] Sep 22, 2026
32edd3c
fix(deps): bump runloop-api-client from 1.31.0 to 1.32.0 (#5156)
dependabot[bot] Sep 22, 2026
cc14936
docs: clarify collaborator-only pull request policy (#5158)
jbeckwith-oai Sep 23, 2026
d303ce8
fix(sandbox): check sandbox apply_patch approval scope (#5146)
viyatb-oai Sep 23, 2026
592fa94
docs: remove beta tag from sandbox agents docs (#5161)
seratch Sep 24, 2026
0438b09
docs: add Noveum and define tracing integration listing criteria (#5164)
jbeckwith-oai Sep 24, 2026
719c4e7
fix: avoid awaiting cleanup during coroutine closure (#5163)
jbeckwith-oai Sep 24, 2026
aaa0148
docs: update the top page to align with developers.openai.com site (#…
seratch Sep 24, 2026
6861f24
docs: update translated pages (#5166)
seratch Sep 24, 2026
711df53
docs: update top page content (#5168)
seratch Sep 25, 2026
74636ac
docs: add GPT Live Responses delegation example (#5167)
seratch Sep 25, 2026
f9108bd
fix(realtime): end event iteration when session close starts (#5172)
jbeckwith-oai Sep 25, 2026
a9b1ce7
fix(core): reject silently discarded kwargs tool arguments (#5174)
jbeckwith-oai Sep 25, 2026
5a2d63f
fix(core): validate tool_use_behavior callback results (#5173)
jbeckwith-oai Sep 25, 2026
667c615
docs: clarify opt-in approval for local shell and patch tools (#5175)
jbeckwith-oai Sep 25, 2026
60ed116
fix(voice): finish transcription iterators when sessions close during…
rioyu123 Sep 25, 2026
29aa40b
fix(mcp): keep the Streamable HTTP session usable after a 5xx (#5061)
hyeonsang010716 Sep 25, 2026
581863a
fix(sessions): match literal Unicode content in AdvancedSQLiteSession…
WenJing95 Sep 25, 2026
0b6fcd8
fix(sessions): close SQLiteSession connections owned by exited worker…
Luccacvb Sep 25, 2026
a34b396
fix(realtime): reset per-connection state on close (#5069)
kosesena Sep 25, 2026
265f16f
fix(core): retry pre-request WebSocket handshake failures (#4780)
CoralGarden52 Sep 25, 2026
525cd20
fix(sessions): reset compaction response chain on clear_session (#5000)
yongpange Sep 25, 2026
74461d0
fix(tracing): keep the export batch when an item has values that aren…
Om-singhaI Sep 25, 2026
c4c04b6
fix(mcp): stop swallowing worker task cancellation (#5055)
hktitof Sep 25, 2026
0f87da2
fix(memory): preserve encrypted SQLite history on wrong-key pops (#5083)
1aifanatic Sep 25, 2026
de25d82
fix(core): scope function tool approvals to their owning agent (#5144)
seratch Sep 25, 2026
ae5803f
feat(sandbox): add opt-in Docker removal protection (#5116)
seratch Sep 25, 2026
eb68131
fix(core): select built-in shell and apply_patch tools by their own t…
subhashpolisetti Sep 25, 2026
848ba47
fix(sandbox): reject special files in shared UnixLocal file I/O (#5177)
jbeckwith-oai Sep 25, 2026
465860b
fix(sandbox): add opt-in bounded workspace outbox reads (#5128)
seratch Sep 25, 2026
8e338e5
fix(extensions): keep SQLite usage capture off the event loop (#4981)
Shy7777 Sep 25, 2026
588826c
fix(sessions): reject blank SQLite branch names (#5179)
jbeckwith-oai Sep 25, 2026
5e7afe4
fix(mcp): preserve cache invalidation during refresh (#4807)
fengting124 Sep 27, 2026
49660c5
fix(realtime): name the agent whose turn ended in agent_end (#5073)
kosesena Sep 27, 2026
2b0361d
fix(responses): preserve terminal errors through stream cleanup (#5187)
jbeckwith-oai Sep 27, 2026
549fcee
fix(extensions): preserve subprocess errors for non-UTF8 stderr (#5186)
jbeckwith-oai Sep 27, 2026
c467732
fix(sandbox): keep UnixLocal workspace-root removal off the event loo…
ranjan-del Sep 27, 2026
61e98ab
fix(sandbox): preserve nested paths in workspace snapshots (#5189)
jbeckwith-oai Sep 27, 2026
99f8d77
fix(sandbox): preserve UnixLocal hardlink snapshots and validate befo…
jbeckwith-oai Sep 27, 2026
cd437f0
fix(sessions): recover fresh streamed handoffs after session append f…
mittalpk Sep 27, 2026
b7d22bd
docs: clarify SQLite session storage trust (#5192)
jbeckwith-oai Sep 27, 2026
86a13db
fix(realtime): preserve heard audio during later responses (#5193)
jbeckwith-oai Sep 27, 2026
5cdcf84
fix(sessions): strip output-only metadata from compaction replay (#5196)
jbeckwith-oai Sep 27, 2026
160ed62
fix: preserve SDK error metadata after late tool timeouts (#5194)
jbeckwith-oai Sep 27, 2026
c42f3c6
fix(voice): finish streamed transcription on end of input (#5195)
jbeckwith-oai Sep 27, 2026
802cc03
fix(sessions): recover handoffs after cancelled compaction (#5197)
jbeckwith-oai Sep 27, 2026
96807cd
docs(examples): scope MongoDB startup to local development (#5201)
jbeckwith-oai Sep 27, 2026
b3d5c1d
fix(redis): validate session keys before clearing (#5202)
jbeckwith-oai Sep 27, 2026
e7d7097
fix(examples): keep realtime debug error summaries payload-free (#5200)
jbeckwith-oai Sep 27, 2026
4658a0e
fix(tracing): preserve exporter overrides during shutdown (#5199)
jbeckwith-oai Sep 27, 2026
5813d84
fix(voice): preserve legacy positional config arguments (#5198)
jbeckwith-oai Sep 27, 2026
c2321d2
fix(examples): keep Redis connection details out of diagnostics (#5205)
jbeckwith-oai Sep 27, 2026
8575b93
fix: summarize verbose connector output (#5203)
jbeckwith-oai Sep 27, 2026
bb7cd2e
fix(memory): require encrypted envelopes for session history (#5204)
jbeckwith-oai Sep 27, 2026
2f8c9ac
fix(sandbox): enforce grants during recursive removal (#5206)
jbeckwith-oai Sep 27, 2026
1335f4e
perf: bound trace collection normalization work (#5207)
jbeckwith-oai Sep 27, 2026
6492137
fix(sandbox): make Docker persist_workspace archives restorable by hy…
coderdailyone Sep 28, 2026
ec8e836
fix(sandbox): scope exclusive Add File creation to UnixLocal (#4893)
ayaangazali Sep 28, 2026
220e307
fix: reject premature Chat Completions stream EOF (#5211)
jbeckwith-oai Sep 28, 2026
ee9a12a
fix: preserve function tool Annotated constraints (#5212)
jbeckwith-oai Sep 28, 2026
92a2c60
fix: refresh encrypted session visibility before compaction (#5209)
jbeckwith-oai Sep 28, 2026
00e2aa4
fix(sandbox): preserve symlink targets during snapshot restore (#5208)
jbeckwith-oai Sep 28, 2026
08e5c43
fix(sandbox): normalize UnixLocal snapshot special files and symlinks…
coderdailyone Sep 28, 2026
71306bf
fix: keep the file when apply_patch does a case-only rename (#4890)
wolfgang-aura Sep 28, 2026
f162205
fix(sandbox): bootstrap Docker workspace before removal binding (#5210)
jbeckwith-oai Sep 28, 2026
3e5eac0
docs: clarify retry-delay security threat model (#5215)
jbeckwith-oai Sep 28, 2026
fc4d832
fix(mcp): escape duplicate tool names in diagnostics (#5217)
jbeckwith-oai Sep 28, 2026
de3b1d7
fix: discard previous stream event aliases on model timeout (#5216)
jbeckwith-oai Sep 28, 2026
5b50815
fix(examples): prevent auto-running the local Temporal shell workflow…
jbeckwith-oai Sep 28, 2026
0da7889
fix: reject ambiguous canonical Docker removal paths (#5221)
jbeckwith-oai Sep 28, 2026
e80737c
fix: escape terminal controls in result diagnostics (#5219)
jbeckwith-oai Sep 28, 2026
2747c1c
fix(ci): validate release source before building distributions (#5220)
jbeckwith-oai Sep 28, 2026
9c5a5e8
docs: clarify descriptions for variadic tool parameters (#5223)
jbeckwith-oai Sep 28, 2026
0d6b741
fix: preserve streamed cancellation and pending guardrail cleanup (#5…
jbeckwith-oai Sep 28, 2026
770721b
ci: configure release-please with GitHub Actions authentication (#5222)
jbeckwith-oai Sep 28, 2026
360d726
fix(sessions): accept namespaced compaction model names (#5225)
jbeckwith-oai Sep 28, 2026
8e43500
ci: open release PRs ready for review (#5227)
jbeckwith-oai Sep 28, 2026
7b27134
ci: automate release candidate preparation and review (#5230)
jbeckwith-oai Sep 29, 2026
1ac6d82
fix: normalize nullable Chat Completions token counts (#5238)
jbeckwith-oai Sep 29, 2026
872e2d6
fix: preserve completed tool results when resuming approvals (#5240)
jbeckwith-oai Sep 29, 2026
6b5bad7
fix(deps): bump temporalio from 1.26.0 to 1.33.0 (#5233)
dependabot[bot] Sep 29, 2026
e6c6806
fix(deps-dev): bump cryptography from 50.0.0 to 50.0.1 (#5234)
dependabot[bot] Sep 29, 2026
3590e5d
build(ci): run release assessments without expanding App permissions …
jbeckwith-oai Sep 30, 2026
6862bdf
chore(deps): raise dependency minimums in Dependabot updates (#5243)
jbeckwith-oai Sep 30, 2026
5541111
fix(deps): update openai requirement from <4,>=3.8.0 to >=3.17.0,<4 i…
dependabot[bot] Sep 30, 2026
c513dd1
fix(deps): update urllib3 requirement from >=2.7.0 to >=2.8.0 in /exa…
dependabot[bot] Sep 30, 2026
bd3be80
build(ci): pace release assessments within thirty minutes (#5253)
jbeckwith-oai Sep 30, 2026
acdbf28
build(ci): always refresh release pull requests (#5258)
jbeckwith-oai Sep 30, 2026
9706013
fix: migrate Vercel sandboxes to the owned provider client (#5255)
jbeckwith-oai Sep 30, 2026
e23c6ff
build(ci): reserve time for release assessment timeout cleanup (#5259)
jbeckwith-oai Sep 30, 2026
52aa07c
fix(deps): bump astral-sh/setup-uv from 9.0.0 to 10.2.0 (#5252)
dependabot[bot] Sep 30, 2026
e6467e2
fix(deps): bump actions/create-github-app-token from 2.2.2 to 3.2.0 (…
dependabot[bot] Sep 30, 2026
aa3b4fd
build(ci): isolate unrelated release candidate events (#5261)
jbeckwith-oai Sep 30, 2026
f76153c
fix(ci): update and group CodeQL actions together (#5262)
jbeckwith-oai Sep 30, 2026
1c5c275
fix: normalize nullable token counts in remaining provider paths (#5260)
jbeckwith-oai Sep 30, 2026
6b2d1c4
build(ci): run required checks for merge queue (#5263)
jbeckwith-oai Sep 30, 2026
f2df6e4
fix(deps-dev): bump textual from 8.2.3 to 8.2.8 (#5248)
dependabot[bot] Sep 30, 2026
582d048
fix(deps-dev): bump types-pynput from 1.8.1.20250809 to 1.8.1.2026071…
dependabot[bot] Sep 30, 2026
093e183
fix(deps): update openai requirement from <4,>=3.17.0 to >=3.19.1,<4 …
dependabot[bot] Sep 30, 2026
0b60281
fix(deps): update pyjwt requirement from >=2.14.0 to >=2.15.0 in /exa…
dependabot[bot] Sep 30, 2026
1e1cd73
fix(deps): update starlette requirement from >=1.6.0 to >=1.7.0 in /e…
dependabot[bot] Sep 30, 2026
00d4470
build(ci): skip irrelevant packaging jobs before runner allocation (#…
jbeckwith-oai Sep 30, 2026
9d2b318
fix(deps-dev): bump ruff from 0.9.2 to 0.16.8 (#5249)
dependabot[bot] Sep 30, 2026
ed1145f
fix(deps): update httpx2 requirement from >=2.13.0 to >=2.13.1 in /ex…
dependabot[bot] Sep 30, 2026
a5d7fd4
fix(deps): update httpx2 requirement from >=2.13.0 to >=2.13.1 in /ex…
dependabot[bot] Sep 30, 2026
36d7944
fix(deps): update starlette requirement from >=1.6.0 to >=1.7.0 in /e…
dependabot[bot] Sep 30, 2026
b64cad4
fix(schema): decode URI fragments before pointer traversal (#5272)
jbeckwith-oai Oct 1, 2026
dc81a17
fix(deps): bump pyjwt from 2.13.0 to 2.15.0 (#5271)
dependabot[bot] Oct 1, 2026
28e9f4f
fix(deps): bump urllib3 from 2.7.0 to 2.8.0 (#5256)
dependabot[bot] Oct 1, 2026
f9da374
build(release): use local maintainer review with release-please (#5274)
jbeckwith-oai Oct 1, 2026
fffe955
fix(deps): bump the codeql group with 2 updates (#5273)
dependabot[bot] Oct 1, 2026
430da63
fix: use gpt-transcribe as the default voice STT model (#5276)
jbeckwith-oai Oct 1, 2026
ce8ae9f
release: 0.23.0 (#5226)
github-actions[bot] Oct 2, 2026
730deb4
fix: restore release tests and refresh required readiness check (#5278)
jbeckwith-oai Oct 2, 2026
a575a6e
test: restrict default runs to OpenAI credentials (#5277)
seratch Oct 2, 2026
c4a1d04
release: 0.23.1 (#5279)
openai-sdks[bot] Oct 2, 2026
81f0ccf
fix(examples): render realtime tool events as text (#5283)
jbeckwith-oai Oct 2, 2026
7968d7a
docs: document Git system requirements (#5295)
jbeckwith-oai Oct 4, 2026
cf89d7e
fix: trace approved tools inside the resumed agent span (#5294)
jbeckwith-oai Oct 4, 2026
8c4aa08
fix: honor Runner tracing opt-out inside caller traces (#5296)
jbeckwith-oai Oct 4, 2026
d3304cf
docs: clarify where to find remote MCP endpoints (#5297)
jbeckwith-oai Oct 4, 2026
d27abe8
fix(tracing): omit caller data from lifecycle debug logs (#5299)
jbeckwith-oai Oct 5, 2026
a726a9c
fix: Preserve parameter descriptions in Args-only docstrings (#5302)
jbeckwith-oai Oct 5, 2026
d7e52c3
fix: omit unserializable dataclass run contexts (#5303)
jbeckwith-oai Oct 5, 2026
7ca3c44
fix(deps): update pyjwt requirement from >=2.15.0 to >=2.15.1 in /exa…
dependabot[bot] Oct 6, 2026
cb03652
fix(deps): update twilio requirement from <10,>=9.11.1 to >=9.11.2,<1…
dependabot[bot] Oct 6, 2026
f346950
fix(deps): update openai requirement from <4,>=3.19.1 to >=3.20.0,<4 …
dependabot[bot] Oct 6, 2026
f84fe73
fix(deps): update uvicorn requirement from >=0.53.0 to >=0.54.0 in /e…
dependabot[bot] Oct 6, 2026
a85487e
fix(deps-dev): bump grpcio from 1.83.1 to 1.84.0 (#5310)
dependabot[bot] Oct 6, 2026
cdf23bd
fix(deps-dev): bump fastapi from 0.139.2 to 0.141.1 (#5312)
dependabot[bot] Oct 6, 2026
d9758b0
fix(deps-dev): bump pymdown-extensions from 11.0.2 to 12.1 (#5314)
dependabot[bot] Oct 6, 2026
858856f
fix(deps-dev): bump pymongo from 4.18.1 to 4.18.2 (#5313)
dependabot[bot] Oct 6, 2026
66504e9
fix(deps): bump fsspec from 2025.7.0 to 2026.6.0 (#5317)
dependabot[bot] Oct 6, 2026
c757a43
fix(sessions): persist deferred approval history across resumes (#4828)
dixso Oct 6, 2026
6ba967b
fix: recover from invalid sandbox tool arguments (#5321)
jbeckwith-oai Oct 6, 2026
2c11c22
fix: warn about unhandled computer safety checks (#5305)
dhavalkapil-oai Oct 6, 2026
911f106
fix: reject unsupported Redis Cluster session clients early (#5323)
jbeckwith-oai Oct 6, 2026
71c2da4
fix: preserve tool outputs after callback failures (#5318)
markstuart-oai Oct 7, 2026
8fd9a7c
feat: support run-wide tool exception formatting (#5326)
jbeckwith-oai Oct 7, 2026
f007b3f
docs: remove redundant hosted tool search dependency floor (#5331)
jbeckwith-oai Oct 7, 2026
26345c1
fix: batch OpenAI conversation session writes within the API limit (#…
jbeckwith-oai Oct 8, 2026
125efa0
[sandbox-hardening] Block Launch Services in the macOS local sandbox …
dhavalkapil-oai Oct 8, 2026
f50525c
fix(memory): replace Redis compaction history atomically (#5354)
jbeckwith-oai Oct 13, 2026
f093ced
fix: preserve function-call aliases across RunState restoration (#5358)
jbeckwith-oai Oct 13, 2026
75813f8
feat: expose MCP annotations on converted tools (#5356)
jbeckwith-oai Oct 13, 2026
f53c624
docs: add native Decisions API integration recipes (#5357)
jbeckwith-oai Oct 13, 2026
8068c37
fix: scope Redis Cluster rejection to transactional writes (#5361)
jbeckwith-oai Oct 13, 2026
6fc4ab7
docs: document callable local MCP approval policies (#5364)
jbeckwith-oai Oct 13, 2026
d8e0a76
fix: preserve RunState agent ownership across hook state changes (#5362)
jbeckwith-oai Oct 13, 2026
5a30187
fix: reject pending input when completed stop tools end resume (#5366)
jbeckwith-oai Oct 13, 2026
67d4f8a
fix: preserve embedded separators in sandbox patches (#5365)
jbeckwith-oai Oct 13, 2026
2244e9f
fix: preserve caller-owned exceptions during sandbox redaction (#5367)
jbeckwith-oai Oct 13, 2026
5eb47a5
fix: defer automatic compaction for pending approvals (#5363)
jbeckwith-oai Oct 13, 2026
1c1a28d
fix: preserve completed tool outputs when a sibling fails (#5332)
jbeckwith-oai Oct 14, 2026
408c33f
fix(deps): update python-dotenv requirement from >=1.2.3 to >=1.2.4 i…
dependabot[bot] Oct 14, 2026
f47d2c3
fix(deps): update fastapi requirement from >=0.141.1 to >=0.142.2 in …
dependabot[bot] Oct 14, 2026
c4cc409
fix(deps): update python-dotenv requirement from >=1.2.3 to >=1.2.4 i…
dependabot[bot] Oct 14, 2026
172ff5e
fix(deps): update openai requirement from <4,>=3.20.0 to >=3.26.0,<4 …
dependabot[bot] Oct 14, 2026
14f4553
fix(deps): bump filelock from 3.20.3 to 4.0.12 (#5375)
dependabot[bot] Oct 14, 2026
7da6a92
fix(deps): bump boto3 from 1.42.75 to 1.43.109 (#5378)
dependabot[bot] Oct 14, 2026
c148280
fix(deps): bump temporalio from 1.33.0 to 1.34.0 (#5377)
dependabot[bot] Oct 14, 2026
2938d87
fix(deps): bump vercel-sandbox from 0.7.0 to 0.8.0 (#5374)
dependabot[bot] Oct 14, 2026
24ebf1c
fix(deps): bump redis from 7.0.1 to 8.1.0 (#5379)
dependabot[bot] Oct 14, 2026
17d994b
release: 0.24.0 (#5285)
openai-sdks[bot] Oct 15, 2026
93955c2
Merge upstream openai/openai-agents-python main into fork
ashsolei Oct 16, 2026
c7e1b61
chore: align non-overlay files with upstream (fork follows upstream)
ashsolei Oct 16, 2026
7ef572b
chore: restore upstream files missing from fork snapshot
ashsolei Oct 16, 2026
cc15915
ci: grant actions: read to Security Scan caller (required by ECC v1.4.0)
ashsolei Oct 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .agents/references/local-mcp-server-lifecycle.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ Use this reference for changes to Python-managed MCP servers, `MCPServerManager`
- A local `MCPServer` owns its transport, `ClientSession`, and `AsyncExitStack` from `connect()` through `cleanup()`. Partial connection failure still requires closing every context already entered.
- Some MCP transports use AnyIO cancel scopes that require connection and cleanup in the same task. Do not wrap either operation in a helper that silently creates another task.
- `MCPServerManager` preserves task affinity in sequential mode and uses one long-lived worker task per server in parallel mode. Timeouts must run inside that owning task; on Python versions without `asyncio.timeout()`, cancel the current worker task and translate only timer-originated cancellation to `TimeoutError`.
- `MCPServerManager` lifecycle timeouts are validated during construction and assignment. They accept positive finite seconds or `None` to disable the timeout. Reject zero rather than relying on `asyncio.timeout(0)`, whose immediate deadline can depend on whether the lifecycle coroutine yields control. Parallel workers receive the current timeout with each command instead of retaining a stale snapshot.
- `client_session_timeout_seconds` uses positive finite values representable by `datetime.timedelta` and at least one microsecond for MCP read timeouts. Both `None` and zero disable that timeout; reject other values during server construction instead of passing an immediate or invalid deadline to `ClientSession`.
- Cleanup runs servers in reverse order and continues across ordinary cleanup failures. Cancellation suppression is an explicit manager policy; do not accidentally convert unrelated `BaseException` failures into recoverable connection errors.
- Server cleanup must clear session and transport-visible state even when exit-stack cleanup raises, so the same server object can reconnect without exposing stale session handles or workers.

Expand Down
21 changes: 15 additions & 6 deletions .agents/references/model-provider-boundaries.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,18 @@ Do not infer that a feature available in one adapter is supported by every `Mode

Validate capabilities at the adapter boundary where the resolved model and complete request are known. Avoid public flags that appear accepted by the SDK but are silently dropped before the provider request.

## Provider Validation and Error Ownership

Do not duplicate provider-side request validation in the SDK merely to fail earlier. When the provider already rejects an invalid value with an actionable error, preserve that single source of truth instead of copying provider grammar, length limits, enum membership, or other request constraints into SDK runtime code. Duplicated validation can drift as provider contracts evolve, can reject values accepted by another provider, and can turn a provider-neutral SDK type into an accidental provider-specific contract.

Add SDK-side validation only when it enforces an SDK-owned invariant or prevents a concrete risk that provider validation cannot address. Examples include ambiguous local routing, collisions before request serialization, invalid persisted state, unsafe local side effects, or a provider error that cannot identify the offending SDK input. A generic preference for earlier failure or a different error message is not sufficient.

When local validation is justified and the constraint is provider-specific, keep it at the owning adapter boundary and derive it from an authoritative provider contract. Do not apply it to shared `Model` interfaces, provider-neutral tool types, or third-party adapters. Tests should distinguish the SDK-owned invariant from values that are intentionally left for the provider to validate.

## Provider Data and Terminal Semantics

- Preserve provider-supplied string IDs, request IDs, usage, and opaque provider data when the public SDK contract exposes them.
- Normalize provider objects and mapping payloads without relying on truthiness for valid empty or zero values.
- Normalize provider objects and mapping payloads without relying on truthiness for valid empty or zero values. When a field intentionally treats zero like `None`, make that field-specific contract explicit in the normalization, documentation, and tests rather than applying a generic optional-number rule.
- A transport stream ending is not automatically a successful model response. Responses `failed` and `incomplete` terminals, explicit error events, and a missing terminal payload must produce the documented failure behavior in both HTTP and websocket paths.
- Keep semantically equivalent HTTP, websocket, streaming, and non-streaming paths aligned on final `ModelResponse`, errors, request IDs, and usage.

Expand All @@ -55,11 +63,12 @@ Validate capabilities at the adapter boundary where the resolved model and compl
## Review Checklist

1. Identify which adapter owns the feature and how unsupported adapters behave.
2. Verify model and implicit-settings resolution when run config overrides the agent.
3. Compare HTTP/websocket and streaming/non-streaming terminal behavior when applicable.
4. Preserve request IDs, usage, provider data, and error semantics through normalization.
5. Prove retries are safe for the request's state ownership and side effects.
6. Test transport reuse, cross-loop access, closed-loop pruning, and provider shutdown when persistent connections are involved.
2. Before adding validation, determine whether it protects an SDK-owned invariant or only duplicates an actionable provider error.
3. Verify model and implicit-settings resolution when run config overrides the agent.
4. Compare HTTP/websocket and streaming/non-streaming terminal behavior when applicable.
5. Preserve request IDs, usage, provider data, and error semantics through normalization.
6. Prove retries are safe for the request's state ownership and side effects.
7. Test transport reuse, cross-loop access, closed-loop pruning, and provider shutdown when persistent connections are involved.

## Sources

Expand Down
4 changes: 4 additions & 0 deletions .agents/references/sandbox-runtime-boundary.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ Resolve the session source in this order: injected live session, resumable sandb
## Filesystem Trust Boundary

- Manifest entry destinations are workspace-relative and must not escape the workspace. The workspace root itself must be absolute where the backend requires an absolute runtime root.
- Treat every path visible inside a sandbox as a POSIX path, regardless of the host operating system. Do not use `str(Path(...))` or `str(PurePath(...))` to produce, validate, compare, or serialize a sandbox path because those calls emit backslashes on Windows. Convert typed path objects with `PurePath.as_posix()` or the canonical helpers in `workspace_paths.py`.
- Preserve the trust distinction between typed path objects and raw string input. A native Windows `Path` or `PurePath` may be converted to its POSIX sandbox representation, while a raw string containing backslashes may still need to be rejected when the public contract requires explicit POSIX syntax. Do not make an input-validation failure disappear by silently canonicalizing every string.
- Keep host filesystem conversion at an explicit host/backend boundary. Code that resolves manifests, mount targets, archive exclusions, snapshots, grants, or provider paths must not let the host implementation of `Path` change the identity of a sandbox path.
- `LocalFile` and `LocalDir` sources are host-side inputs. Resolve them against a trusted base directory, require explicit application-controlled `extra_path_grants` outside that base, and reject untrusted manifests that try to authorize their own host access.
- Validate local sources at use time, not only when parsing the manifest. Defend against symlinked sources, parent-directory swaps, platform path aliases, and archive members that change meaning between validation and extraction.
- Archive extraction must reject traversal, unsafe links, and unsupported member types before writing, and enforce entry, byte, and expansion limits without materializing an unbounded member list.
Expand Down Expand Up @@ -59,6 +62,7 @@ Provider adapters may deliberately support a narrower lifecycle. Document that b
3. Verify handoffs, duplicate agent names, interruption resume, and cleanup failure preserve the intended session mapping.
4. Test host-path, symlink, traversal, archive-limit, and credential-redaction boundaries on applicable platforms.
5. Exercise the public `Runner` path so agent preparation, capability binding, persistence, and cleanup run together.
6. For every new sandbox-path validation, normalization, comparison, or serialization path, test a `PureWindowsPath` input on every host and confirm that raw backslash strings retain their intended validation behavior.

## Sources

Expand Down
2 changes: 2 additions & 0 deletions .agents/references/tool-identity.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ One tool can have several related identifiers. They are not interchangeable.

Do not collapse these layers into one string or introduce local rules that only one caller uses.

Provider wire-name grammar and length limits remain provider-owned validation unless an SDK-owned routing invariant requires local enforcement. Follow [Model and Provider Boundaries](model-provider-boundaries.md#provider-validation-and-error-ownership) before adding name validation to shared tool types or canonical identity helpers.

## Canonical Helpers

Use `src/agents/_tool_identity.py` as the single implementation layer. Important helpers include:
Expand Down
60 changes: 60 additions & 0 deletions .agents/skills/code-change-verification/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
name: code-change-verification
description: Run the required final formatting, lint, type, and test checks after eligible SDK changes pass review.
---

# Code Change Verification

## Overview

Ensure work is only marked complete after formatting, linting, type checking, and tests pass. Use this skill when changes affect runtime code, tests, or build/test configuration. You can skip it for docs-only or repository metadata unless a user asks for the full stack. This is a post-review final gate: when `$implementation-final-review` applies, do not invoke the broad stack until its clean-review condition applies to the stable task diff.

## Quick start

1. Keep this skill at `./.agents/skills/code-change-verification` so it loads automatically for the repository.
2. Codex on macOS/Linux: `/usr/bin/env -u OPENAI_API_KEY OPENAI_AGENTS_TEST_IN_CODEX_SANDBOX=1 UV_DEFAULT_INDEX=https://pypi.org/simple bash .agents/skills/code-change-verification/scripts/run.sh`.
3. Other macOS/Linux environments: `env UV_DEFAULT_INDEX=https://pypi.org/simple bash .agents/skills/code-change-verification/scripts/run.sh`.
4. Windows: `powershell -ExecutionPolicy Bypass -File .agents/skills/code-change-verification/scripts/run.ps1`.
5. On macOS/Linux, the script runs `make format`, `make lint`, `make typecheck`, and `make tests` sequentially and stops at the first failure. Parallelism inside each Make target, including pytest workers, is unchanged.
6. The Bash script streams each command's output directly. The Windows wrapper retains parallel lint, typecheck, and test steps with periodic heartbeat updates.
7. If any command fails, fix the issue, rerun the script, and report the failing output.
8. Confirm completion only when all commands succeed with no remaining issues.

## Start condition and host capacity

- During iterative review, use only focused tests and a narrowly targeted static check when the changed typing boundary requires one. Defer repository-wide `make typecheck` and the rest of this complete stack until review is clean.
- Immediately before starting the complete stack, use available read-only task or process evidence to check whether another repository-wide test, typecheck, build, examples runner, or integration command is already active on the same host.
- When concrete contention is visible, continue useful non-heavy work such as review, remediation, evidence preparation, or focused checks, then check again later. Do not create or wait on a repository lock, host-wide mutex, or sentinel file.
- Start automatically once review is clean, the diff is stable, and observable host capacity is available. Do not require a user-triggered `finalize` message. If host telemetry is unavailable, do not block solely because capacity cannot be measured.

## Codex execution policy

Repository verification and all child processes must remain in the normal Codex workspace sandbox. Never request elevated sandbox permissions for the verification wrapper, and never retry the wrapper with broader host access after a failure.

On macOS, tests marked `requires_native_macos_sandbox` need to start their own `sandbox-exec` process. The Codex command sets `OPENAI_AGENTS_TEST_IN_CODEX_SANDBOX=1`, which skips only that marker before nested sandbox creation. All other tests remain enabled. Ordinary local and CI runs do not set this variable and therefore keep the marked tests enabled.

The marked tests run separately on a disposable GitHub-hosted macOS runner. If that trusted runner is unavailable, report the missing native-macOS coverage; do not compensate by weakening the Codex sandbox boundary.

## Environment setup

The verification scripts assume repository dependencies are already installed. Do not run `make sync` as part of every verification pass; use it for a fresh checkout, after dependency files change, or when dependency resolution fails before the checks start.

On Linux, some Python packages with native extensions may require system packages such as `libffi-dev`, Python development headers, or build tools. If verification cannot start because one of these packages is missing, treat it as a local environment setup issue. Install the missing dependency when possible, or report the failing command and missing dependency in the PR test plan before rerunning verification in a prepared environment.

## Manual workflow

- For a fresh checkout, or if dependencies are not installed or have changed, run `make sync` first to install dev requirements via `uv`.
- Run from the repository root with `make format` first, then `make lint`, `make typecheck`, and `make tests`.
- Do not skip steps; stop and fix issues immediately when a command fails.
- Run the manual steps sequentially and stop at the first failure. Keep the parallelism provided by each Make target.
- Re-run the full stack after applying fixes so the commands execute in the required order.

## Resources

### scripts/run.sh

- Runs `make format`, `make lint`, `make typecheck`, and `make tests` sequentially from the repository root. It streams output, preserves the first failure or cancellation status, and cleans up the active step's process group before continuing or exiting.

### scripts/run.ps1

- Windows-friendly wrapper that runs the same sequence with `make format` first and the remaining steps in parallel with fail-fast semantics, plus periodic heartbeat updates while work is still running. Use from PowerShell with execution policy bypass if required by your environment.
4 changes: 4 additions & 0 deletions .agents/skills/code-change-verification/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
interface:
display_name: "Code Change Verification"
short_description: "Run the required local verification stack"
default_prompt: "Use $code-change-verification to run the required local verification stack inside the normal Codex workspace sandbox. On macOS/Linux, use the documented Codex command so only tests that require a native macOS sandbox are skipped locally. Never request elevated sandbox permissions or retry with broader host access. Report any failures."
Loading
Loading