Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
203 commits
Select commit Hold shift + click to select a range
94dfb21
Refactor truncation helpers into its own file (#6683)
aibrahim-oai Nov 15, 2025
0b28e72
Improve compact (#6692)
aibrahim-oai Nov 15, 2025
3f1c4b9
Tighten panic on double truncation (#6701)
aibrahim-oai Nov 15, 2025
326c1e0
Fix documentation errors for Custom Prompts named arguments and add c…
Sayeem3051 Nov 15, 2025
f828cd2
fix: resolve Windows MCP server execution for script-based tools (#3828)
25621 Nov 16, 2025
fa5f6e7
Revert "tmp: drop sccache for windows (#6673)" (#6751)
etraut-openai Nov 17, 2025
702238f
Fix AltGr/backslash input on Windows Codex terminal (#6720)
Akrelion45 Nov 17, 2025
de1768d
Fix: Claude models return incomplete responses due to empty finish_re…
dulikaifazr Nov 17, 2025
e70c52a
chore(deps): bump actions/github-script from 7 to 8 (#6755)
dependabot[bot] Nov 17, 2025
a52cf4d
Exempt the "codex" github user from signing the CLA (#6724)
etraut-openai Nov 17, 2025
5860481
Fix FreeBSD/OpenBSD builds: target-specific keyring features and BSD …
jxy Nov 17, 2025
497fb4a
fix(core) serialize shell_command (#6744)
dylan-hurd-oai Nov 17, 2025
7c8d333
feat: placeholder for image that can't be decoded to prevent 400 (#6773)
jif-oai Nov 17, 2025
98a90a3
tmp: drop sccache for windows 2 (#6775)
jif-oai Nov 17, 2025
2c665fb
nit: personal git ignore (#6787)
jif-oai Nov 17, 2025
a941ae7
feat: execpolicy v2 (#6467)
zhao-oai Nov 17, 2025
ae2a084
chore: delete chatwidget::tests::binary_size_transcript_snapshot tui …
owenlin0 Nov 17, 2025
03ffe4d
core/tui: non-blocking MCP startup (#6334)
nornagon-openai Nov 17, 2025
842a1b7
[app-server] add events to readme (#6690)
celia-oai Nov 17, 2025
837bc98
LM Studio OSS Support (#2312)
rugvedS07 Nov 17, 2025
03a6e85
fix: annotate all app server v2 types with camelCase (#6791)
owenlin0 Nov 17, 2025
daf77b8
chore(core) Update shell instructions (#6679)
dylan-hurd-oai Nov 17, 2025
ab2e749
core: add a feature to disable the shell tool (#6481)
nornagon-openai Nov 17, 2025
8bebe86
Fix TUI issues with Alt-Gr on Windows (#6799)
etraut-openai Nov 17, 2025
e032d33
move cap_sid file into ~/.codex so the sandbox cannot overwrite it (#…
iceweasel-oai Nov 17, 2025
4000e26
background rate limits fetch (#6789)
zhao-oai Nov 18, 2025
cecbd5b
[app-server] feat: add v2 command execution approval flow (#6758)
owenlin0 Nov 18, 2025
7ab4548
execpolicy2 extension (#6627)
zhao-oai Nov 18, 2025
8465f1f
Demote function call payload log to debug to avoid noisy error-level …
cassirer-openai Nov 18, 2025
ddcc60a
Update defaults to gpt-5.1 (#6652)
aibrahim-oai Nov 18, 2025
2b7378a
chore(core) Add shell_serialization coverage (#6810)
dylan-hurd-oai Nov 18, 2025
28ebe1c
fix(windows) shell_command on windows, minor parsing (#6811)
dylan-hurd-oai Nov 18, 2025
f3d4e21
:bug: fix(rmcp-client): refresh OAuth tokens using expires_at (#6574)
LaelLuo Nov 18, 2025
fc55fd7
feat: git branch tooling (#6831)
jif-oai Nov 18, 2025
c20df79
nit: mark ghost commit as stable (#6833)
jif-oai Nov 18, 2025
0eb2e6f
nit: app server (#6830)
jif-oai Nov 18, 2025
838531d
feat: remote compaction (#6795)
jif-oai Nov 18, 2025
f5d9939
feat: enable parallel tool calls (#6796)
jif-oai Nov 18, 2025
e9e644a
fixing localshell tool calls (#6823)
zhao-oai Nov 18, 2025
b035c60
Update faq.md section on supported models (#6832)
adpena Nov 18, 2025
3de8790
Add the utility to truncate by tokens (#6746)
aibrahim-oai Nov 18, 2025
4bada5a
Prompt to turn on windows sandbox when auto mode selected. (#6618)
iceweasel-oai Nov 18, 2025
29ca89c
chore(config) enable shell_command (#6843)
dylan-hurd-oai Nov 18, 2025
8ddae8c
feat: review in app server (#6613)
jif-oai Nov 18, 2025
f7a9210
[codex][otel] support mtls configuration (#6228)
apanasenko-oai Nov 18, 2025
0bf857b
Fix typo in config.md for MCP server (#6845)
simister Nov 18, 2025
c56d0c1
fix: local compaction (#6844)
jif-oai Nov 18, 2025
ab30453
Improved runtime of `generated_ts_has_no_optional_nullable_fields` te…
etraut-openai Nov 18, 2025
b3a824a
[app-server-test-client] feat: auto approve command (#6852)
owenlin0 Nov 18, 2025
9275e93
Fix tests so they don't emit an extraneous `config.toml` in the sourc…
etraut-openai Nov 18, 2025
c1391b9
exec-server (#6630)
nornagon-openai Nov 19, 2025
4fb714f
updating codex backend models (#6855)
zhao-oai Nov 19, 2025
cf57320
windows sandbox: support multiple workspace roots (#6854)
iceweasel-oai Nov 19, 2025
b952bd2
smoketest for browser vuln, rough draft of Windows security doc (#6822)
iceweasel-oai Nov 19, 2025
526eb3f
tui: add branch to 'codex resume', filter by cwd (#6232)
nornagon-openai Nov 19, 2025
4288091
update credit status details (#6862)
zhao-oai Nov 19, 2025
b395dc1
[app-server] introduce `turn/completed` v2 event (#6800)
celia-oai Nov 19, 2025
cac0a6a
Remote compaction on by-default (#6866)
pakrym-oai Nov 19, 2025
7508e4f
chore: update windows sandbox docs (#6872)
ae-openai Nov 19, 2025
a75321a
fix: add more fields to ThreadStartResponse and ThreadResumeResponse …
bolinfest Nov 19, 2025
7e6316d
feat: tweak windows sandbox strings (#6875)
ae-openai Nov 19, 2025
030d1d5
chore: update windows docs url (#6877)
ae-openai Nov 19, 2025
7930630
fix: typos in model picker (#6859)
aibrahim-oai Nov 19, 2025
84458f1
fix(tui) ghost snapshot notifications (#6881)
dylan-hurd-oai Nov 19, 2025
7e0e675
chore(core) arcticfox (#6876)
dylan-hurd-oai Nov 19, 2025
ee0484a
shell_command returns freeform output (#6860)
pakrym-oai Nov 19, 2025
0440a3f
flaky-unified_exec_formats_large_output_summary (#6884)
aibrahim-oai Nov 19, 2025
75f38f1
Run remote auto compaction (#6879)
pakrym-oai Nov 19, 2025
efebc62
Move shell to use `truncate_text` (#6842)
aibrahim-oai Nov 19, 2025
7348865
fix label (#6892)
tibo-openai Nov 19, 2025
956d3bf
feat: warning large commits (#6838)
jif-oai Nov 19, 2025
10d571f
nit: stable (#6895)
jif-oai Nov 19, 2025
4985a7a
fix: parallel tool call instruction injection (#6893)
jif-oai Nov 19, 2025
44c7478
chore(app-server) world-writable windows notification (#6880)
dylan-hurd-oai Nov 19, 2025
3e9e1d9
chore: consolidate compaction token usage (#6894)
jif-oai Nov 19, 2025
15b5eb3
fix(core) Support changing /approvals before conversation (#6836)
dylan-hurd-oai Nov 19, 2025
cfc57e1
nit: useless log to debug (#6898)
jif-oai Nov 19, 2025
1924500
[app-server] populate thread>turns>items on thread/resume (#6848)
owenlin0 Nov 19, 2025
d5dfba2
feat: arcticfox in the wild (#6906)
aibrahim-oai Nov 19, 2025
d62cab9
fix: don't truncate at new lines (#6907)
aibrahim-oai Nov 19, 2025
f1d6767
fix: ordering (#6909)
jif-oai Nov 19, 2025
8976551
Fix ordering 2 (#6910)
jif-oai Nov 19, 2025
87716e7
NITs (#6911)
jif-oai Nov 19, 2025
91a1d20
use another prompt (#6912)
jif-oai Nov 19, 2025
b3d3204
have world_writable_warning_details accept cwd as a param (#6913)
iceweasel-oai Nov 19, 2025
72af589
storing credits (#6858)
zhao-oai Nov 19, 2025
64ae9aa
Keep gpt-5.1-codex the default (#6922)
pakrym-oai Nov 19, 2025
20982d5
fix(app-server) move windows world writable warning (#6916)
dylan-hurd-oai Nov 19, 2025
c2ec477
[core] add optional status_code to error events (#6865)
celia-oai Nov 19, 2025
056c8f8
fix: prepare ExecPolicy in exec-server for execpolicy2 cutover (#6888)
bolinfest Nov 19, 2025
2fde03b
stop over-reporting world-writable directories (#6936)
iceweasel-oai Nov 19, 2025
692989c
fix(context left after review): review footer context after `/review`…
guidedways Nov 19, 2025
a6597a9
Fix/correct reasoning display (#6749)
lionelchg Nov 19, 2025
13d378f
chore: refactor exec-server to prepare it for standalone MCP use (#6944)
bolinfest Nov 20, 2025
b00a7cf
fix(shell) fallback shells (#6948)
dylan-hurd-oai Nov 20, 2025
65c13f1
execpolicy2 core integration (#6641)
zhao-oai Nov 20, 2025
92e3046
Single pass truncation (#6914)
pakrym-oai Nov 20, 2025
74a7567
update execpolicy quickstart readme (#6952)
zhao-oai Nov 20, 2025
6d67b8b
stop model migration screen after first time. (#6954)
aibrahim-oai Nov 20, 2025
72a1453
Revert "[core] add optional status_code to error events (#6865)" (#6955)
celia-oai Nov 20, 2025
fb9849e
migrating execpolicy -> execpolicy-legacy and execpolicy2 -> execpoli…
zhao-oai Nov 20, 2025
d6c30ed
[app-server] feat: v2 apply_patch approval flow (#6760)
owenlin0 Nov 20, 2025
e8af41d
fix: clean up elicitation used by exec-server (#6958)
bolinfest Nov 20, 2025
54e6e4a
fix: when displaying execv, show file instead of arg0 (#6966)
bolinfest Nov 20, 2025
b5dd189
Allow unified_exec to early exit (if the process terminates before yi…
hanson-openai Nov 20, 2025
888c6dd
fix: command formatting for user commands (#7002)
jif-oai Nov 20, 2025
d909048
Added feature switch to disable animations in TUI (#6870)
etraut-openai Nov 20, 2025
30ca894
Always fallback to real shell (#6953)
pakrym-oai Nov 20, 2025
397279d
Fix: Improve text encoding for shell output in VSCode preview (#6178)…
LIHUA919 Nov 20, 2025
52d0ec4
Delete tiktoken-rs (#7018)
pakrym-oai Nov 20, 2025
33a6cc6
fix(cli): correct mcp add usage order (#6827)
kyuheon-kr Nov 20, 2025
e150798
Bumped number of fuzzy search results from 8 to 20 (#7013)
lionelchg Nov 20, 2025
2c79308
tui: centralize markdown styling and make inline code cyan (#7023)
nornagon-openai Nov 20, 2025
e4257f4
codex-exec: allow resume --last to read prompt #6717 (#6719)
dkhokhlov Nov 20, 2025
a8a6cbd
fix: route feedback issue links by category (#6840)
weillercarvalho Nov 20, 2025
c30ca0d
increasing user shell timeout to 1 hour (#7025)
zhao-oai Nov 20, 2025
fe7a3f0
execpolicycheck command in codex cli (#7012)
zhao-oai Nov 20, 2025
856f97f
Delete shell_command feature (#7024)
pakrym-oai Nov 20, 2025
44fa06a
fix flaky test: `approval_matrix_covers_all_modes` (#7028)
aibrahim-oai Nov 20, 2025
54ee302
Attempt to fix `unified_exec_formats_large_output_summary` flakiness …
aibrahim-oai Nov 20, 2025
3f92ad4
add deny ACEs for world writable dirs (#7022)
iceweasel-oai Nov 20, 2025
9bce050
[app-server & core] introduce new codex error code and v2 app-server …
celia-oai Nov 20, 2025
0fbcdd7
core: make shell behavior portable on FreeBSD (#7039)
jxy Nov 21, 2025
9be3100
migrate `collect_tool_identifiers_for_model` to `test_codex` (#7041)
aibrahim-oai Nov 21, 2025
f56d1dc
feat: update process_exec_tool_call() to take a cancellation token (#…
bolinfest Nov 21, 2025
1388e99
fix flaky `tool_call_output_exceeds_limit_truncated_chars_limit` (#7043)
aibrahim-oai Nov 21, 2025
8e5f38c
feat: waiting for an elicitation should not count against a shell too…
bolinfest Nov 21, 2025
7e2165f
[app-server] update doc with codex error info (#6941)
celia-oai Nov 21, 2025
1822ffe
feat(tui): default reasoning selection to medium (#7040)
dylan-hurd-oai Nov 21, 2025
3f73e2c
fix(app-server) remove www warning (#7046)
dylan-hurd-oai Nov 21, 2025
830ab4c
Support full powershell paths in is_safe_command (#7055)
pakrym-oai Nov 21, 2025
767b66f
Migrate coverage to shell_command (#7042)
pakrym-oai Nov 21, 2025
ab5972d
Support all types of search actions (#7061)
pakrym-oai Nov 21, 2025
bacdc00
Fixed two tests that can fail in some environments that have global g…
etraut-openai Nov 21, 2025
c9e149f
fix: read `max_output_tokens` param from config (#4139)
shallowclouds Nov 21, 2025
b315b22
Fixed the deduplicator github action (#7070)
etraut-openai Nov 21, 2025
f4af6e3
Windows Sandbox: support network_access and exclude_tmpdir_env_var (#…
iceweasel-oai Nov 21, 2025
bce030d
Revert "fix: read `max_output_tokens` param from config" (#7088)
jif-oai Nov 21, 2025
d363a09
feat: codex-shell-tool-mcp (#7005)
bolinfest Nov 21, 2025
2ae1f81
[app-server] feat: add Declined status for command exec (#7101)
owenlin0 Nov 21, 2025
af65666
chore: drop model_max_output_tokens (#7100)
jif-oai Nov 21, 2025
40d14c0
fix: clear out duplicate entries for `bash` in the GitHub release (#7…
bolinfest Nov 21, 2025
0e05164
fix(scripts) next_minor_version should reset patch number (#7050)
dylan-hurd-oai Nov 21, 2025
aa4e0d8
[app-server] feat: expose gitInfo/cwd/etc. on Thread (#7060)
owenlin0 Nov 21, 2025
8ecaad9
feat: Add exp model to experiment with the tools (#7115)
aibrahim-oai Nov 21, 2025
d5f661c
enable unified exec for experiments (#7118)
aibrahim-oai Nov 21, 2025
a0434bb
[app-server] doc: approvals (#7105)
owenlin0 Nov 21, 2025
3bdcbc7
Windows: flag some invocations that launch browsers/URLs as dangerous…
iceweasel-oai Nov 21, 2025
e52cc38
Use use_model (#7121)
pakrym-oai Nov 21, 2025
e8ef6d3
feat: support login as an option on shell-tool-mcp (#7120)
bolinfest Nov 21, 2025
3ea33a0
fix(tui): Fail when stdin is not a terminal (#6382)
joshka-oai Nov 21, 2025
7561a6a
support MCP elicitations (#6947)
nornagon-openai Nov 21, 2025
67975ed
refactor: inline sandbox type lookup in process_exec_tool_call (#7122)
bolinfest Nov 21, 2025
87b2117
bypass sandbox for policy approved commands (#7110)
zhao-oai Nov 21, 2025
af63e6e
fix: start publishing @openai/codex-shell-tool-mcp to npm (#7123)
bolinfest Nov 21, 2025
c6f68c9
feat: declare server capability in shell-tool-mcp (#7112)
bolinfest Nov 22, 2025
529eb4f
move execpolicy quickstart (#7127)
zhao-oai Nov 22, 2025
b519267
Account for encrypted reasoning for auto compaction (#7113)
aibrahim-oai Nov 22, 2025
be3f475
merge-solver-cli: auto-start merge if none
Nov 23, 2025
100cb46
Shrink coordinator snapshot to avoid context overflow
Nov 23, 2025
42bacae
Add verbose logging and model selection tracing to agent workflow
Nov 23, 2025
1db9b29
Add upstream-alignment guidance to merge solver agents
Nov 23, 2025
7a82561
Refine extension strategy: allow minimal hooks in codex-rs
Nov 23, 2025
68d402e
Use gpt-5.1-codex-max for all merge solver agents
Nov 23, 2025
fd891f3
Add reasoningEffort support to CodexProvider and agents
Nov 23, 2025
7b0eec2
Add dynamic reasoning effort selection for worker agents
Nov 24, 2025
0c9268a
Fail fast when auto-starting merge fails
Nov 24, 2025
0fac06f
Add gpt-5.1-codex-max model support to native bindings
Nov 24, 2025
18f1026
Reduce token usage by truncating conflict excerpts more aggressively
Nov 24, 2025
97a03fa
Fix merge-solver to handle conflicts during initial merge start
Nov 24, 2025
b1d24bd
Improve LSP integration for merge conflict resolution
Nov 24, 2025
d9b758d
Export LSP format functions from SDK main index
Nov 24, 2025
4eff397
Add config file prioritization and high-reasoning for merge solver
Nov 24, 2025
dc1c12c
Implement supervisor-based OpenCode delegation with LSP suppression
Nov 24, 2025
43b9ee3
Add conversation logging and fix LSP diagnostics integration
Nov 24, 2025
e4fa196
Wire approval callback without casts and finalize dual-agent OpenCode
Nov 24, 2025
72821e5
fix: supervisor agent should output plain text for plans, JSON only f…
Nov 24, 2025
2b94f63
fix: correct model selection for dual-agent workflow
Nov 24, 2025
03fb9a8
Fix OpenCode verification to check file content instead of Git index
Nov 24, 2025
2b55229
Fix merge resolution: Stage resolved files automatically
Nov 24, 2025
4edb54f
Fix merge solver: Add OpenCode cleanup, supervisor fallback, and bett…
Nov 24, 2025
dbe48ef
Fix export error: Use Codex instead of non-existent CodexAgent
Nov 24, 2025
3e3cea0
Reduce merge solver diff context to minimal (1 line)
Nov 24, 2025
3ba8a94
Remove pre-computed diffs from merge conflict prompts
Nov 24, 2025
10aee9c
Merge remote-tracking branch 'upstream/main'
Nov 24, 2025
e7ca142
Refactor native SDK and filter CI JSON output
Nov 24, 2025
d1c0265
Wire external tools into registry build
Nov 24, 2025
6091b4a
Restore read_file tool, xhigh parsing, and background event UI
Nov 24, 2025
9a1fd65
Stabilize native jest runs and cleanup runtime state
Nov 24, 2025
b425e84
Silence napi JsObject deprecation to unblock CI
Nov 24, 2025
0bbd9c2
Remove napi compat-mode and clean up exports
Nov 24, 2025
6ec70ed
Install cross targets in CI to fix missing core errors
Nov 24, 2025
db252b1
Fix tool specs and speed up native sdk ci
Nov 24, 2025
5e612a7
CI: reclaim disk space on linux test runners
Nov 24, 2025
955e0bc
Fix unified_exec test regex to accept variable newlines
Nov 24, 2025
88da499
CI: free disk before lint/test on Linux
Nov 24, 2025
0ff16f8
Fix unified exec large output regex and remove python dependency
Nov 24, 2025
20b0bad
Fix unified exec large-output test timing and clippy lint
Nov 24, 2025
9e2a560
Handle out-of-order raw response notifications
Nov 24, 2025
155e8e6
Stabilize Windows test flakiness
Nov 24, 2025
3984116
Increase codex CLI stack to fix Windows tests
Nov 24, 2025
3f1d248
Make ci:json match full CI and emit toon report
Nov 24, 2025
133696b
ci:json include readme checks and prettier
Nov 24, 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: 1 addition & 1 deletion .github/codex/home/config.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
model = "gpt-5"
model = "gpt-5.1"

# Consider setting [mcp_servers] here!
4 changes: 3 additions & 1 deletion .github/workflows/cla.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,6 @@ jobs:
path-to-document: https://github.com/openai/codex/blob/main/docs/CLA.md
path-to-signatures: signatures/cla.json
branch: cla-signatures
allowlist: dependabot[bot]
allowlist: |
codex
dependabot[bot]
2 changes: 1 addition & 1 deletion .github/workflows/close-stale-contributor-prs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Close inactive PRs from contributors
uses: actions/github-script@v7
uses: actions/github-script@v8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/issue-deduplicator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ jobs:
with:
openai-api-key: ${{ secrets.CODEX_OPENAI_API_KEY }}
allow-users: "*"
model: gpt-5
prompt: |
You are an assistant that triages new GitHub issues by identifying potential duplicates.
Expand Down
68 changes: 38 additions & 30 deletions .github/workflows/rust-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,6 @@ jobs:
env:
# Speed up repeated builds across CI runs by caching compiled objects (non-Windows).
USE_SCCACHE: ${{ startsWith(matrix.runner, 'windows') && 'false' || 'true' }}
RUSTC_WRAPPER: sccache
CARGO_INCREMENTAL: "0"
SCCACHE_CACHE_SIZE: 10G

Expand Down Expand Up @@ -149,36 +148,33 @@ jobs:

steps:
- uses: actions/checkout@v5
- name: Disable sccache on Windows
if: ${{ env.USE_SCCACHE == 'false' }}
shell: pwsh
run: "echo 'RUSTC_WRAPPER=' >> $env:GITHUB_ENV"
- uses: dtolnay/rust-toolchain@1.90
with:
targets: ${{ matrix.target }}
components: clippy

# Explicitly ensure the stdlib for the requested target is installed.
# Newer rustup releases on macOS ended up syncing the default channel
# without pulling the cross target, which then caused `can't find crate
# for core` failures. Running `rustup target add` here is idempotent and
# fixes both macOS cross builds and the linux-musl runners.
- name: rustup target add
- name: Ensure rust target std installed
run: rustup target add ${{ matrix.target }}

- name: Free disk space (Linux runners)
if: ${{ startsWith(matrix.runner, 'ubuntu') }}
shell: bash
run: |
set -euxo pipefail
sudo rm -rf /usr/local/lib/android /opt/ghc /usr/share/dotnet /opt/hostedtoolcache/CodeQL || true
df -h
# Explicit cache restore: split cargo home vs target, so we can
# avoid caching the large target dir on the gnu-dev job.
- name: Restore cargo home cache
id: cache_cargo_home_restore
uses: actions/cache/restore@v4
continue-on-error: true
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
key: cargo-home-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('codex-rs/Cargo.lock') }}-${{ hashFiles('codex-rs/rust-toolchain.toml') }}
key: cargo-home-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('codex-rs/rust-toolchain.toml') }}
restore-keys: |
cargo-home-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-
Expand All @@ -204,14 +200,18 @@ jobs:
echo "Using sccache local disk + actions/cache fallback"
fi
- name: Enable sccache wrapper
if: ${{ env.USE_SCCACHE == 'true' }}
shell: bash
run: echo "RUSTC_WRAPPER=sccache" >> "$GITHUB_ENV"

- name: Restore sccache cache (fallback)
if: ${{ env.USE_SCCACHE == 'true' && env.SCCACHE_GHA_ENABLED != 'true' }}
id: cache_sccache_restore
uses: actions/cache/restore@v4
continue-on-error: true
with:
path: ${{ github.workspace }}/.sccache/
key: sccache-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('codex-rs/Cargo.lock') }}-${{ github.run_id }}
key: sccache-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('**/Cargo.lock') }}-${{ github.run_id }}
restore-keys: |
sccache-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('**/Cargo.lock') }}-
sccache-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-
Expand Down Expand Up @@ -288,15 +288,15 @@ jobs:
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
key: cargo-home-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('codex-rs/Cargo.lock') }}-${{ hashFiles('codex-rs/rust-toolchain.toml') }}
key: cargo-home-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('codex-rs/rust-toolchain.toml') }}

- name: Save sccache cache (fallback)
if: always() && !cancelled() && env.USE_SCCACHE == 'true' && env.SCCACHE_GHA_ENABLED != 'true'
continue-on-error: true
uses: actions/cache/save@v4
with:
path: ${{ github.workspace }}/.sccache/
key: sccache-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('codex-rs/Cargo.lock') }}-${{ github.run_id }}
key: sccache-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('**/Cargo.lock') }}-${{ github.run_id }}

- name: sccache stats
if: always() && env.USE_SCCACHE == 'true'
Expand Down Expand Up @@ -345,7 +345,6 @@ jobs:
env:
# Speed up repeated builds across CI runs by caching compiled objects (non-Windows).
USE_SCCACHE: ${{ startsWith(matrix.runner, 'windows') && 'false' || 'true' }}
RUSTC_WRAPPER: sccache
CARGO_INCREMENTAL: "0"
SCCACHE_CACHE_SIZE: 10G

Expand All @@ -371,25 +370,30 @@ jobs:

steps:
- uses: actions/checkout@v5
- name: Disable sccache on Windows
if: ${{ env.USE_SCCACHE == 'false' }}
shell: pwsh
run: "echo 'RUSTC_WRAPPER=' >> $env:GITHUB_ENV"
- uses: dtolnay/rust-toolchain@1.90
with:
targets: ${{ matrix.target }}
- name: Ensure rust target std installed
run: rustup target add ${{ matrix.target }}

- name: Free disk space (Linux runners)
if: ${{ startsWith(matrix.runner, 'ubuntu') }}
shell: bash
run: |
set -euxo pipefail
sudo rm -rf /usr/local/lib/android /opt/ghc /usr/share/dotnet /opt/hostedtoolcache/CodeQL || true
df -h
- name: Restore cargo home cache
id: cache_cargo_home_restore
uses: actions/cache/restore@v4
continue-on-error: true
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
key: cargo-home-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('codex-rs/Cargo.lock') }}-${{ hashFiles('codex-rs/rust-toolchain.toml') }}
key: cargo-home-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('codex-rs/rust-toolchain.toml') }}
restore-keys: |
cargo-home-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-
Expand All @@ -414,16 +418,20 @@ jobs:
echo "Using sccache local disk + actions/cache fallback"
fi
- name: Enable sccache wrapper
if: ${{ env.USE_SCCACHE == 'true' }}
shell: bash
run: echo "RUSTC_WRAPPER=sccache" >> "$GITHUB_ENV"

- name: Restore sccache cache (fallback)
if: ${{ env.USE_SCCACHE == 'true' && env.SCCACHE_GHA_ENABLED != 'true' }}
id: cache_sccache_restore
uses: actions/cache/restore@v4
continue-on-error: true
with:
path: ${{ github.workspace }}/.sccache/
key: sccache-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('codex-rs/Cargo.lock') }}-${{ github.run_id }}
key: sccache-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('**/Cargo.lock') }}-${{ github.run_id }}
restore-keys: |
sccache-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('codex-rs/Cargo.lock') }}-
sccache-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('**/Cargo.lock') }}-
sccache-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-
- uses: taiki-e/install-action@44c6d64aa62cd779e873306675c7a58e86d6d532 # v2
Expand All @@ -448,15 +456,15 @@ jobs:
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
key: cargo-home-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('codex-rs/Cargo.lock') }}-${{ hashFiles('codex-rs/rust-toolchain.toml') }}
key: cargo-home-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('codex-rs/rust-toolchain.toml') }}

- name: Save sccache cache (fallback)
if: always() && !cancelled() && env.USE_SCCACHE == 'true' && env.SCCACHE_GHA_ENABLED != 'true'
continue-on-error: true
uses: actions/cache/save@v4
with:
path: ${{ github.workspace }}/.sccache/
key: sccache-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('codex-rs/Cargo.lock') }}-${{ github.run_id }}
key: sccache-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ hashFiles('**/Cargo.lock') }}-${{ github.run_id }}

- name: sccache stats
if: always() && env.USE_SCCACHE == 'true'
Expand Down
21 changes: 20 additions & 1 deletion .github/workflows/rust-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -371,8 +371,19 @@ jobs:
path: |
codex-rs/dist/${{ matrix.target }}/*
shell-tool-mcp:
name: shell-tool-mcp
needs: tag-check
uses: ./.github/workflows/shell-tool-mcp.yml
with:
release-tag: ${{ github.ref_name }}
publish: true
secrets: inherit

release:
needs: build
needs:
- build
- shell-tool-mcp
name: release
runs-on: ubuntu-latest
permissions:
Expand All @@ -395,6 +406,14 @@ jobs:
- name: List
run: ls -R dist/

# This is a temporary fix: we should modify shell-tool-mcp.yml so these
# files do not end up in dist/ in the first place.
- name: Delete entries from dist/ that should not go in the release
run: |
rm -rf dist/shell-tool-mcp*
ls -R dist/
- name: Define release name
id: release_name
run: |
Expand Down
6 changes: 1 addition & 5 deletions .github/workflows/sdk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -218,17 +218,13 @@ jobs:
cargo-target-${{ runner.os }}-${{ hashFiles('codex-rs/Cargo.lock') }}-
cargo-target-${{ runner.os }}-
- name: build codex
run: cargo build --bin codex
working-directory: codex-rs

- name: Install native SDK dependencies
working-directory: sdk/native
run: pnpm install --frozen-lockfile

- name: Build native SDK
working-directory: sdk/native
run: pnpm run build
run: pnpm run build:ci

- name: Test native SDK
working-directory: sdk/native
Expand Down
48 changes: 48 additions & 0 deletions .github/workflows/shell-tool-mcp-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: shell-tool-mcp CI

on:
push:
paths:
- "shell-tool-mcp/**"
- ".github/workflows/shell-tool-mcp-ci.yml"
- "pnpm-lock.yaml"
- "pnpm-workspace.yaml"
pull_request:
paths:
- "shell-tool-mcp/**"
- ".github/workflows/shell-tool-mcp-ci.yml"
- "pnpm-lock.yaml"
- "pnpm-workspace.yaml"

env:
NODE_VERSION: 22

jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false

- name: Setup Node.js
uses: actions/setup-node@v5
with:
node-version: ${{ env.NODE_VERSION }}
cache: "pnpm"

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Format check
run: pnpm --filter @openai/codex-shell-tool-mcp run format

- name: Run tests
run: pnpm --filter @openai/codex-shell-tool-mcp test

- name: Build
run: pnpm --filter @openai/codex-shell-tool-mcp run build
Loading
Loading