Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
229 commits
Select commit Hold shift + click to select a range
cbd7d0d
chore: improve rollout session init errors (#7336)
jobchong Nov 27, 2025
aaec8ab
feat: detached review (#7292)
jif-oai Nov 28, 2025
6eeaf46
fix: other flaky tests (#7372)
jif-oai Nov 28, 2025
457c9fd
chore: better session recycling (#7368)
jif-oai Nov 30, 2025
ebd485b
chore(deps): bump arboard from 3.6.0 to 3.6.1 in /codex-rs (#7426)
dependabot[bot] Dec 1, 2025
c22cd2e
chore(deps): bump serde_with from 3.14.0 to 3.16.1 in /codex-rs (#7422)
dependabot[bot] Dec 1, 2025
3f12f11
chore(deps): bump reqwest from 0.12.23 to 0.12.24 in /codex-rs (#7424)
dependabot[bot] Dec 1, 2025
cb85a7b
chore(deps): bump tracing from 0.1.41 to 0.1.43 in /codex-rs (#7428)
dependabot[bot] Dec 1, 2025
14df5c9
Fixed CLA action to properly exempt dependabot (#7429)
etraut-openai Dec 1, 2025
ba58184
chore(deps): bump image from 0.25.8 to 0.25.9 in /codex-rs (#7421)
dependabot[bot] Dec 1, 2025
4000680
[app-server] add `turn/plan/updated` event (#7329)
celia-oai Dec 1, 2025
a421eba
fix: disable review rollout filtering (#7371)
jif-oai Dec 1, 2025
44d9267
[app-server] fix: ensure thread_id and turn_id are on all events (#7408)
owenlin0 Dec 1, 2025
8532876
[app-server] fix: emit item/fileChange/outputDelta for file change it…
owenlin0 Dec 1, 2025
0cc3b50
Fix recent_commits(limit=0) returning 1 commit instead of 0 (#7334)
Towaiji Dec 1, 2025
440c7ac
fix: nix build missing rmcp output hash (#7436)
Alb-O Dec 1, 2025
41760f8
docs: clarify codex max defaults and xhigh availability (#7449)
kgruiz Dec 1, 2025
c936c68
fix: prevent MCP startup failure on missing 'type' field (#7417)
linuxmetel Dec 1, 2025
c0564ed
chore: update to rmcp@0.10.0 to pick up support for custom client not…
bolinfest Dec 1, 2025
5b25915
fix(apply_patch) tests for shell_command (#7307)
dylan-hurd-oai Dec 1, 2025
ff4ca99
[app-server] Add ImageView item (#7468)
celia-oai Dec 1, 2025
f443555
fix(core): enable history lookup on windows (#7457)
stevemostovoy-openai Dec 2, 2025
32e4a3a
fix(tui): handle WSL clipboard image paths (#3990)
manoelcalixto Dec 2, 2025
a8d5ad3
feat: experimental support for skills.md (#7412)
tibo-openai Dec 2, 2025
85e2fab
feat: alias compaction (#7442)
jif-oai Dec 2, 2025
4b78e2a
chore: review everywhere (#7444)
jif-oai Dec 2, 2025
9ee855e
feat: add warning message for the model (#7445)
jif-oai Dec 2, 2025
85e687c
feat: add one off commands to app-server v2 (#7452)
jif-oai Dec 2, 2025
8b1e397
Add request logging back (#7471)
pakrym-oai Dec 2, 2025
37ee6bf
chore: remove mention of experimental/unstable from app-server README…
owenlin0 Dec 2, 2025
72b95db
feat: intercept apply_patch for unified_exec (#7446)
jif-oai Dec 2, 2025
c2f8c4e
fix: add ts number annotations for app-server v2 types (#7492)
owenlin0 Dec 2, 2025
2222cab
feat: ignore standard directories (#7483)
jif-oai Dec 2, 2025
349734e
Fix: track only untracked paths in ghost snapshots (#7470)
lionel-oai Dec 2, 2025
21ad1c1
Use non-blocking mutex (#7467)
aibrahim-oai Dec 2, 2025
127e307
Show token used when context window is unknown (#7497)
aibrahim-oai Dec 2, 2025
1d09ac8
execpolicy helpers (#7032)
zhao-oai Dec 2, 2025
f6a7da4
fix: drop lock once it is no longer needed (#7500)
bolinfest Dec 2, 2025
5ebdc9a
persisting credits if new snapshot does not contain credit info (#7490)
zhao-oai Dec 2, 2025
77c4571
fix: remove serde(flatten) annotation for TurnError (#7499)
owenlin0 Dec 2, 2025
4d4778e
Trim `history.jsonl` when `history.max_bytes` is set (#6242)
terror Dec 2, 2025
ec93b6d
chore: make create_approval_requirement_for_command an async fn (#7501)
bolinfest Dec 2, 2025
58e1e57
refactor: tui.rs extract several pieces (#7461)
joshka-oai Dec 2, 2025
6b5b9a6
feat: support --version flag for @openai/codex-shell-tool-mcp (#7504)
bolinfest Dec 2, 2025
ad9eeeb
Ensure duplicate-length paste placeholders stay distinct (#7431)
joshua1s Dec 3, 2025
ee191db
fix: path resolution bug in npx (#7134)
bolinfest Dec 3, 2025
1ef1fe6
improve resume performance (#7303)
aibrahim-oai Dec 3, 2025
06e7667
fix: inline function marked as dead code (#7508)
bolinfest Dec 3, 2025
dbec741
Update device code auth strings. (#7498)
mzeng-openai Dec 3, 2025
f3989f6
fix(unified_exec): use platform default shell when unified_exec shell…
448523760 Dec 3, 2025
00ef9d3
fix(tui) Support image paste from clipboard on native Windows (#7514)
dylan-hurd-oai Dec 3, 2025
42ae738
feat: model warning in case of apply patch (#7494)
jif-oai Dec 3, 2025
51307ea
feat: retroactive image placeholder to prevent poisoning (#6774)
jif-oai Dec 3, 2025
45f3250
feat: codex tool tips (#7440)
jif-oai Dec 3, 2025
9b3251f
seatbelt: allow openpty() (#7507)
nornagon-openai Dec 3, 2025
4785344
feat: support list mcp servers in app server (#7505)
shijie-oai Dec 3, 2025
c3e4f92
chore: remove bun env var detect (#7534)
shijie-oai Dec 3, 2025
343aa35
chore: update app-server README (#7510)
owenlin0 Dec 3, 2025
844de19
chore: delete unused TodoList item from app-server (#7537)
owenlin0 Dec 3, 2025
3ef76ff
chore: conversation_id -> thread_id in app-server feedback/upload (#7…
owenlin0 Dec 3, 2025
2ad980a
add slash resume (#7302)
aibrahim-oai Dec 3, 2025
8d0f023
chore: update unified exec sandboxing detection (#7541)
jif-oai Dec 3, 2025
9e6c2c1
feat: add pycache to excluded directories (#7545)
jif-oai Dec 3, 2025
7f068cf
fix: main (#7546)
jif-oai Dec 3, 2025
7150432
Migrate model preset (#7542)
aibrahim-oai Dec 3, 2025
3395ebd
fix(tui): limit user shell output by screen lines (#7448)
muyuanjin Dec 3, 2025
de08c73
feat(tui): map Ctrl-P/N to arrow navigation in textarea (#7530)
aofei Dec 3, 2025
231ff19
[app-server] fix: add thread_id to turn/plan/updated (#7553)
owenlin0 Dec 3, 2025
9a50a04
feat: Support listing and selecting skills via $ or /skills (#7506)
xl-openai Dec 3, 2025
1cfc967
fix: Features should be immutable over the lifetime of a session/thre…
bolinfest Dec 4, 2025
70b9779
fix: wrap long exec lines in transcript overlay (#7481)
muyuanjin Dec 4, 2025
00cc00e
Introduce `ModelsManager` and migrate `app-server` to use it. (#7552)
aibrahim-oai Dec 4, 2025
8da91d1
Migrate `tui` to use models manager (#7555)
aibrahim-oai Dec 4, 2025
cee37a3
Migrate model family to models manager (#7565)
aibrahim-oai Dec 4, 2025
3e6cd56
[app-server] make `file_path` for config optional (#7560)
celia-oai Dec 4, 2025
edd98dd
Remove test from #7481 that doesn't add much value (#7558)
etraut-openai Dec 4, 2025
67e67e0
Migrate codex max (#7566)
aibrahim-oai Dec 4, 2025
ccdeb9d
use markdown for rendering tips (#7557)
nornagon-openai Dec 4, 2025
e925a38
whitelist command prefix integration in core and tui (#7033)
zhao-oai Dec 4, 2025
3d35cb4
Refactor execpolicy fallback evaluation (#7544)
zhao-oai Dec 4, 2025
871f44f
Add Enterprise plan to ChatGPT login description (#6918)
ae-openai Dec 4, 2025
8766669
execpolicy tui flow (#7543)
zhao-oai Dec 4, 2025
8f4e00e
chore: tool tip for /prompt (#7591)
jif-oai Dec 4, 2025
c4e18f1
Slightly better status display for unified exec (#7563)
pakrym-oai Dec 4, 2025
f1b7cdc
Use shared check sandboxing (#7547)
pakrym-oai Dec 4, 2025
1b2509f
chore: default warning messages to true (#7588)
jif-oai Dec 4, 2025
36edb41
fix: release session ID when not used (#7592)
jif-oai Dec 4, 2025
404a1ea
Update execpolicy.md (#7595)
zhao-oai Dec 4, 2025
2b5d0b2
feat: update sandbox policy to allow TTY (#7580)
jif-oai Dec 4, 2025
291b54a
chore: review in read-only (#7593)
jif-oai Dec 4, 2025
37c3602
chore(core): test apply_patch_cli on Windows (#7554)
dylan-hurd-oai Dec 4, 2025
ce0b38c
FIX: WSL Paste image does not work (#6793)
Waxime64 Dec 4, 2025
9b20555
remove `model_family` from `config (#7571)
aibrahim-oai Dec 4, 2025
7dfc3a4
add --branch to codex cloud exec (#7602)
nornagon-openai Dec 4, 2025
6e6338a
Inline response recording and remove process_items indirection (#7310)
aibrahim-oai Dec 4, 2025
903b777
Add models endpoint (#7603)
aibrahim-oai Dec 4, 2025
342c084
fix(app-server): add duration_ms to McpToolCallItem (#7605)
owenlin0 Dec 4, 2025
e8f6d65
fix(app-server): add will_retry to ErrorNotification (#7611)
owenlin0 Dec 4, 2025
28dcdb5
Fix `handle_shortcut_overlay_key` for cross-platform consistency (#7583)
448523760 Dec 4, 2025
0972cd9
chore: refactor to move Arc<RwLock> concern outside exec_policy_for (…
bolinfest Dec 4, 2025
073a853
chore(apply-patch) scenarios for e2e testing (#7567)
dylan-hurd-oai Dec 5, 2025
6736d18
fix: sse for chat (#7594)
jif-oai Dec 5, 2025
7b359c9
Call models endpoint in models manager (#7616)
aibrahim-oai Dec 5, 2025
4c9762d
fix typo (#7626)
zhao-oai Dec 5, 2025
b1c918d
feat: exec policy integration in shell mcp (#7609)
zhao-oai Dec 5, 2025
b8eab7c
fix: taking plan type from usage endpoint instead of thru auth token …
zhao-oai Dec 5, 2025
e91bb6b
fix: ignore ghost snapshots in token consumption (#7638)
jif-oai Dec 5, 2025
5f80ad6
fix: chat completion with parallel tool call (#7634)
jif-oai Dec 5, 2025
d08efb1
Wire `with_remote_overrides` to construct model families (#7621)
aibrahim-oai Dec 5, 2025
a8cbbdb
feat(core) Add login to shell_command tool (#6846)
dylan-hurd-oai Dec 5, 2025
f48d880
Fix unified_exec on windows (#7620)
pakrym Dec 5, 2025
2e4a402
cloud: status, diff, apply (#7614)
nornagon-openai Dec 5, 2025
952d6c9
Move justfile to repository root (#7652)
joshka-oai Dec 6, 2025
6c9c563
fix(apply-patch): preserve CRLF line endings on Windows (#7515)
dylan-hurd-oai Dec 6, 2025
93f61db
Also load skills from repo root. (#7645)
xl-openai Dec 6, 2025
f521d29
fix: OTEL HTTP exporter panic and mTLS support (#7651)
asm89 Dec 6, 2025
8209080
fix: exec-server stream was erroring for large requests (#7654)
bolinfest Dec 6, 2025
315b1e9
docs: fix documentation of rmcp client flag (#7665)
JaySabva Dec 6, 2025
9a74228
docs: Remove experimental_use_rmcp_client from config (#7672)
JaySabva Dec 7, 2025
b2cb05d
docs: point dev checks to just (#7673)
voctory Dec 7, 2025
7386e2e
fix: clear out space on ubuntu runners before running Rust tests (#7678)
bolinfest Dec 7, 2025
3c087e8
fix: ensure macOS CI runners for Rust tests include recent Homebrew f…
bolinfest Dec 7, 2025
3c3d3d1
fix: add integration tests for codex-exec-mcp-server with execpolicy …
bolinfest Dec 7, 2025
53a486f
Add remote models feature flag (#7648)
aibrahim-oai Dec 7, 2025
acb8ed4
Fixed regression for chat endpoint; missing tools name caused litellm…
etraut-openai Dec 8, 2025
57ba9fa
fix(doc): TOML otel exporter example — multi-line inline table is inv…
448523760 Dec 8, 2025
9892365
fix: refine the warning message and docs for deprecated tools config …
gameofby Dec 8, 2025
056c2ee
fix: update URLs to use HTTPS in model migration prompts (#7705)
rakleed Dec 8, 2025
701f42b
chore(deps): bump ts-rs from 11.0.1 to 11.1.0 in /codex-rs (#7713)
dependabot[bot] Dec 8, 2025
7a6d609
chore(deps): bump derive_more from 2.0.1 to 2.1.0 in /codex-rs (#7714)
dependabot[bot] Dec 8, 2025
9fa9e3e
chore(deps): bump insta from 1.43.2 to 1.44.3 in /codex-rs (#7715)
dependabot[bot] Dec 8, 2025
5e888ab
chore(deps): bump wildmatch from 2.5.0 to 2.6.1 in /codex-rs (#7716)
dependabot[bot] Dec 8, 2025
cfda44b
fix wrap behavior for long commands (#7655)
zhao-oai Dec 8, 2025
c2bdee0
proposing execpolicy amendment when prompting due to sandbox denial (…
zhao-oai Dec 8, 2025
da983c1
feat: add is-mutating detection for shell command handler (#7729)
jif-oai Dec 8, 2025
585f75b
Make the device auth instructions more clear. (#7745)
mzeng-openai Dec 8, 2025
28e7218
feat: linux codesign with sigstore (#7674)
shijie-oai Dec 8, 2025
4a3e9ed
fix(tui): add missing Ctrl+n/Ctrl+p support to ListSelectionView (#7629)
pppp606 Dec 8, 2025
222a491
load models from disk and set a ttl and etag (#7722)
aibrahim-oai Dec 8, 2025
0a32aca
updating app server types to support execpoilcy amendment (#7747)
zhao-oai Dec 8, 2025
71c75e6
Enhance model picker (#7709)
aibrahim-oai Dec 8, 2025
a9f566a
Restore status header after stream recovery (#7660)
joshka-oai Dec 8, 2025
cb45139
Add formatting client version to the `x.x.x` style. (#7711)
aibrahim-oai Dec 8, 2025
badda73
feat: windows codesign with Azure trusted signing (#7675)
shijie-oai Dec 8, 2025
ac5fa6b
Do not emit start/end events for write stdin (#7561)
pakrym-oai Dec 8, 2025
382f047
Remove legacy `ModelInfo` and merge it with `ModelFamily` (#7748)
aibrahim-oai Dec 8, 2025
06704b1
fix: pre-main hardening logic must tolerate non-UTF-8 env vars (#7749)
bolinfest Dec 9, 2025
0f2b589
Revert "feat: windows codesign with Azure trusted signing" (#7753)
shijie-oai Dec 9, 2025
cacfd00
override instructions using `ModelInfo` (#7754)
aibrahim-oai Dec 9, 2025
68505ab
use chatgpt provider for /models (#7756)
aibrahim-oai Dec 9, 2025
933e247
Fix transcript pager page continuity (#7363)
muyuanjin Dec 9, 2025
80140c6
Use codex-max prompt/tools for experimental models. (#7765)
cassirer-openai Dec 9, 2025
6382dc2
chore: enable parallel tc (#7589)
jif-oai Dec 9, 2025
2237b70
Fix Nix cargo output hashes for rmcp and filedescriptor (#7762)
tyleranton Dec 9, 2025
164265b
Vendor ConPtySystem (#7656)
pakrym-oai Dec 9, 2025
a7e3e37
fix: allow sendmsg(2) and recvmsg(2) syscalls in our Linux sandbox (#…
bolinfest Dec 9, 2025
9df70a0
Add vim navigation keys to transcript pager (#7550)
joshka-oai Dec 9, 2025
ac32377
Fix: gracefully error out for unsupported images (#7478)
jobchong Dec 9, 2025
7836aed
feat: shell snapshotting (#7641)
jif-oai Dec 9, 2025
05e546e
fix more typos in execpolicy.md (#7787)
zhao-oai Dec 9, 2025
225a5f7
Add vim-style navigation for CLI option selection (#7784)
brolfe-oai Dec 9, 2025
0c8828c
feat(tui2): add feature-flagged tui2 frontend (#7793)
joshka-oai Dec 10, 2025
fa4cac1
fix: introduce AbsolutePathBuf and resolve relative paths in config.t…
bolinfest Dec 10, 2025
893f526
feat: support mcp in-session login (#7751)
shijie-oai Dec 10, 2025
967d063
parse rg | head a search (#7797)
pakrym-oai Dec 10, 2025
fc42493
Elevated Sandbox 1 (#7788)
iceweasel-oai Dec 10, 2025
42e0817
Revert "Revert "feat: windows codesign with Azure trusted signing"" (…
shijie-oai Dec 10, 2025
f11520f
Revert "feat: windows codesign with Azure trusted signing" (#7804)
shijie-oai Dec 10, 2025
ab9ddcd
Revert "Revert "feat: windows codesign with Azure trusted signing"" (…
shijie-oai Dec 10, 2025
6fa24d6
Express rate limit warning as % remaining (#7795)
gverma-openai Dec 10, 2025
d1c5db5
chore: disable trusted signing pkg cache hit (#7807)
shijie-oai Dec 10, 2025
0ad5498
chore: rework unified exec events (#7775)
jif-oai Dec 10, 2025
463249e
fix: flaky test 2 (#7818)
jif-oai Dec 10, 2025
97b9009
feat: use remote branch for review is local trails (#7813)
jif-oai Dec 10, 2025
e0fb3ca
refactoring with_escalated_permissions to use SandboxPermissions inst…
zhao-oai Dec 10, 2025
c4af707
Removed experimental "command risk assessment" feature (#7799)
etraut-openai Dec 10, 2025
f677d05
fix: flaky tests 3 (#7826)
jif-oai Dec 10, 2025
bd51d1b
fix: Upgrade @modelcontextprotocol/sdk to ^1.24.0 (#7817)
Bronx83 Dec 10, 2025
9f40d6e
fix: remove duplicated parallel FeatureSpec (#7823)
zchee Dec 10, 2025
4b684c5
Remove conversation_id and bring back request ID logging (#7830)
pakrym-oai Dec 10, 2025
8a71f8b
[app-server] Make sure that config writes preserve comments & order o…
celia-oai Dec 10, 2025
cb9a189
make `model` optional in config (#7769)
aibrahim-oai Dec 10, 2025
1a58096
fix: Prevent slash command popup from activating on invalid inputs (#…
448523760 Dec 10, 2025
4953b2a
Error when trying to push a release while another release is in progr…
aibrahim-oai Dec 10, 2025
bfb4d57
[app-server-protocol] Add types for config (#7658)
celia-oai Dec 10, 2025
eb2e545
Disable ansi codes in tui log file (#7836)
pakrym-oai Dec 10, 2025
b36ecb6
Inject SKILL.md when it's explicitly mentioned. (#7763)
xl-openai Dec 10, 2025
3216250
Show the default model in model picker (#7838)
aibrahim-oai Dec 10, 2025
90f262e
feat(tui2): copy tui crate and normalize snapshots (#7833)
joshka-oai Dec 10, 2025
e2559ab
fix: thread/list returning fewer than the requested amount due to fil…
JaviSoto Dec 10, 2025
87f5b69
fix: ensure accept_elicitation_for_prompt_rule() test passes locally …
bolinfest Dec 10, 2025
c136780
fixing typo in execpolicy docs (#7847)
zhao-oai Dec 11, 2025
7cabe54
[app-server] make app server not throw error when login id is not fou…
celia-oai Dec 11, 2025
038767a
fix: add a hopefully-temporary sleep to reduce test flakiness (#7848)
bolinfest Dec 11, 2025
ce19dbb
[app-server] Update readme to include mcp endpoints (#7850)
celia-oai Dec 11, 2025
3fc8b28
fix: remove inaccurate `#[allow(dead_code)]` marker (#7851)
bolinfest Dec 11, 2025
0572500
Fixed regression that broke fuzzy matching for slash commands (#7859)
etraut-openai Dec 11, 2025
83aac0f
Only show Worked for after the final assistant message (#7854)
pakrym-oai Dec 11, 2025
13c0919
Elevated Sandbox 2 (#7792)
iceweasel-oai Dec 11, 2025
dca7f4c
fix(stuff) (#7855)
dylan-hurd-oai Dec 11, 2025
b2280d6
feat: warning for long snapshots (#7870)
jif-oai Dec 11, 2025
29381ba
feat: add shell snapshot for shell command (#7786)
jif-oai Dec 11, 2025
d4554ce
fix: flaky tests 4 (#7875)
jif-oai Dec 11, 2025
238ce7d
feat: robin (#7882)
aibrahim-oai Dec 11, 2025
bb8fdb2
Revert "Only show Worked for after the final assistant message" (#7884)
pakrym-oai Dec 11, 2025
703bf12
fix: dont quit on 'q' in onboarding ApiKeyEntry state (#7869)
sayan-oai Dec 11, 2025
8c4c6a1
fix: drop stale filedescriptor output hash for nix (#7865)
tyleranton Dec 11, 2025
0af7e4a
fix: omit reasoning summary when ReasoningSummary::None (#7845)
apanasenko-oai Dec 11, 2025
b9fb3b8
Chore: limit find family visability (#7891)
aibrahim-oai Dec 11, 2025
c4f3f56
remove release script (#7885)
aibrahim-oai Dec 11, 2025
3e81ed4
Elevated Sandbox 3 (#7809)
iceweasel-oai Dec 11, 2025
b7fa7ca
Update Model Info (#7853)
aibrahim-oai Dec 11, 2025
bacbe87
Update RMCP client config guidance (#7895)
nornagon-openai Dec 11, 2025
e0d7ac5
fix: policy/*.codexpolicy -> rules/*.rules (#7888)
bolinfest Dec 11, 2025
36610d9
Fix toasts on Windows under WSL 2 (#7137)
dank-openai Dec 11, 2025
43e6e75
Added deprecation notice for "chat" wire_api (#7897)
etraut-openai Dec 11, 2025
95f7d37
Fix misleading 'maximize' high effort description on xhigh models (#7…
voctory Dec 12, 2025
c787e9d
Make migration screen dynamic (#7896)
aibrahim-oai Dec 12, 2025
9e91e49
Revert "fix(apply-patch): preserve CRLF line endings on Windows" (#7903)
dylan-hurd-oai Dec 12, 2025
163a7e3
feat: use latest disk value for mcp servers status (#7907)
shijie-oai Dec 12, 2025
190fa9e
docs: clarify xhigh reasoning effort on gpt-5.2 (#7911)
voctory Dec 12, 2025
4f37f11
chore: sync upstream/main (2025-12-12)
Dec 12, 2025
c4451df
fix: followups after upstream sync
Dec 12, 2025
7780e4d
fix: clippy/warnings for CI
Dec 12, 2025
0302e96
fix: restore codex toolset and test binaries
Dec 12, 2025
0291748
fix: remove deprecated cargo_bin uses
Dec 12, 2025
303268c
fix: allow deprecated cargo_bin on linux tests
Dec 12, 2025
d77bc5e
fix: update tool spec tests and exec delta raw
Dec 12, 2025
72af39a
fix: sdk opencode close + reverie clippy
Dec 12, 2025
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 .codespellignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
iTerm
psuedo
44 changes: 44 additions & 0 deletions .github/actions/linux-code-sign/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: linux-code-sign
description: Sign Linux artifacts with cosign.
inputs:
target:
description: Target triple for the artifacts to sign.
required: true
artifacts-dir:
description: Absolute path to the directory containing built binaries to sign.
required: true

runs:
using: composite
steps:
- name: Install cosign
uses: sigstore/cosign-installer@v3.7.0

- name: Cosign Linux artifacts
shell: bash
env:
COSIGN_EXPERIMENTAL: "1"
COSIGN_YES: "true"
COSIGN_OIDC_CLIENT_ID: "sigstore"
COSIGN_OIDC_ISSUER: "https://oauth2.sigstore.dev/auth"
run: |
set -euo pipefail

dest="${{ inputs.artifacts-dir }}"
if [[ ! -d "$dest" ]]; then
echo "Destination $dest does not exist"
exit 1
fi

for binary in codex codex-responses-api-proxy; do
artifact="${dest}/${binary}"
if [[ ! -f "$artifact" ]]; then
echo "Binary $artifact not found"
exit 1
fi

cosign sign-blob \
--yes \
--bundle "${artifact}.sigstore" \
"$artifact"
done
55 changes: 55 additions & 0 deletions .github/actions/windows-code-sign/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: windows-code-sign
description: Sign Windows binaries with Azure Trusted Signing.
inputs:
target:
description: Target triple for the artifacts to sign.
required: true
client-id:
description: Azure Trusted Signing client ID.
required: true
tenant-id:
description: Azure tenant ID for Trusted Signing.
required: true
subscription-id:
description: Azure subscription ID for Trusted Signing.
required: true
endpoint:
description: Azure Trusted Signing endpoint.
required: true
account-name:
description: Azure Trusted Signing account name.
required: true
certificate-profile-name:
description: Certificate profile name for signing.
required: true

runs:
using: composite
steps:
- name: Azure login for Trusted Signing (OIDC)
uses: azure/login@v2
with:
client-id: ${{ inputs.client-id }}
tenant-id: ${{ inputs.tenant-id }}
subscription-id: ${{ inputs.subscription-id }}

- name: Sign Windows binaries with Azure Trusted Signing
uses: azure/trusted-signing-action@v0
with:
endpoint: ${{ inputs.endpoint }}
trusted-signing-account-name: ${{ inputs.account-name }}
certificate-profile-name: ${{ inputs.certificate-profile-name }}
exclude-environment-credential: true
exclude-workload-identity-credential: true
exclude-managed-identity-credential: true
exclude-shared-token-cache-credential: true
exclude-visual-studio-credential: true
exclude-visual-studio-code-credential: true
exclude-azure-cli-credential: false
exclude-azure-powershell-credential: true
exclude-azure-developer-cli-credential: true
exclude-interactive-browser-credential: true
cache-dependencies: false
files: |
${{ github.workspace }}/codex-rs/target/${{ inputs.target }}/release/codex.exe
${{ github.workspace }}/codex-rs/target/${{ inputs.target }}/release/codex-responses-api-proxy.exe
5 changes: 1 addition & 4 deletions .github/workflows/cla.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,4 @@ jobs:
path-to-document: https://github.com/openai/codex/blob/main/docs/CLA.md
path-to-signatures: signatures/cla.json
branch: cla-signatures
allowlist: |
codex
dependabot
dependabot[bot]
allowlist: codex,dependabot,dependabot[bot],github-actions[bot]
43 changes: 43 additions & 0 deletions .github/workflows/rust-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,49 @@ jobs:

steps:
- uses: actions/checkout@v6

# We have been running out of space when running this job on Linux for
# x86_64-unknown-linux-gnu, so remove some unnecessary dependencies.
- name: Remove unnecessary dependencies to save space
if: ${{ startsWith(matrix.runner, 'ubuntu') }}
shell: bash
run: |
set -euo pipefail
sudo rm -rf \
/usr/local/lib/android \
/usr/share/dotnet \
/usr/local/share/boost \
/usr/local/lib/node_modules \
/opt/ghc
sudo apt-get remove -y docker.io docker-compose podman buildah

# Ensure brew includes this fix so that brew's shellenv.sh loads
# cleanly in the Codex sandbox (it is frequently eval'd via .zprofile
# for Brew users, including the macOS runners on GitHub):
#
# https://github.com/Homebrew/brew/pull/21157
#
# Once brew 5.0.5 is released and is the default on macOS runners, this
# step can be removed.
- name: Upgrade brew
if: ${{ startsWith(matrix.runner, 'macos') }}
shell: bash
run: |
set -euo pipefail
brew --version
git -C "$(brew --repo)" fetch origin
git -C "$(brew --repo)" checkout main
git -C "$(brew --repo)" reset --hard origin/main
export HOMEBREW_UPDATE_TO_TAG=0
brew update
brew upgrade
brew --version

# Some integration tests rely on DotSlash being installed.
# See https://github.com/openai/codex/pull/7617.
- name: Install DotSlash
uses: facebook/install-dotslash@v2

- uses: dtolnay/rust-toolchain@1.90
with:
targets: ${{ matrix.target }}
Expand Down
32 changes: 32 additions & 0 deletions .github/workflows/rust-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ jobs:
name: Build - ${{ matrix.runner }} - ${{ matrix.target }}
runs-on: ${{ matrix.runner }}
timeout-minutes: 30
permissions:
contents: read
id-token: write
defaults:
run:
working-directory: codex-rs
Expand Down Expand Up @@ -100,6 +103,25 @@ jobs:
- name: Cargo build
run: cargo build --target ${{ matrix.target }} --release --bin codex --bin codex-responses-api-proxy

- if: ${{ contains(matrix.target, 'linux') }}
name: Cosign Linux artifacts
uses: ./.github/actions/linux-code-sign
with:
target: ${{ matrix.target }}
artifacts-dir: ${{ github.workspace }}/codex-rs/target/${{ matrix.target }}/release

- if: ${{ contains(matrix.target, 'windows') }}
name: Sign Windows binaries with Azure Trusted Signing
uses: ./.github/actions/windows-code-sign
with:
target: ${{ matrix.target }}
client-id: ${{ secrets.AZURE_TRUSTED_SIGNING_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TRUSTED_SIGNING_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_TRUSTED_SIGNING_SUBSCRIPTION_ID }}
endpoint: ${{ secrets.AZURE_TRUSTED_SIGNING_ENDPOINT }}
account-name: ${{ secrets.AZURE_TRUSTED_SIGNING_ACCOUNT_NAME }}
certificate-profile-name: ${{ secrets.AZURE_TRUSTED_SIGNING_CERTIFICATE_PROFILE_NAME }}

- if: ${{ matrix.runner == 'macos-15-xlarge' }}
name: Configure Apple code signing
shell: bash
Expand Down Expand Up @@ -283,6 +305,11 @@ jobs:
cp target/${{ matrix.target }}/release/codex-responses-api-proxy "$dest/codex-responses-api-proxy-${{ matrix.target }}"
fi

if [[ "${{ matrix.target }}" == *linux* ]]; then
cp target/${{ matrix.target }}/release/codex.sigstore "$dest/codex-${{ matrix.target }}.sigstore"
cp target/${{ matrix.target }}/release/codex-responses-api-proxy.sigstore "$dest/codex-responses-api-proxy-${{ matrix.target }}.sigstore"
fi

- if: ${{ matrix.runner == 'windows-11-arm' }}
name: Install zstd
shell: powershell
Expand Down Expand Up @@ -321,6 +348,11 @@ jobs:
continue
fi

# Don't try to compress signature bundles.
if [[ "$base" == *.sigstore ]]; then
continue
fi

# Create per-binary tar.gz
tar -C "$dest" -czf "$dest/${base}.tar.gz" "$base"

Expand Down
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ The `sdk/native` package provides Node.js bindings to the Rust engine via N‑AP
### Test assertions

- Tests should use pretty_assertions::assert_eq for clearer diffs. Import this at the top of the test module if it isn't already.
- Prefer deep equals comparisons whenever possible. Perform `assert_eq!()` on entire objects, rather than individual fields.

### Integration tests (core)

Expand Down
8 changes: 0 additions & 8 deletions codex-cli/bin/codex.js
Original file line number Diff line number Diff line change
Expand Up @@ -95,14 +95,6 @@ function detectPackageManager() {
return "bun";
}

if (
process.env.BUN_INSTALL ||
process.env.BUN_INSTALL_GLOBAL_DIR ||
process.env.BUN_INSTALL_BIN_DIR
) {
return "bun";
}

return userAgent ? "npm" : null;
}

Expand Down
Loading
Loading