Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
428 commits
Select commit Hold shift + click to select a range
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
8404d0e
Release 0.138.0-alpha.6
aibrahim-oai Jun 6, 2026
ab1d018
Seed Termux release automation
github-actions[bot] Jun 6, 2026
d1cf6fb
Prepare Termux rust-v0.138.0-alpha.6
github-actions[bot] Jun 6, 2026
87b808b
fix(remote-control): preserve enrollment on generic websocket 404s (#…
apanasenko-oai Jun 6, 2026
837ad59
Merge remote-tracking branch 'origin/release/0.138.0' into resolve/pr…
wallentx Jun 6, 2026
de617be
Merge pull request #193 from wallentx/upstream/rust-v0.138.0
wallentx Jun 6, 2026
4e0beec
Merge commit 'de617be6e04e7fd0ab302f735d09095ce808c5fc' into checkpoi…
github-actions[bot] Jun 6, 2026
25367d4
Merge pull request #194 from wallentx/checkpoint/wallentx_termux-targ…
wallentx 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
6843dcd
Release 0.138.0-alpha.7
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
57794f7
Seed Termux release automation
github-actions[bot] Jun 8, 2026
7bec01f
Prepare Termux rust-v0.138.0-alpha.7
github-actions[bot] 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
2ae55f9
Merge pull request #195 from wallentx/upstream/rust-v0.138.0
wallentx Jun 8, 2026
4c57bcb
Merge commit '2ae55f9a4229b9a5d592625c0f05eb1b28a0583b' into checkpoi…
github-actions[bot] Jun 8, 2026
8c9fb9e
Merge pull request #196 from wallentx/checkpoint/wallentx_termux-targ…
wallentx 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
9923225
Release 0.138.0-alpha.8
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
c18e9f4
## New Features
aibrahim-oai Jun 8, 2026
f047d35
Seed Termux release automation
github-actions[bot] Jun 8, 2026
d508ff5
Prepare Termux rust-v0.138.0-alpha.8
github-actions[bot] 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
f987fe9
Merge branch 'release/0.138.0' into upstream/rust-v0.138.0
wallentx 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
e82a4c4
Merge pull request #197 from wallentx/upstream/rust-v0.138.0
wallentx Jun 9, 2026
865e5de
Merge commit 'e82a4c4a5c22a06341aa1bbfc35e46f27b275d04' into checkpoi…
github-actions[bot] 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
f9657dc
Merge pull request #198 from wallentx/checkpoint/wallentx_termux-targ…
wallentx Jun 9, 2026
a9b6b03
Seed Termux release automation
github-actions[bot] Jun 9, 2026
d3c41ec
Prepare Termux rust-v0.138.0
github-actions[bot] Jun 9, 2026
dffc4bf
[codex] preserve fsmonitor for worktree Git reads (#26880)
tamird Jun 9, 2026
14660c2
Use server app auth requirements for remote plugin install (#27085)
xl-openai Jun 9, 2026
377cf92
Merge pull request #200 from wallentx/upstream/rust-v0.138.0
wallentx Jun 9, 2026
e1b1f45
Merge commit '377cf926877ebfc2882f8b378a048f12e8103859' into checkpoi…
github-actions[bot] Jun 9, 2026
09f2eb2
Merge pull request #201 from wallentx/checkpoint/wallentx_termux-targ…
wallentx Jun 9, 2026
a304569
[codex] Return workspace directory installed plugins (#27098)
xl-openai Jun 9, 2026
fae2709
multi-agent: add path-based v2 activity tracking (#27007)
jif-oai Jun 9, 2026
1547785
app-server: clear stale thread watches after v2 agent interruption (#…
jif-oai Jun 9, 2026
a770e5b
[codex] Ignore pending PR review comments (#27080)
anp-oai Jun 9, 2026
18ce671
Avoid no-op backfill state writes (#26420)
zanie-oai Jun 9, 2026
6a9a49b
Avoid rereading rollout history during cold resume (#27031)
zanie-oai Jun 9, 2026
8a299fb
fix: Prevent /review crash when entering Esc on steer message (#22879)
canvrno-oai Jun 9, 2026
1026e9d
app-server: reject direct input to multi-agent v2 sub-agents (#27173)
jif-oai Jun 9, 2026
89ac3ec
Load selected executor skills through extensions (#27184)
jif-oai Jun 9, 2026
99da697
[codex] Test extension API contracts (#26835)
anp-oai Jun 9, 2026
a7dff90
## New Features
aibrahim-oai Jun 9, 2026
a71e040
[codex-analytics] add extensible feature thread sources (#27063)
marksteinbrick-oai Jun 9, 2026
6e7ab52
[codex] Speed up local nextest runs (#26479)
anp-oai Jun 9, 2026
7a7cee1
fix: use plugin service route for remote uninstall (#27223)
ericning-o Jun 9, 2026
472619f
Add SOCKS5 TCP MITM coverage (#22685)
winston-openai Jun 9, 2026
36bf63a
Allow creating a new goal after completion (#26681)
etraut-openai Jun 9, 2026
8e69d29
Reduce TUI legacy core dependencies (#26711)
etraut-openai Jun 9, 2026
5a0f913
[1/4] Add Python goal routing foundation (#27110)
aibrahim-oai Jun 9, 2026
4ec3b8e
Route hosted Apps MCP through extensions (#27191)
jif-oai Jun 9, 2026
9e3081b
[codex] Characterize global instruction lifecycle (#26830)
anp-oai Jun 9, 2026
f574946
[codex] Report unusable MCP OAuth credentials as logged out (#26713)
anp-oai Jun 9, 2026
b462631
Seed Termux release automation
github-actions[bot] Jun 9, 2026
df8126f
Prepare Termux rust-v0.139.0
github-actions[bot] Jun 9, 2026
f2969f3
[codex] Handle Ctrl-C for non-TTY unified exec (#26734)
pakrym-oai Jun 9, 2026
cc8325f
Stop mirroring Codex user input into realtime (#27116)
guinness-oai Jun 9, 2026
9316acf
[2/4] Add private Python goal operations (#27111)
aibrahim-oai Jun 9, 2026
490340f
[codex] Retry streamable HTTP initialize failures (#25147)
ssetty-oai Jun 9, 2026
51b3cd5
[codex] Tighten MCP connection manager API visibility and order (#27257)
aibrahim-oai Jun 9, 2026
8386a8d
Release 0.140.0-alpha.2
xl-openai Jun 9, 2026
fb8f1ea
TUI Plugin Sharing 1 - add remote plugin identity (#26701)
canvrno-oai Jun 9, 2026
51fc4b0
feat: use provider defaults for memory models (#27129)
celia-oai Jun 9, 2026
600601d
Merge branch 'release/0.139.0' into upstream/rust-v0.139.0
wallentx Jun 10, 2026
5ac640a
Add spans to build_tool_router (#27094)
mchen-oai Jun 10, 2026
4a3eac2
Add per-session realtime model and version overrides (#24999)
guinness-oai Jun 10, 2026
608b8b1
[codex-analytics] emit goal lifecycle analytics (#27078)
marksteinbrick-oai Jun 10, 2026
7465301
Merge pull request #202 from wallentx/upstream/rust-v0.139.0
wallentx Jun 10, 2026
2a46ef6
Merge commit '746530165eed19cad3c533e12bacd5653f8dd0d1' into checkpoi…
github-actions[bot] Jun 10, 2026
a831751
Merge pull request #203 from wallentx/checkpoint/wallentx_termux-targ…
wallentx Jun 10, 2026
e0cb4ed
[codex] Fix post-merge analytics integration failures (#27285)
anp-oai Jun 10, 2026
00a25e1
Add spans to run_turn (#27107)
mchen-oai Jun 10, 2026
af0dd0e
Seed Termux release automation
github-actions[bot] Jun 10, 2026
5adb8a0
Prepare Termux rust-v0.140.0-alpha.2
github-actions[bot] Jun 10, 2026
f88907c
Merge pull request #204 from wallentx/upstream/rust-v0.140.0
wallentx Jun 10, 2026
5d554b9
Merge commit 'f88907c1fa2c5c4c4268c2ab8df12ede723692fc' into checkpoi…
github-actions[bot] Jun 10, 2026
ef74b49
Merge pull request #205 from wallentx/checkpoint/wallentx_termux-targ…
wallentx Jun 10, 2026
a7b6bae
[codex] Make MCP connection startup fallible (#27261)
aibrahim-oai Jun 10, 2026
0ffcefa
feat: keep child MCP warnings out of parent transcript (#27174)
jif-oai Jun 10, 2026
9cd11e9
Use plugin-service MCP as the hosted plugin runtime (#27198)
jif-oai Jun 10, 2026
ced1b8a
[codex] Tag multi-agent spawn metrics with version (#27375)
jif-oai Jun 10, 2026
d2f6d23
Remove async-trait from extension contributors (#27383)
jif-oai Jun 10, 2026
41b4fab
Use latest-wins MCP manager replacement (#27259)
charliemarsh-oai Jun 10, 2026
30ddb33
[codex] Store compact window id in rollout (#27264)
pakrym-oai Jun 10, 2026
0428e20
[codex] add io PathUri native conversion APIs (#27280)
anp-oai Jun 10, 2026
24aee3e
[codex] link Windows releases with LLD (#27315)
tamird Jun 10, 2026
c365b8a
Reduce archive rollout lookup CPU (#27276)
etraut-openai Jun 10, 2026
db531b4
[codex] Outline ToolExecutor handler bodies (#27299)
anp-oai Jun 10, 2026
2ef007d
Index visible thread list ordering (#27391)
zanie-oai Jun 10, 2026
d3abd87
Fix compressed rollout search path matching (#27407)
jif-oai Jun 10, 2026
2704ece
[codex] Remove async_trait from ToolExecutor (#27304)
anp-oai Jun 10, 2026
a1a8807
Add app-server background terminal process APIs (#26041)
etraut-openai Jun 10, 2026
a19d43a
Add app-server `thread/delete` API (#25018)
etraut-openai Jun 10, 2026
3691fe5
fix: Auto-recover from corrupted sqlite databases (#26859)
ddr-oai Jun 10, 2026
636cc11
[codex] remove blocking external agent migration flow (#27064)
stefanstokic-oai Jun 10, 2026
4241544
[codex] Raise app-server recursion limit (#27421)
anp-oai Jun 10, 2026
ea113fc
Release 0.140.0-alpha.4
jif-oai Jun 10, 2026
ccf1a18
[codex] Retry transient Guardian review failures (#27062)
kbazzi Jun 10, 2026
72667f4
[codex] extract external agent import picker renderer (#27065)
stefanstokic-oai Jun 10, 2026
020bf49
[plugins] Inject remote_plugin_id into install elicitations (#26409)
adaley-openai Jun 10, 2026
2e377ce
feat: make ThreadStore available on ThreadExtensionDependencies (#27439)
bolinfest Jun 10, 2026
1346811
Guard core test subprocess cleanup (#27343)
etraut-openai Jun 10, 2026
e352843
[codex] add external agent import picker UX (#27070)
stefanstokic-oai Jun 10, 2026
1deae7b
[codex] Move release platform rules into bazel package (#27321)
anp-oai Jun 10, 2026
b4445f2
[codex] add /import for external agents (#27071)
stefanstokic-oai Jun 10, 2026
7011044
[codex] Skip local curated discovery for remote plugins (#27311)
xl-openai Jun 10, 2026
980f60b
[codex] Preserve disabled MCP servers across runtime overlays (#27414)
e-provencher Jun 10, 2026
387adc6
[codex] reuse release artifacts for npm staging (#27312)
tamird Jun 10, 2026
22dd6eb
Forward standalone assistant output to realtime (#27319)
guinness-oai Jun 10, 2026
7e5e41d
[codex] Add reusable OTEL gauge instruments (#27057)
richardopenai Jun 10, 2026
90328c9
Release 0.140.0-alpha.7
guinness-oai Jun 10, 2026
4bf3603
Seed Termux release automation
github-actions[bot] Jun 10, 2026
8e70711
Prepare Termux rust-v0.140.0-alpha.4
github-actions[bot] Jun 10, 2026
c722052
image: add shared data URL preparation utilities (#27245)
fjord-oai Jun 10, 2026
b39f943
[codex-analytics] emit internally started turn events (#27392)
marksteinbrick-oai Jun 10, 2026
a1aa514
Merge pull request #206 from wallentx/upstream/rust-v0.140.0
wallentx Jun 10, 2026
3d9131c
Merge commit 'a1aa5143b3925b2048395e77ad424f68b683c22d' into checkpoi…
github-actions[bot] Jun 10, 2026
ea4724c
Merge pull request #207 from wallentx/checkpoint/wallentx_termux-targ…
wallentx Jun 10, 2026
ac9c534
[codex] Preserve build-script dependencies in rules_rs annotations (#…
anp-oai Jun 11, 2026
b389b95
core: cache turn diff rendering (#27489)
nornagon-openai Jun 11, 2026
1a9efd4
[codex] Remove redundant plugin app auth state (#27465)
xl-openai Jun 11, 2026
36fc79c
Remove TUI legacy core test_support dependencies (#27484)
etraut-openai Jun 11, 2026
9d87b77
Add session delete commands in CLI and TUI (#27476)
etraut-openai Jun 11, 2026
dcf05ea
Seed Termux release automation
github-actions[bot] Jun 11, 2026
6985623
Prepare Termux rust-v0.140.0-alpha.7
github-actions[bot] Jun 11, 2026
a6f435e
core: resize all history images behind a feature flag (#27247)
fjord-oai Jun 11, 2026
8fe920e
Merge pull request #208 from wallentx/upstream/rust-v0.140.0
wallentx Jun 11, 2026
47f783a
Merge commit '8fe920e47d0f7a236d02600be1f9b4caefc1f703' into checkpoi…
github-actions[bot] Jun 11, 2026
585849a
Merge pull request #209 from wallentx/checkpoint/wallentx_termux-targ…
wallentx Jun 11, 2026
ab4ce40
Trim TUI legacy telemetry and migration dependencies (#27487)
etraut-openai Jun 11, 2026
658af93
[codex] Add token budget context feature (#27438)
pakrym-oai Jun 11, 2026
f1f9d0c
[codex] Expand hosted web search citation guidance (#27501)
yuning-oai Jun 11, 2026
728b824
tools: simplify default tool search text (#27526)
sayan-oai Jun 11, 2026
87ab018
[codex] Add new context window tool (#27488)
pakrym-oai Jun 11, 2026
06afd63
feat: add Bedrock API key as a managed auth mode (#27443)
celia-oai Jun 11, 2026
e614fad
[codex] Add comp_hash to model metadata (#27532)
aibrahim-oai Jun 11, 2026
4435ff2
core: strip image detail from Responses Lite requests (#27246)
fjord-oai Jun 11, 2026
8568559
[codex] Pass auth mode to plugin manager (#27517)
xl-openai Jun 11, 2026
ba4925b
[codex] Compact when comp_hash changes (#27520)
aibrahim-oai Jun 11, 2026
dac5f07
[codex] Add context remaining tool (#27518)
pakrym-oai Jun 11, 2026
5981251
image: preserve metadata when resizing prompt images (#27266)
fjord-oai Jun 11, 2026
ef7d9c2
Release 0.140.0-alpha.8
aibrahim-oai Jun 11, 2026
383708e
[codex-analytics] report cached input tokens for v2 compaction (#27103)
rhan-oai Jun 11, 2026
b5a718e
Use generic search metadata for dynamic tools (#27356)
sayan-oai Jun 11, 2026
8d9f33c
[codex-analytics] Emit structured compaction codex errors (#27082)
rhan-oai Jun 11, 2026
53b5019
[codex] Tune cloud config cache intervals (#26513)
alexsong-oai Jun 11, 2026
beedde9
Seed Termux release automation
github-actions[bot] Jun 11, 2026
f49b05b
Prepare Termux rust-v0.140.0-alpha.8
github-actions[bot] Jun 11, 2026
a287c5d
skills: make backend plugin skills invocable without an executor (#27…
jif-oai Jun 11, 2026
6754e77
skills: cache remote catalog failures per thread (#27403)
jif-oai Jun 11, 2026
273a4aa
core: enable remote compaction v2 by default (#27573)
jif-oai Jun 11, 2026
7b3eb8e
skills: expose remote skill resource tools (#27388)
jif-oai Jun 11, 2026
0870352
multi-agent: move concurrency guidance into v2 usage hints (#27569)
jif-oai Jun 11, 2026
e6757bb
nit: cap error (#27585)
jif-oai Jun 11, 2026
dd46ef1
test: cover referenced backend skill reads without an executor (#27404)
jif-oai Jun 11, 2026
ff6b8d1
Merge pull request #210 from wallentx/upstream/rust-v0.140.0
wallentx Jun 11, 2026
3950f75
Merge commit 'ff6b8d1418fb3af7c54f51eaf72653e82f9c5023' into checkpoi…
github-actions[bot] Jun 11, 2026
4322e01
skills: render catalog locators by authority (#27591)
jif-oai Jun 11, 2026
7c23948
skills: decouple the skills extension from core (#27413)
jif-oai Jun 11, 2026
5e50e7e
[codex] publish npm packages concurrently (#27527)
tamird Jun 11, 2026
9163c0a
[codex] publish DotSlash alongside npm (#27528)
tamird Jun 11, 2026
f427801
[codex] download only release artifacts (#27529)
tamird Jun 11, 2026
1e5b87b
Remove TUI legacy Windows sandbox dependency (#27490)
etraut-openai Jun 11, 2026
df9dd22
Emit plugin ID on MCP tool call analytics events (#27483)
chrisdong-oai Jun 11, 2026
9d88e29
Print TUI session info on fatal exits (#27417)
etraut-openai Jun 11, 2026
52db447
lint: allow self-documenting builder arguments (#27507)
anp-oai Jun 11, 2026
eb76336
[codex] Propagate plugin app categories (#27420)
charlesgong-openai Jun 11, 2026
cc97839
[codex] add cross-platform filesystem adapter coverage (#27454)
anp-oai Jun 11, 2026
7fbbc9f
[codex] Surface runtime warnings in codex exec (#27415)
anp-oai Jun 11, 2026
b42bff2
[codex] revert concurrent npm publishing (#27639)
tamird Jun 11, 2026
fa2ae5c
Release 0.140.0-alpha.11
bolinfest Jun 11, 2026
267232f
feat: disable orchestrator skills for now (#27646)
jif-oai Jun 11, 2026
0b08bbb
[codex] Provide ARM64 MinGW powl compatibility support (#27323)
anp-oai Jun 11, 2026
4a05d3b
[codex] remove EnvironmentPathRef (#27433)
anp-oai Jun 11, 2026
b2a4e3b
[codex] migrate ExecutorFileSystem paths to PathUri (#27424)
anp-oai Jun 11, 2026
d5989d6
Seed Termux release automation
github-actions[bot] Jun 11, 2026
3d61553
Prepare Termux rust-v0.140.0-alpha.11
github-actions[bot] Jun 11, 2026
236b501
[codex] Load user instructions through an injected provider (#27101)
anp-oai Jun 11, 2026
4a5a676
Resolve MCP server registrations through a catalog (#27634)
jif-oai Jun 11, 2026
14df0e8
core: Consolidate Responses API Codex metadata (#27122)
owenlin0 Jun 11, 2026
b5f1bb7
[codex-rs] enforce PAT workspace restrictions (#27450)
cooper-oai Jun 11, 2026
d23bb22
[codex] migrate exec-server filesystem protocol to PathUri (#27653)
anp-oai Jun 11, 2026
7516eb5
Include thread id in token budget context (#27663)
pakrym-oai Jun 11, 2026
0d8dee9
[codex] Avoid duplicate hooks.json discovery with profiles (#26418)
abhinav-oai Jun 11, 2026
b7a5d81
feat: prefer managed Bedrock auth in model provider (#27689)
celia-oai Jun 11, 2026
0843d00
Merge pull request #212 from wallentx/upstream/rust-v0.140.0
wallentx Jun 11, 2026
715f50c
Merge commit '0843d00c285a313b2512b19f8b8527b6d3cb39c4' into checkpoi…
github-actions[bot] Jun 11, 2026
a46779f
Merge pull request #211 from wallentx/checkpoint/wallentx_termux-targ…
wallentx Jun 11, 2026
e069153
Remove fs/join and fs/parent from exec-server protocol (#27700)
anp-oai Jun 11, 2026
f115586
Merge remote-tracking branch 'origin/wallentx/termux-target' into res…
wallentx Jun 11, 2026
c9ac36c
Merge pull request #213 from wallentx/checkpoint/wallentx_termux-targ…
wallentx Jun 11, 2026
eddc5c7
Warn when hooks.json has unsupported top-level fields (#26426)
abhinav-oai Jun 11, 2026
b2cc01f
[codex] Move persistence policy application into ThreadStore (#27318)
wiltzius-openai Jun 11, 2026
19ce639
Route image extension reads through turn environments v2 (#27498)
won-openai Jun 11, 2026
92d9036
Add spans to turn lifecycle gaps (#27623)
mchen-oai Jun 11, 2026
44403dd
tui: clear stale hook row after turn completion (#27619)
kotakem-openai Jun 12, 2026
1829ed1
Fix image extension PathUri conversion (#27711)
anp-oai Jun 12, 2026
36f5119
Release 0.140.0-alpha.13
won-openai Jun 12, 2026
9b30431
Seed Termux release automation
github-actions[bot] Jun 12, 2026
b47582d
Prepare Termux rust-v0.140.0-alpha.13
github-actions[bot] Jun 12, 2026
b7ba197
Merge pull request #214 from wallentx/upstream/rust-v0.140.0
wallentx Jun 12, 2026
fa5d516
Merge commit 'b7ba1972c3ffced7efb3bd4311be88bf94ee6b5c' into checkpoi…
github-actions[bot] Jun 12, 2026
8224ae7
Merge pull request #215 from wallentx/checkpoint/wallentx_termux-targ…
wallentx Jun 12, 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
  •  
  •  
  •  
16 changes: 11 additions & 5 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -105,9 +105,9 @@ 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
# Bazel CI cross-compiles in several legs, and the V8-backed code-mode tests
# are not stable in that setup yet. Keep running the rest of the Rust
# integration suites through the workspace-root launcher.
# 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.
Expand Down Expand Up @@ -186,12 +186,16 @@ 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.
common:ci-windows-cross --test_env=CODEX_BAZEL_TEST_SKIP_FILTERS=suite::code_mode::,powershell
# 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
Expand All @@ -210,6 +214,8 @@ common --@v8//:v8_enable_sandbox=True
# 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
Expand Down
41 changes: 35 additions & 6 deletions .codex/skills/babysit-pr/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ Accept any of the following:
3. Inspect the `actions` list in the JSON response.
4. If `diagnose_ci_failure` is present, inspect failed run logs and classify the failure.
5. If the failure is likely caused by the current branch, patch code locally, commit, and push. Do not patch random flaky tests, CI infrastructure, dependency outages, runner issues, or other failures that are unrelated to the branch.
6. If `process_review_comment` is present, inspect surfaced review items and decide whether to address them.
7. If a review item is actionable and correct, patch code locally, commit, push, and then mark the associated review thread/comment as resolved once the fix is on GitHub.
6. If `process_review_comment` is present, inspect surfaced published review items and decide whether to address them.
7. If a review item is actionable and correct, patch code locally, commit, push, and then resolve the associated review thread only when allowed by the GitHub state mutation policy below.
8. Do not post replies to human-authored review comments/threads unless the user explicitly confirms the exact response. If a human review item is non-actionable, already addressed, or not valid, surface the item and recommended response to the user instead of replying on GitHub.
9. If the failure is likely flaky/unrelated and `retry_failed_checks` is present, rerun failed jobs with `--retry-failed-now`.
10. If both actionable review feedback and `retry_failed_checks` are present, prioritize review feedback first; a new commit will retrigger CI, so avoid rerunning flaky checks on the old SHA unless you intentionally defer the review change.
Expand Down Expand Up @@ -92,23 +92,52 @@ The watcher surfaces review items from:
- Inline review comments
- Review submissions (COMMENT / APPROVED / CHANGES_REQUESTED)

Only act on published feedback. Ignore review submissions in GitHub's `PENDING` state and inline
comments attached to those pending reviews. Do not mark pending review feedback as seen; it should
be eligible to surface after the reviewer submits the review.

It intentionally surfaces Codex reviewer bot feedback (for example comments/reviews from `chatgpt-codex-connector[bot]`) in addition to human reviewer feedback. Most unrelated bot noise should still be ignored.
For safety, the watcher only auto-surfaces trusted human review authors (for example repo OWNER/MEMBER/COLLABORATOR, plus the authenticated operator) and approved review bots such as Codex.
On a fresh watcher state file, existing pending review feedback may be surfaced immediately (not only comments that arrive after monitoring starts). This is intentional so already-open review comments are not missed.
On a fresh watcher state file, existing unaddressed published review feedback may be surfaced immediately (not only comments that arrive after monitoring starts). This is intentional so already-open review comments are not missed.

When you agree with a comment and it is actionable:

1. Patch code locally.
2. Commit with `codex: address PR review feedback (#<n>)`.
3. Push to the PR head branch.
4. After the push succeeds, mark the associated GitHub review thread/comment as resolved.
4. After the push succeeds, resolve the associated GitHub review thread only when allowed by the GitHub state mutation policy below.
5. Resume watching on the new SHA immediately (do not stop after reporting the push).
6. If monitoring was running in `--watch` mode, restart `--watch` immediately after the push in the same turn; do not wait for the user to ask again.

Do not post replies to human-authored GitHub review comments/threads automatically. If you disagree with a human comment, believe it is non-actionable/already addressed, or need to answer a question, report the item to the user with a suggested response and wait for explicit confirmation before posting anything on GitHub. If the user approves a response, prefix it with `[codex]` so it is clear the response is automated and not from the human user.
If the watcher later surfaces your own approved reply because the authenticated operator is treated as a trusted review author, treat that self-authored item as already handled and do not reply again.
If a code review comment/thread is already marked as resolved in GitHub, treat it as non-actionable and safely ignore it unless new unresolved follow-up feedback appears.

## GitHub State Mutation Policy

You can read any PR state you need for monitoring. Writes must comply with this policy.

You can push PRs to update the code under review or to force CI re-runs as described above.

You can resolve review comment threads from the human who requested babysitting or from the Codex
review bot. When resolving, leave a comment prefixed with `[from Codex]: ` and explain what changes
you made and which commit includes them. Don't touch review threads if other humans other than the
user who requested babysitting have participated.

Before making any changes, fetch the PR state yourself instead of relying on the PR watcher script's
output.

Unless explicitly asked, do not:

* comment on other humans' review threads, communicate with the user in chat instead
* resolve review threads from humans other than the user
* interact with humans other than the user
* mark PRs as drafts or ready for review
* close or reopen PRs

In general, never act on GitHub in ways that would make it hard to tell whether you or the user did
something visible to other humans. When in doubt, ask the user for clarification in chat.

## Git Safety Rules

- Work only on the PR head branch.
Expand All @@ -133,10 +162,10 @@ Use this loop in a live Codex session:
3. First check whether the PR is now merged or otherwise closed; if so, report that terminal state and stop polling immediately.
4. Check CI summary, new review items, and mergeability/conflict status.
5. Diagnose CI failures and classify branch-related vs flaky/unrelated. If the overall run is still pending but `failed_jobs` already includes a failed job, fetch that job's logs and diagnose immediately instead of waiting for the whole workflow run to finish. Patch only when the failure is branch-related.
6. For each surfaced review item from another author, patch/commit/push and then resolve it if it is actionable. If it is non-actionable, already addressed, or requires a written answer, surface it to the user with a suggested response instead of posting automatically. If a later snapshot surfaces your own approved reply, treat it as informational and continue without responding again.
6. For each surfaced review item from another author, patch/commit/push if it is actionable, then resolve it only when allowed by the GitHub state mutation policy above. If it is non-actionable, already addressed, or requires a written answer, surface it to the user with a suggested response instead of posting automatically. If a later snapshot surfaces your own approved reply, treat it as informational and continue without responding again.
7. Process actionable review comments before flaky reruns when both are present; if a review fix requires a commit, push it and skip rerunning failed checks on the old SHA.
8. Retry failed checks only when `retry_failed_checks` is present and you are not about to replace the current SHA with a review/CI fix commit. Do not make code changes for unrelated flakes or infrastructure failures just to get CI green.
9. If you pushed a commit, resolved a review thread, or triggered a rerun, report the action briefly and continue polling (do not stop). If a human review comment needs a written GitHub response, stop and ask for confirmation before posting.
9. If you pushed a commit, resolved an eligible review thread, or triggered a rerun, report the action briefly and continue polling (do not stop). If a human review comment needs a written GitHub response, stop and ask for confirmation before posting.
10. After a review-fix push, proactively restart continuous monitoring (`--watch`) in the same turn unless a strict stop condition has already been reached.
11. If everything is passing, mergeable, not blocked on required review approval, and there are no unaddressed review items, report that the PR is currently ready to merge but keep the watcher running so new review comments are surfaced quickly while the PR remains open.
12. If blocked on a user-help-required issue (infra outage, exhausted flaky retries, unclear reviewer request, permissions), report the blocker and stop.
Expand Down
2 changes: 1 addition & 1 deletion .codex/skills/babysit-pr/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
interface:
display_name: "PR Babysitter"
short_description: "Watch PR review comments, CI, and merge conflicts"
default_prompt: "Babysit the current PR: monitor reviewer comments, CI, and merge-conflict status (prefer the watcher’s --watch mode for live monitoring); surface new review feedback before acting on CI or mergeability work, fix valid issues, push updates, and rerun flaky failures up to 3 times. Do not post replies to human-authored review comments unless the user explicitly confirms the exact response. Do not patch unrelated flaky tests, CI infrastructure, dependency outages, runner issues, or other failures that are not caused by the branch. Keep exactly one watcher session active for the PR (do not leave duplicate --watch terminals running). If you pause monitoring to patch review/CI feedback, restart --watch yourself immediately after the push in the same turn. If a watcher is still running and no strict stop condition has been reached, the task is still in progress: keep consuming watcher output and sending progress updates instead of ending the turn. Do not treat a green + mergeable PR as a terminal stop while it is still open; continue polling autonomously after any push/rerun so newly posted review comments are surfaced until a strict terminal stop condition is reached or the user interrupts."
default_prompt: "Babysit the current PR: monitor published reviewer comments, CI, and merge-conflict status (prefer the watcher’s --watch mode for live monitoring); ignore unpublished comments in pending GitHub reviews; surface new published review feedback before acting on CI or mergeability work, fix valid issues, push updates, and rerun flaky failures up to 3 times. Do not post replies to human-authored review comments unless the user explicitly confirms the exact response. Do not patch unrelated flaky tests, CI infrastructure, dependency outages, runner issues, or other failures that are not caused by the branch. Keep exactly one watcher session active for the PR (do not leave duplicate --watch terminals running). If you pause monitoring to patch review/CI feedback, restart --watch yourself immediately after the push in the same turn. If a watcher is still running and no strict stop condition has been reached, the task is still in progress: keep consuming watcher output and sending progress updates instead of ending the turn. Do not treat a green + mergeable PR as a terminal stop while it is still open; continue polling autonomously after any push/rerun so newly posted review comments are surfaced until a strict terminal stop condition is reached or the user interrupts."
3 changes: 3 additions & 0 deletions .codex/skills/babysit-pr/references/github-api-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ Reruns only failed jobs (and dependencies) for a workflow run.
- Review submissions:
- `gh api repos/{owner}/{repo}/pulls/<pr_number>/reviews?per_page=100`

Use each inline comment's `pull_request_review_id` to find its parent review. Ignore parent reviews
whose `state` is `PENDING`, along with their inline comments, until the review is submitted.

## JSON fields consumed by the watcher

### `gh pr view`
Expand Down
28 changes: 25 additions & 3 deletions .codex/skills/babysit-pr/scripts/gh_pr_watch.py
Original file line number Diff line number Diff line change
Expand Up @@ -452,11 +452,14 @@ def normalize_issue_comments(items):
return out


def normalize_review_comments(items):
def normalize_review_comments(items, review_states):
out = []
for item in items:
if not isinstance(item, dict):
continue
review_id = str(item.get("pull_request_review_id") or "")
if review_states.get(review_id) == "PENDING":
continue
line = item.get("line")
if line is None:
line = item.get("original_line")
Expand All @@ -481,6 +484,8 @@ def normalize_reviews(items):
for item in items:
if not isinstance(item, dict):
continue
if str(item.get("state") or "").upper() == "PENDING":
continue
out.append(
{
"kind": "review",
Expand Down Expand Up @@ -534,16 +539,33 @@ def fetch_new_review_items(pr, state, fresh_state, authenticated_login=None):
review_payload = gh_api_list_paginated(endpoints["review"], repo=repo)

issue_items = normalize_issue_comments(issue_payload)
review_comment_items = normalize_review_comments(review_comment_payload)
review_states = {
str(item.get("id")): str(item.get("state") or "").upper()
for item in review_payload
if isinstance(item, dict) and item.get("id") not in (None, "")
}
pending_review_ids = {
review_id for review_id, review_state in review_states.items() if review_state == "PENDING"
}
pending_review_comment_ids = {
str(item.get("id"))
for item in review_comment_payload
if isinstance(item, dict)
and item.get("id") not in (None, "")
and str(item.get("pull_request_review_id") or "") in pending_review_ids
}
review_comment_items = normalize_review_comments(review_comment_payload, review_states)
review_items = normalize_reviews(review_payload)
all_items = issue_items + review_comment_items + review_items

seen_issue = {str(x) for x in state.get("seen_issue_comment_ids") or []}
seen_review_comment = {str(x) for x in state.get("seen_review_comment_ids") or []}
seen_review = {str(x) for x in state.get("seen_review_ids") or []}
seen_review_comment.difference_update(pending_review_comment_ids)
seen_review.difference_update(pending_review_ids)

# On a brand-new state file, surface existing review activity instead of
# silently treating it as seen. This avoids missing already-pending review
# silently treating it as seen. This avoids missing already-published review
# feedback when monitoring starts after comments were posted.

new_items = []
Expand Down
68 changes: 68 additions & 0 deletions .codex/skills/babysit-pr/scripts/test_gh_pr_watch.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,74 @@ def test_recommend_actions_prioritizes_review_comments():
]


def test_pending_review_feedback_surfaces_only_after_publication(monkeypatch):
state = {
"seen_review_comment_ids": ["20"],
"seen_review_ids": ["10"],
}
review = {
"id": 10,
"user": {"login": "octocat"},
"author_association": "MEMBER",
"state": "PENDING",
"body": "Please rename this.",
"created_at": "2026-06-08T10:00:00Z",
"submitted_at": None,
"html_url": "https://github.com/openai/codex/pull/123#pullrequestreview-10",
}
review_comment = {
"id": 20,
"pull_request_review_id": 10,
"user": {"login": "octocat"},
"author_association": "MEMBER",
"body": "Please rename this.",
"created_at": "2026-06-08T10:00:00Z",
"path": "src/example.rs",
"line": 7,
"html_url": "https://github.com/openai/codex/pull/123#discussion_r20",
}

def fake_list(endpoint, **kwargs):
if endpoint.endswith("/issues/123/comments"):
return []
if endpoint.endswith("/pulls/123/comments"):
return [review_comment]
if endpoint.endswith("/pulls/123/reviews"):
return [review]
raise AssertionError(f"unexpected endpoint: {endpoint}")

monkeypatch.setattr(gh_pr_watch, "gh_api_list_paginated", fake_list)

assert (
gh_pr_watch.fetch_new_review_items(
sample_pr(),
state,
fresh_state=True,
authenticated_login="octocat",
)
== []
)
assert state["seen_review_comment_ids"] == []
assert state["seen_review_ids"] == []

review["state"] = "COMMENTED"
review["submitted_at"] = "2026-06-08T10:05:00Z"

published_items = gh_pr_watch.fetch_new_review_items(
sample_pr(),
state,
fresh_state=False,
authenticated_login="octocat",
)

assert {(item["kind"], item["id"]) for item in published_items} == {
("review", "10"),
("review_comment", "20"),
}
assert state["seen_review_comment_ids"] == ["20"]
assert state["seen_review_ids"] == ["10"]


def test_run_watch_keeps_polling_open_ready_to_merge_pr(monkeypatch):
sleeps = []
events = []
Expand Down
17 changes: 17 additions & 0 deletions .codex/skills/pushing-ci-changes/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: pushing-ci-changes
description: Pushing GitHub Actions changes, resolving push rejection, requesting upload exceptions.
---

The Codex repository prevents anyone from uploading changes to its CI configuration unless they've
been granted a temporary role.

In order to push changes to `.github/**/*.yml` and related files you'll need the user to read
go/workflow-approvals and request an approval through that flow. It is not possible for you to
make progress by requesting an exemption yourself.

If you know you're about to push changes that would fail due to these restrictions you should still
try to push anyways to confirm the user's account doesn't already have the necessary approval.

If you encounter a failed push due to these restrictions, share the go/workflow-approvals link with
the user and ask them to return control to you once the approval has propagated to GitHub.
Loading
Loading