Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2797 commits
Select commit Hold shift + click to select a range
12c37a6
Allow paste in searchable selection menus (#25400)
charliemarsh-oai Jun 1, 2026
f94c49c
Use deep links for macOS codex app paths (#25485)
etraut-openai Jun 1, 2026
6681446
Reset slash popup selection when filter changes (#25492)
etraut-openai Jun 1, 2026
f1d029c
Add reasoning-only status surface item (#25504)
etraut-openai Jun 1, 2026
3cdce52
Preserve renamed thread titles during reconciliation (#25624)
jif-oai Jun 1, 2026
01cb978
Compress cold local rollouts (#25089)
jif-oai Jun 1, 2026
8b759b9
Disable SQLite intrinsics for Windows x64 releases (#25490)
etraut-openai Jun 1, 2026
2bf1c98
[codex] Inherit raw events for spawned child listeners (#25603)
vivi Jun 1, 2026
7950316
[codex] Use git CLI for release Cargo fetches (#25644)
shijie-oai Jun 1, 2026
e6eb462
nit: drop todo (#25655)
jif-oai Jun 1, 2026
917a9a4
Parallelize cold rollout compression (#25654)
jif-oai Jun 1, 2026
fb94703
exec-server: add environment path refs (#25121)
starr-openai Jun 1, 2026
6ddb747
[codex] Rename multi-agent v2 assign_task to followup_task (#25636)
jif-oai Jun 1, 2026
9756316
Preserve plugin app manifest order (#25491)
charlesgong-openai Jun 1, 2026
88c7a4f
[codex] Make justfile recipes Windows-aware (#24983)
iceweasel-oai Jun 1, 2026
ba2b67f
[codex] Consolidate shared prompts in codex-prompts (#25151)
anp-oai Jun 1, 2026
c3cdf3c
Throttle repeated rollout compression runs (#25659)
jif-oai Jun 1, 2026
281b416
Check root Python script formatting in CI (#25165)
anp-oai Jun 1, 2026
f1609d9
[codex-rs] auto-review model override (#23767)
won-openai Jun 1, 2026
53ac023
exec-server: canonicalize bound filesystem paths (#25149)
starr-openai Jun 1, 2026
009e6c4
fix: deflake zsh-fork approval test (#25669)
jif-oai Jun 1, 2026
d6748f7
feat: gate unified exec zsh fork composition (#24979)
bolinfest Jun 1, 2026
feb9edd
refactor: hide shell override for zsh fork unified exec (#24980)
bolinfest Jun 1, 2026
9f4fac8
Add rollout compression counters (#25679)
jif-oai Jun 1, 2026
a29a5b0
[codex] document out-of-line test module convention (#25682)
anp-oai Jun 1, 2026
7c285f9
Add rollout compression histograms (#25680)
jif-oai Jun 1, 2026
f0e15b9
[codex] Generalize deferred nested tool guidance (#25689)
sayan-oai Jun 1, 2026
433ac84
Add Python version compatibility guidance (#25690)
anp-oai Jun 1, 2026
6ae99fd
fix: Deduplicate installed local and remote curated plugins (#25681)
xl-openai Jun 1, 2026
6536841
fix: rename McpServer to TestAppServer (#25701)
bolinfest Jun 1, 2026
b3c4157
[codex] enable parallel standalone web search calls (#25702)
sayan-oai Jun 1, 2026
8ee49a2
Fix stale TestAppServer rename in plugin_list test (#25705)
bolinfest Jun 1, 2026
8d720fe
Move tool search metadata onto ToolExecutor (#25684)
jif-oai Jun 1, 2026
4e540b1
fix(tui): clarify footer shortcut overlay hints (#25625)
fcoury-oai Jun 1, 2026
75a08de
[codex] Publish release symbol artifacts (#25649)
nornagon-openai Jun 1, 2026
b89bf1e
Reject directory rollout paths for pathless side chats (#25661)
bolinfest Jun 1, 2026
bca18cb
Wire managed MITM CA trust into child env (#22668)
winston-openai Jun 1, 2026
11e0f3d
app-server: remove experimental persist_extended_history bool flag (#…
owenlin0 Jun 1, 2026
0b3a6f7
Move cloud requirements crate to cloud config (#24621)
joeflorencio-openai Jun 1, 2026
1ad0d7a
Handle invalid plugin skills manifest field (#25717)
xli-oai Jun 2, 2026
0002316
feat(remote-control): add pairing start (#25675)
apanasenko-oai Jun 2, 2026
747f100
[codex] Add comprehensive root formatting check (#25683)
anp-oai Jun 2, 2026
c955f73
Move code review rules into AGENTS (#25738)
pakrym-oai Jun 2, 2026
c8e5db1
feat: show enterprise monthly credit limits in status (#24812)
efrazer-oai Jun 2, 2026
cb63ee7
[codex] Add plugin list JSON output (#25330)
xl-openai Jun 2, 2026
f2b7251
[codex] Cache remote plugin catalog for suggestions (#25457)
xl-openai Jun 2, 2026
07f04cc
[codex] Move plugin discoverable logic into core-plugins (#25783)
xl-openai Jun 2, 2026
67b805f
[codex] Validate plugin skill base names (#25782)
xl-openai Jun 2, 2026
45912a6
feat: reuse compressed rollout search snippets (#25814)
jif-oai Jun 2, 2026
3f1fb7e
Add multi-agent runtime metadata types (#25720)
jif-oai Jun 2, 2026
0c5ccd1
Persist multi-agent runtime metadata (#25721)
jif-oai Jun 2, 2026
bf9fd88
Resolve per-thread multi-agent runtime (#25722)
jif-oai Jun 2, 2026
3cf6f08
session: keep startup prewarm aligned with resolved multi-agent runti…
jif-oai Jun 2, 2026
06e9a33
fix: main oops (#25840)
jif-oai Jun 2, 2026
66991c9
Test remote multi-agent runtime selector override (#25723)
jif-oai Jun 2, 2026
33273e4
Test runtime selector before first turn (#25724)
jif-oai Jun 2, 2026
1dd7313
Reduce stack pressure in session startup and config rebuilds (#25844)
jif-oai Jun 2, 2026
b9af5d1
flake: Keep plugin test homes alive (#25857)
jif-oai Jun 2, 2026
3766941
Run Codex async main on a sized stack (#25847)
jif-oai Jun 2, 2026
c097ad3
[codex] Use git CLI for Cargo fetches across Rust workflows (#25775)
anp-oai Jun 2, 2026
4d80d80
[app-server][core] Add connector-level Guardian reviewer overrides (#…
zamoshchin-openai Jun 2, 2026
859dbe2
Skip startup prewarm when websockets are disabled (#25868)
jif-oai Jun 2, 2026
ebb7980
Route Bazel CI through shared BuildBuddy remote config wrapper (#25156)
anp-oai Jun 2, 2026
593df87
core: derive built-in permission profiles from raw policies (#25739)
bolinfest Jun 2, 2026
9e3d5f2
[codex] Revert shared BuildBuddy Bazel wrapper (#25909)
anp-oai Jun 2, 2026
503ec19
Key request-permission grants by environment (#25850)
jif-oai Jun 2, 2026
8e4b92d
[codex-analytics] Track CodexErr details in turn analytics (#25707)
rhan-oai Jun 2, 2026
e29071e
Add environmentId to request_permissions (#25858)
jif-oai Jun 2, 2026
57f337a
Route standalone image generation through host finalization md (#25176)
won-openai Jun 2, 2026
de124c3
Fix Windows release PDB staging (#25916)
shijie-oai Jun 2, 2026
9de5683
Propagate permission approval environment id (#25862)
jif-oai Jun 2, 2026
bc49677
[codex] Pin Python SDK to glibc-compatible runtime (#25907)
aibrahim-oai Jun 2, 2026
af18e92
Use environment secrets for Azure signing (#24859)
shijie-oai Jun 2, 2026
ad355d4
Fix Windows running thread resume path normalization (#25509)
etraut-openai Jun 2, 2026
b794182
Populate workspace kind on Codex turn events (#25135)
knittel-openai Jun 2, 2026
d45cd26
Switch runtime to cloud config bundle (#24622)
joeflorencio-openai Jun 2, 2026
c74be11
fix: update image generation test helper rename (#25938)
joeflorencio-openai Jun 2, 2026
f6d64bd
core: stop passing legacy SandboxPolicy to guardian reviews (#25911)
bolinfest Jun 2, 2026
e7039f9
Split cloud config bundle service modules (#25668)
joeflorencio-openai Jun 2, 2026
68e2c8e
[codex] Keep hosted tools visible in code-only mode (#25890)
aibrahim-oai Jun 2, 2026
d55e5a9
Add remote request permissions integration coverage (#25867)
jif-oai Jun 2, 2026
c6d7675
config: remove dead profile sandbox fallback (#25943)
bolinfest Jun 2, 2026
f752b25
Revert "Use environment secrets for Azure signing" (#25948)
shijie-oai Jun 2, 2026
bec21c7
Expose standalone image generation in code mode (#25923)
won-openai Jun 2, 2026
34dc08c
[codex] Publish Python runtime wheels with Python SDK releases (#25906)
aibrahim-oai Jun 2, 2026
2d385e1
feat: add skills extension scaffold (#25953)
jif-oai Jun 2, 2026
6471f8b
[codex] Fix Windows BuildBuddy Bazel wrapper execution (#25915)
anp-oai Jun 2, 2026
a28b32a
config: express implicit sandbox defaults as permission profiles (#25…
bolinfest Jun 2, 2026
271d5ce
feat: add extension turn-input contributors (#25959)
jif-oai Jun 2, 2026
1fd2a6d
Allow EDU accounts to fetch cloud config bundles (#25963)
joeflorencio-openai Jun 2, 2026
98a62a6
feat(app-server): add remote control client management RPCs (#25785)
apanasenko-oai Jun 3, 2026
d36a3ea
revert: publish release symbol artifacts (#25988)
shijie-oai Jun 3, 2026
668703c
feat: default hide_spawn_agent_metadata to true (#26114)
jif-oai Jun 3, 2026
ac67905
chore: extract context fragments into dedicated crate (#26122)
jif-oai Jun 3, 2026
5149315
Reject MAv2 close_agent self-targets (#26144)
jif-oai Jun 3, 2026
3389fa5
skills: resolve per-turn catalogs from turn input context (#26106)
jif-oai Jun 3, 2026
7db18c8
fix: serialize goal progress accounting (#26155)
jif-oai Jun 3, 2026
c9ae0f4
chore: mechanical rename (#26156)
jif-oai Jun 3, 2026
96d2d2f
Implement v1 skills extension prompt injection (#26167)
jif-oai Jun 3, 2026
4417e4c
fix: main (#26176)
jif-oai Jun 3, 2026
b2344d8
[codex] Restore setup helper UAC manifest (#25949)
iceweasel-oai Jun 3, 2026
99c9be1
nit: small prompt update for MAv2 (#26179)
jif-oai Jun 3, 2026
8030c36
feat: guard git enrichment (#26175)
jif-oai Jun 3, 2026
a2a9e76
Fix multiline paste in /goal edit (#26047)
etraut-openai Jun 3, 2026
52b359b
core: stop threading SandboxPolicy through exec (#25700)
bolinfest Jun 3, 2026
2d5c264
[codex] Copy user Bazel settings into Codex worktrees (#25925)
anp-oai Jun 3, 2026
10b4080
[codex] Pin Python SDK to runtime 0.137.0a4 (#26216)
aibrahim-oai Jun 3, 2026
aeac226
Preserve remote plugin default prompts (#25887)
ericning-o Jun 3, 2026
57ab4c8
Expose local image paths to models (#25944)
won-openai Jun 3, 2026
a2ebe07
[profile-switcher][rust] -- [1/2] Add app-server account session prot…
dhruvgupta-oai Jun 3, 2026
d8121f9
Fix forked thread name inheritance (#26075)
etraut-openai Jun 3, 2026
0eb7e6d
Restore Windows coverage for code-mode image generation exposure (#25…
won-openai Jun 3, 2026
2ca3810
[codex] Split Python runtime release workflow (#26226)
aibrahim-oai Jun 3, 2026
11bceb8
feat: catalog multi-agent v2 config (#26254)
jif-oai Jun 3, 2026
4231472
Rewrite oversized tool outputs during remote compaction (#26251)
pakrym-oai Jun 3, 2026
14272b2
codex-pr-body: avoid confidential references (#26260)
anp-oai Jun 3, 2026
0ed2735
Use Windows setup marker as completion signal (#26074)
abhinav-oai Jun 3, 2026
4d4837c
log plugin MCP server names (#26002)
chrisdong-oai Jun 3, 2026
8285cd2
fix(tui): add reasoning effort fallback shortcuts (#25623)
fcoury-oai Jun 3, 2026
80b65e9
feat(tui): add /app desktop handoff (#25638)
fcoury-oai Jun 3, 2026
6bcccb0
cli: add package path from install context (#26189)
bolinfest Jun 4, 2026
c143a86
[codex-analytics] report compaction request token counts (#25946)
rhan-oai Jun 4, 2026
ad2012d
ci: sign macOS release artifacts with Azure Key Vault (#26252)
eburke-openai Jun 4, 2026
16d02ec
chore: calm down (#26367)
jif-oai Jun 4, 2026
d297616
Gate automatic idle turns in Plan mode (#26147)
jif-oai Jun 4, 2026
d46a98d
Bridge host-loaded skills into the skills extension (#26172)
jif-oai Jun 4, 2026
7da4af6
Optimize unbounded byte scans with memchr (#26265)
charliemarsh-oai Jun 4, 2026
d81fcdf
Reduce SQLite contention from OpenTelemetry SDK debug logs (#26396)
zanie-oai Jun 4, 2026
4ae7930
Load plugin hooks without other plugin capabilities (#26272)
charliemarsh-oai Jun 4, 2026
68db0bb
Simplify Codex CLI README (#26313)
etraut-openai Jun 4, 2026
12e8764
Add saved image path hint to standalone image generation (#25947)
won-openai Jun 4, 2026
cbf62f6
Bound external agent session detection work (#26291)
stefanstokic-oai Jun 4, 2026
cdc1d59
Expose configured marketplace source in plugin list JSON (#26417)
mpc-oai Jun 4, 2026
881cf19
app-server: support -c config overrides (#26436)
bolinfest Jun 4, 2026
c8fdc74
external-agent-migration: avoid mixed MCP transport configs (#26435)
stefanstokic-oai Jun 4, 2026
9e41f8d
[codex-analytics] emit forked thread id on initialization (#26248)
kbazzi Jun 4, 2026
8b12388
core: allow excluding tool namespaces from code mode (#26320)
sayan-oai Jun 4, 2026
c3fcb0e
Use Azure artifact signing environment secrets (#25945)
shijie-oai Jun 4, 2026
e64b469
Route AGENTS.md loading through environment filesystems (#26205)
anp-oai Jun 4, 2026
555f8ca
[codex] Fix Windows sandbox build script lint (#26445)
pakrym-oai Jun 4, 2026
f97d5c3
build: use ThinLTO for release binaries (#23710)
anp-oai Jun 4, 2026
d312a53
Remove response.processed websocket request (#26447)
pakrym-oai Jun 4, 2026
4a70e0a
Cleanup experimentalFeature/enablement/set (#26312)
mzeng-openai Jun 4, 2026
8ac304c
[codex] Support model-defined reasoning efforts (#26444)
aibrahim-oai Jun 4, 2026
f6e5296
[codex] Use model-advertised reasoning effort order (#26446)
aibrahim-oai Jun 4, 2026
37c8aef
Use Winget release environment secret (#26466)
shijie-oai Jun 4, 2026
59ca342
[codex] Preserve logical paths during AGENTS.md discovery (#26465)
anp-oai Jun 4, 2026
769c231
fix(app-server): expose remote MCP servers in plugin read (#26453)
ericning-o Jun 4, 2026
e695ec8
Add skill for pushing CI configuration changes (#26473)
anp-oai Jun 4, 2026
b9ff450
[codex] Expose unavailable app templates in plugin detail (#26317)
charlesgong-openai Jun 4, 2026
0b2e7b5
Improve Windows sandbox setup refresh diagnostics (#26471)
iceweasel-oai Jun 4, 2026
72d0bfb
Pull plugin service less frequently (#26431)
beggers-openai Jun 5, 2026
4be1a16
ci: test windows cross build (#25000)
cconger Jun 5, 2026
ecae412
[codex] Emit sandbox outcome telemetry event (#25955)
rreichel3-oai Jun 5, 2026
e0096db
[codex] Add use_responses_lite 'override' logic (#26487)
rka-oai Jun 5, 2026
4de7a2b
fix(rmcp): refresh expired OAuth tokens before startup (#26482)
anp-oai Jun 5, 2026
1d9c9c9
[codex] Keep Bazel startup options stable across commands (#26256)
anp-oai Jun 5, 2026
a2f5874
core: derive exec policy filesystem policy from profile (#26499)
bolinfest Jun 5, 2026
64e0829
feat(remote-control): allow pairing while disabled (#26215)
apanasenko-oai Jun 5, 2026
6a6a5f9
[codex] Add environment shell info (#26480)
pakrym-oai Jun 5, 2026
5f4d06e
Encrypt multi-agent v2 message payloads (#26210)
jif-oai Jun 5, 2026
6dc28ba
nit: doc (#26566)
jif-oai Jun 5, 2026
55aa071
[codex] Forward turn moderation metadata through app-server (#25710)
carlc-oai Jun 5, 2026
6623222
[codex] Keep v1 spawn metadata visible (#26599)
jif-oai Jun 5, 2026
0b1512c
refactor: split agent control modules (#26610)
jif-oai Jun 5, 2026
5e62c73
feat(app-server): expose account token usage [1 of 2] (#25344)
fcoury-oai Jun 5, 2026
a14a73b
[codex] Fix long proxy socket paths (#26553)
viyatb-oai Jun 5, 2026
3acd71f
Surface TUI config write error causes (#26537)
etraut-openai Jun 5, 2026
e781816
Open Windows app workspaces via deep link (#26500)
etraut-openai Jun 5, 2026
fb0993d
Fix `/goal` usage text for control commands (#26551)
etraut-openai Jun 5, 2026
e5af672
Render code comment directives in TUI replay (#26554)
etraut-openai Jun 5, 2026
d5e4f01
feat: reload v2 agents on delivery (#26623)
jif-oai Jun 5, 2026
40c8f1a
Require absolute cwd in thread settings (#26532)
pakrym-oai Jun 5, 2026
d404545
[codex] Allow socketpair in proxy-routed Linux sandbox (#26625)
viyatb-oai Jun 5, 2026
9ddb1de
[codex] Add /usr/bin/bash shell fallback (#26538)
pakrym-oai Jun 5, 2026
da490ba
feat(remote-control): add pairing status transport (#26449)
hefuc-oai Jun 5, 2026
86a1ddd
Make turn diff tracker multi-env aware (#26433)
pakrym-oai Jun 5, 2026
841f057
fix(tui): avoid doubled blank rows while streaming (#26636)
fcoury-oai Jun 5, 2026
0177231
feat(app-server): add remote control pairing status RPC (#26450)
hefuc-oai Jun 5, 2026
78eba34
Clean up Rust release workflow (#26335)
shijie-oai Jun 5, 2026
a8c9530
[1 of 2] Align goal extension with core behavior (#26547)
etraut-openai Jun 5, 2026
7131923
fix(tui): Windows composer background (#26181)
fcoury-oai Jun 5, 2026
679a944
fix(tui): restore cancelled prompt cursor at end (#26457)
fcoury-oai Jun 5, 2026
82b15b6
[codex] Respect Windows sandbox backend in exec policy (#26307)
iceweasel-oai Jun 5, 2026
8d72fb6
[codex] Add turn profiling analytics (#26484)
aibrahim-oai Jun 5, 2026
76c0a53
Make runtime workspace roots absolute in app-server API (#26552)
pakrym-oai Jun 5, 2026
345cf6e
Use state DB first for `resume --last` (#26462)
charliemarsh-oai Jun 5, 2026
055c7a7
Speed up TUI startup by reusing plugin discovery (#26469)
charliemarsh-oai Jun 5, 2026
bb7d19b
Add JSON output for plugin subcommands (#26631)
mpc-oai Jun 5, 2026
679cc08
[codex] Bound WSL local curated discovery (#26669)
xl-openai Jun 5, 2026
479a14c
[2 of 2] Finish moving goal runtime to extension (#26548)
etraut-openai Jun 5, 2026
470c20b
protocol: remove submission-side serde from Op (#26674)
pakrym-oai Jun 5, 2026
c62d792
Block active goals after terminal turn errors (#26690)
etraut-openai Jun 5, 2026
4f655bc
[codex] Remove legacy remote plugin startup sync (#25936)
xl-openai Jun 5, 2026
ffe90cb
[codex] Use standalone tools for Responses Lite (#26490)
rka-oai Jun 6, 2026
61a913d
[codex] Gate terminal visualization instructions in TUI (#26013)
vie-oai Jun 6, 2026
df7818c
[codex-rs] support v2 personal access tokens (#25731)
cooper-oai Jun 6, 2026
954e287
[codex] Send Responses Lite transport header (#26542)
rka-oai Jun 6, 2026
2f108f9
permissions: enforce managed permission profile allowlists (#24852)
viyatb-oai Jun 6, 2026
cbac22d
[codex] Deduplicate skill load warnings (#26698)
xl-openai Jun 6, 2026
3ea9e98
Remove `just bench-smoke` from `just test`. (#26716)
anp-oai Jun 6, 2026
87b808b
fix(remote-control): preserve enrollment on generic websocket 404s (#…
apanasenko-oai Jun 6, 2026
cdc8ec0
fix(core-plugins): send Codex product SKU to plugin-service (#26804)
ericning-o Jun 6, 2026
b89ce9a
build(v8): update rusty_v8 to 149.2.0 (#26464)
cconger Jun 6, 2026
2ee3358
ci: use bazel environment for BuildBuddy secret (#26895)
bolinfest Jun 7, 2026
e6c4709
fix: preserve approval sandbox decisions in unified exec (#24981)
bolinfest Jun 7, 2026
e093d81
fix(tui): accept prompts with resume and fork (#26818)
fcoury-oai Jun 7, 2026
e648ec7
deps: update starlark to 0.14.2 (#24820)
bolinfest Jun 8, 2026
5a440c0
fix(tui): scope MCP startup status by thread (#26639)
fcoury-oai Jun 8, 2026
ed6e5cf
[codex] Enable standalone web search in code mode (#26719)
rka-oai Jun 8, 2026
4e803a0
feat: add v2 agent residency lru (#26632)
jif-oai Jun 8, 2026
8f1aad5
Ignore proc-macro-error2 advisory (#26974)
jif-oai Jun 8, 2026
743f5aa
feat: count V2 concurrency by active execution (#26969)
jif-oai Jun 8, 2026
8d41505
Rename multi-agent v2 close_agent to interrupt_agent (#26994)
jif-oai Jun 8, 2026
0526cb5
Avoid reopening v2 descendants on resume (#26997)
jif-oai Jun 8, 2026
26d9329
[codex] Exclude external tool output from memories (#26821)
rka-oai Jun 8, 2026
6d0e313
[codex] Restore release symbol artifacts with line tables (#26202)
nornagon-openai Jun 8, 2026
b128da2
fix(app-server): avoid blocking connection cleanup (#26852)
apanasenko-oai Jun 8, 2026
a815311
Add HTTP window ID to Responses client metadata (#26923)
ningyi-oai Jun 8, 2026
f1c18df
[codex-analytics] report compaction analytics details (#26680)
rhan-oai Jun 8, 2026
6d8e12a
[codex] Speed up external agent session imports (#26637)
stefanstokic-oai Jun 8, 2026
0aa9931
[plugins] Expose marketplace source in marketplace list JSON (#27009)
mpc-oai Jun 8, 2026
2375cb6
ci: template custom runner names by repo (#27024)
bolinfest Jun 8, 2026
9e0d7f0
fix: preserve auto review across config and delegation (#26230)
viyatb-oai Jun 8, 2026
f3a8074
[codex] Clarify PR babysitter state mutations (#27038)
anp-oai Jun 8, 2026
f9a680b
[codex] Calm multi-agent v2 usage prompts (#27037)
jif-oai Jun 8, 2026
f3c1283
Pair thread environment settings (#26687)
pakrym-oai Jun 8, 2026
e0ee491
cli: add -P sandbox permissions profile alias (#27054)
bolinfest Jun 8, 2026
85fd52f
Enforce configured network proxy in codex sandbox (#27035)
viyatb-oai Jun 8, 2026
123cf62
Route image edits through referenced file paths (#26486)
won-openai Jun 8, 2026
ee6c91d
[codex-analytics] stop sending codex error subreason (#27060)
rhan-oai Jun 8, 2026
5655490
[codex] Require complete main-agent skill reads (#27044)
fchen-oai Jun 8, 2026
b89d91f
feat: support oneOf and allOf in tool input schemas (#24118)
celia-oai Jun 8, 2026
daf76a5
[codex] Prune stale curated plugin caches (#26934)
xl-openai Jun 8, 2026
381f0de
Use cached remote plugin catalog for plugin list (#26932)
xl-openai Jun 8, 2026
feca160
[codex] Add OTEL counter descriptions (#26091)
richardopenai Jun 8, 2026
0473a5c
feat(doctor): report editor and pager environment (#27081)
fcoury-oai Jun 8, 2026
6042e58
chore: preserve one more schema layer during large tool compaction (#…
celia-oai Jun 8, 2026
ffec7c0
Add typed file URIs (#26840)
anp-oai Jun 8, 2026
4ca2e43
fix(tui): linkify complete bare URLs with tildes (#27088)
fcoury-oai Jun 9, 2026
8534912
Show effective sandbox modes in /debug-config (#27068)
canvrno-oai Jun 9, 2026
e127a0c
Add extra config to StoredThread, leave empty for now (#27092)
kumquatexpress Jun 9, 2026
c656cc4
Update web search citation prompt (#27096)
yuning-oai Jun 9, 2026
0beb5c7
Preserve cloud requirements across TUI thread resets (#25177)
canvrno-oai Jun 9, 2026
08cb633
[codex] Remove remote compaction failure log (#27106)
pakrym-oai Jun 9, 2026
a7dff90
## New Features
aibrahim-oai Jun 9, 2026
821de6d
Merge upstream Codex 0.139.0 into Rolodex
Zorlin Jun 10, 2026
5c939aa
Restore llm-code tools and local voice input
Zorlin Jun 12, 2026
2ed70b9
Restore SDK search and smart write tools
Zorlin Jun 12, 2026
6515f09
Streamline project opening in TUI
Zorlin Jul 1, 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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
186 changes: 177 additions & 9 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@ common:windows --host_platform=//:local_windows
common --@rules_cc//cc/toolchains/args/archiver_flags:use_libtool_on_macos=False
common --@llvm//config:experimental_stub_libgcc_s

# We need to use the sh toolchain on windows so we don't send host bash paths to the linux executor.
common:windows --@rules_rust//rust/settings:experimental_use_sh_toolchain_for_bootstrap_process_wrapper

# TODO(zbarsky): rules_rust doesn't implement this flag properly with remote exec...
# common --@rules_rust//rust/settings:pipelined_compilation

Expand All @@ -32,27 +29,198 @@ common:linux --test_env=PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
common:macos --test_env=PATH=/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

# Pass through some env vars Windows needs to use powershell?
common:windows --test_env=PATH
common:windows --test_env=SYSTEMROOT
common:windows --test_env=COMSPEC
common:windows --test_env=WINDIR
# Rust's libtest harness runs test bodies on std-spawned threads. The default
# 2 MiB stack can be too small for large async test futures on Windows CI; see
# https://github.com/openai/codex/pull/19067 for the motivating failure.
common --test_env=RUST_MIN_STACK=8388608 # 8 MiB

common --test_output=errors
common --bes_results_url=https://app.buildbuddy.io/invocation/
common --bes_backend=grpcs://remote.buildbuddy.io
common --remote_cache=grpcs://remote.buildbuddy.io
common --remote_download_toplevel
common --nobuild_runfile_links
# These settings tune BuildBuddy/RBE behavior but do not contact a remote
# service unless a `buildbuddy-*` configuration below supplies an endpoint.
common --remote_download_toplevel
common --remote_timeout=3600
common --noexperimental_throttle_remote_action_building
common --experimental_remote_execution_keepalive
common --grpc_keepalive_time=30s

# Opt-in remote configurations selected by
# `.github/scripts/run_bazel_with_buildbuddy.py`. Plain Bazel commands do not
# contact BuildBuddy unless a user selects one of these configurations.
# Use the generic host for cache, BES, and downloads without remote execution.
common:buildbuddy-generic --bes_backend=grpcs://remote.buildbuddy.io
common:buildbuddy-generic --bes_results_url=https://app.buildbuddy.io/invocation/
common:buildbuddy-generic --remote_cache=grpcs://remote.buildbuddy.io
common:buildbuddy-generic --experimental_remote_downloader=grpcs://remote.buildbuddy.io

# Add remote execution on the generic host.
common:buildbuddy-generic-rbe --config=buildbuddy-generic
common:buildbuddy-generic-rbe --config=remote
common:buildbuddy-generic-rbe --remote_executor=grpcs://remote.buildbuddy.io

# Use the OpenAI tenant for cache, BES, and downloads without remote execution.
common:buildbuddy-openai --bes_backend=grpcs://openai.buildbuddy.io
common:buildbuddy-openai --bes_results_url=https://openai.buildbuddy.io/invocation/
common:buildbuddy-openai --remote_cache=grpcs://openai.buildbuddy.io
common:buildbuddy-openai --experimental_remote_downloader=grpcs://openai.buildbuddy.io

# Add remote execution on the OpenAI tenant.
common:buildbuddy-openai-rbe --config=buildbuddy-openai
common:buildbuddy-openai-rbe --config=remote
common:buildbuddy-openai-rbe --remote_executor=grpcs://openai.buildbuddy.io

# This limits both in-flight executions and concurrent downloads. Even with high number
# of jobs execution will still be limited by CPU cores, so this just pays a bit of
# memory in exchange for higher download concurrency.
common --jobs=30

# Shared remote execution policy. The endpoint-bearing `buildbuddy-*-rbe`
# configurations include this group; CI configs override TestRunner below
# when tests must remain local on their runner.
common:remote --strategy=remote
common:remote --extra_execution_platforms=//:rbe
common:remote --remote_executor=grpcs://remote.buildbuddy.io
common:remote --jobs=800
# TODO(team): Evaluate if this actually helps, zbarsky is not sure, everything seems bottlenecked on `core` either way.
# Enable pipelined compilation since we are not bound by local CPU count.
#common:remote --@rules_rust//rust/settings:pipelined_compilation

# GitHub Actions CI configs.
common:ci --remote_download_minimal
common:ci --keep_going
common:ci --verbose_failures
common:ci --build_metadata=REPO_URL=https://github.com/openai/codex.git
common:ci --build_metadata=ROLE=CI
common:ci --build_metadata=VISIBILITY=PUBLIC
# rules_rust derives debug level from Bazel toolchain/compilation-mode settings,
# not Cargo profiles. Keep CI Rust actions explicit and lean.
common:ci --@rules_rust//rust/settings:extra_rustc_flag=-Cdebuginfo=0
common:ci --@rules_rust//rust/settings:extra_exec_rustc_flag=-Cdebuginfo=0

# Disable disk cache in CI since we have a remote one and aren't using persistent workers.
common:ci --disk_cache=

# Shared config for the main Bazel CI workflow.
common:ci-bazel --config=ci
common:ci-bazel --build_metadata=TAG_workflow=bazel
# Keep code-mode integration cases out of ordinary Bazel legs. The
# Windows-cross config below re-enables them after generating its Windows V8
# snapshot on the Windows runner.
common:ci-bazel --test_env=CODEX_BAZEL_TEST_SKIP_FILTERS=suite::code_mode::

# Shared config for Bazel-backed Rust linting.
build:clippy --aspects=@rules_rust//rust:defs.bzl%rust_clippy_aspect
build:clippy --output_groups=+clippy_checks
build:clippy --@rules_rust//rust/settings:clippy.toml=//codex-rs:clippy.toml
# Keep this deny-list in sync with `codex-rs/Cargo.toml` `[workspace.lints.clippy]`.
# Cargo applies those lint levels to member crates that opt into `[lints] workspace = true`
# in their own `Cargo.toml`, but `rules_rust` Bazel clippy does not read Cargo lint levels.
# `clippy.toml` can configure lint behavior, but it cannot set allow/warn/deny/forbid levels.
build:clippy --@rules_rust//rust/settings:clippy_flag=-Dwarnings
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::await_holding_invalid_type
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::await_holding_lock
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::expect_used
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::identity_op
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::manual_clamp
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::manual_filter
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::manual_find
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::manual_flatten
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::manual_map
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::manual_memcpy
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::manual_non_exhaustive
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::manual_ok_or
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::manual_range_contains
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::manual_retain
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::manual_strip
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::manual_try_fold
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::manual_unwrap_or
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::needless_borrow
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::needless_borrowed_reference
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::needless_collect
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::needless_late_init
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::needless_option_as_deref
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::needless_question_mark
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::needless_update
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::redundant_clone
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::redundant_closure
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::redundant_closure_for_method_calls
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::redundant_static_lifetimes
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::trivially_copy_pass_by_ref
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::uninlined_format_args
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::unnecessary_filter_map
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::unnecessary_lazy_evaluations
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::unnecessary_sort_by
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::unnecessary_to_owned
build:clippy --@rules_rust//rust/settings:clippy_flag=--deny=clippy::unwrap_used

# Shared config for Bazel-backed argument-comment-lint.
build:argument-comment-lint --aspects=//tools/argument-comment-lint:lint_aspect.bzl%rust_argument_comment_lint_aspect
build:argument-comment-lint --output_groups=argument_comment_lint_checks
build:argument-comment-lint --@rules_rust//rust/toolchain/channel=nightly

# Rearrange caches on Windows so they're on the same volume as the checkout.
common:ci-windows --config=ci-bazel
common:ci-windows --build_metadata=TAG_os=windows
common:ci-windows --repo_contents_cache=D:/a/.cache/bazel-repo-contents-cache

# We prefer to run the build actions entirely remotely so we can dial up the concurrency.
# We have platform-specific tests, so we want to execute the tests on all platforms using the strongest sandboxing available on each platform.

# On linux, we can do a full remote build/test, by targeting the right (x86/arm) runners, so we have coverage of both.
# Linux crossbuilds don't work until we untangle the libc constraint mess.
common:ci-linux --config=ci-bazel
common:ci-linux --build_metadata=TAG_os=linux
common:ci-linux --platforms=//:rbe

# On mac, we can run all the build actions remotely but test actions locally.
common:ci-macos --config=ci-bazel
common:ci-macos --build_metadata=TAG_os=macos
common:ci-macos --strategy=TestRunner=darwin-sandbox,local

# On Windows, use Linux remote execution for build actions but keep test actions
# on the Windows runner so Bazel's normal test sharding and flaky-test retries
# still run against Windows binaries.
common:ci-windows-cross --config=ci-windows
common:ci-windows-cross --build_metadata=TAG_windows_cross_compile=true
common:ci-windows-cross --host_platform=//:rbe
common:ci-windows-cross --strategy=TestRunner=local
# V8 embeds IsolateData offsets in snapshot builtins; Windows snapshots must be
# generated by a Windows mksnapshot binary rather than the Linux RBE host tool.
common:ci-windows-cross --strategy=V8Mksnapshot=local
common:ci-windows-cross --local_test_jobs=4
common:ci-windows-cross --test_env=RUST_TEST_THREADS=1
# Native Windows CI still covers the PowerShell tests. The cross-built gnullvm
# binaries currently hang in PowerShell AST parser tests when those binaries are
# run on the Windows runner. Keep V8-backed code-mode tests enabled except for
# the hidden dynamic-tool callback test, which currently times out on Windows.
common:ci-windows-cross --test_env=CODEX_BAZEL_TEST_SKIP_FILTERS=powershell,suite::code_mode::code_mode_can_call_hidden_dynamic_tools
common:ci-windows-cross --platforms=//:windows_x86_64_gnullvm
common:ci-windows-cross --extra_execution_platforms=//:rbe,//:windows_x86_64_msvc
common:ci-windows-cross --extra_toolchains=//:windows_gnullvm_tests_on_msvc_host_toolchain

# Linux-only V8 CI config.
common:ci-v8 --config=ci
common:ci-v8 --build_metadata=TAG_workflow=v8
common:ci-v8 --build_metadata=TAG_os=linux

# Source-built Bazel V8 artifacts use the in-process sandbox by default. This
# does not affect Cargo's default prebuilt rusty_v8 path.
common --@v8//:v8_enable_pointer_compression=True
common --@v8//:v8_enable_sandbox=True

# Keep currently published rusty_v8 release artifacts non-sandboxed until the
# artifact migration ships matching Rust feature selection for Cargo consumers.
common:v8-release-compat --@v8//:v8_enable_pointer_compression=False
common:v8-release-compat --@v8//:v8_enable_sandbox=False
common:v8-target-x64 --@v8//bazel/config:v8_target_cpu=x64
common:v8-target-arm64 --@v8//bazel/config:v8_target_cpu=arm64

# Match rusty_v8's upstream GN release contract for published artifacts: every
# target object uses Chromium's custom libc++ headers and the archive folds in
# the matching runtime objects.
common:rusty-v8-upstream-libcxx --@v8//:v8_use_rusty_v8_custom_libcxx=True

# Optional per-user local overrides.
try-import %workspace%/user.bazelrc
1 change: 1 addition & 0 deletions .codespellignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
iTerm
iTerm2
psuedo
SOM
te
TE
Hel
4 changes: 2 additions & 2 deletions .codespellrc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[codespell]
# Ref: https://github.com/codespell-project/codespell#using-a-config-file
skip = .git*,vendor,*-lock.yaml,*.lock,.codespellrc,*test.ts,*.jsonl,frame*.txt,*.snap,*.snap.new,*meriyah.umd.min.js
skip = .git*,vendor,*-lock.yaml,*.lock,.codespellrc,*test.ts,*.jsonl,frame*.txt,*.snap,*.snap.new
check-hidden = true
ignore-regex = ^\s*"image/\S+": ".*|\b(afterAll)\b
ignore-words-list = ratatui,ser,iTerm,iterm2,iterm,te,TE
ignore-words-list = ratatui,ser,iTerm,iterm2,iterm,te,TE,PASE,SEH
11 changes: 11 additions & 0 deletions .codex/environments/environment.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# THIS IS AUTOGENERATED. DO NOT EDIT MANUALLY
version = 1
name = "codex"

[setup]
script = "python ./.codex/environments/setup.py"

[[actions]]
name = "Run"
icon = "run"
command = "cargo +1.95.0 run --manifest-path=codex-rs/Cargo.toml --bin codex -- -c mcp_oauth_credentials_store=file"
65 changes: 65 additions & 0 deletions .codex/environments/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#!/usr/bin/env python3

"""Set up ignored files that should be shared with Codex worktrees."""

import shutil
import subprocess
from functools import cache
from pathlib import Path


@cache
def worktree_paths() -> tuple[Path, Path]:
script_dir = Path(__file__).resolve().parent
worktree_root = git_path(script_dir / "../..", "--show-toplevel")
common_git_dir = git_path(worktree_root, "--git-common-dir")
return worktree_root, common_git_dir.parent


def git_path(working_directory: Path, argument: str) -> Path:
output = subprocess.check_output(
[
"git",
"-C",
str(working_directory),
"rev-parse",
"--path-format=absolute",
argument,
],
text=True,
)
return Path(output.strip())


def copy_from_main_worktree_to_worktree(repo_relative_path: str) -> None:
relative_path = Path(repo_relative_path)
if relative_path.is_absolute() or ".." in relative_path.parts:
raise ValueError(f"path must be repository-relative: {repo_relative_path}")

worktree_root, main_worktree = worktree_paths()
source_path = main_worktree / relative_path
destination_path = worktree_root / relative_path

print(f" source: {source_path}")
print(f" destination: {destination_path}")

if source_path == destination_path:
print(" result: running in the main worktree; nothing to copy")
elif destination_path.exists():
print(" result: destination already exists; nothing to copy")
elif not source_path.is_file():
print(" result: source does not exist; nothing to copy")
else:
destination_path.parent.mkdir(parents=True, exist_ok=True)
shutil.copy2(source_path, destination_path)
print(f" result: copied {repo_relative_path}")


def main() -> None:
print("Codex environment setup:")
# See codex-rs/docs/bazel.md for the repository's Bazel workflow.
copy_from_main_worktree_to_worktree("user.bazelrc")


if __name__ == "__main__":
main()
Loading
Loading