Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
8b80a0a
Fix SDK documentation: replace 'file diffs' with 'file change notific…
0xRaduan Nov 9, 2025
c07461e
fix(seatbelt): Allow reading hw.physicalcpu (#6421)
tekumara Nov 9, 2025
f19d76c
feat(native): add sdk/native and minimal core/exec shims; CI runs nat…
ScriptedAlchemy Nov 9, 2025
4db757c
sdk/native: always build N-API before Jest; unify TS test runner; fix…
Nov 10, 2025
9a17b4f
fix(core): clear session_id when exec command completes
Nov 10, 2025
adf3622
Merge branch 'main' into chore-ci-rust-pin-G9rgS
Nov 10, 2025
03d10d4
core(unified_exec): omit session_id for completed exec_command; only …
Nov 10, 2025
572a77a
chore: sync core tool registry and native sdk
Nov 10, 2025
a6d7db4
Restore native tool bridge and approvals
Nov 10, 2025
b131166
docs: add NAPI concepts documentation
Nov 10, 2025
8c8f631
Prune generated artifacts and streamline CI
Nov 10, 2025
c9c4e10
Tighten native build flags
Nov 10, 2025
08fb841
chore: remove sccache configuration from CI and package scripts
Nov 10, 2025
fe5d9dc
Remove sccache-specific tuning
Nov 10, 2025
a7de96c
fix: add empty .codespellignore file for CI
Nov 10, 2025
953fdee
fix: remove sccache from cargo config
Nov 10, 2025
1bd60df
fix(ci): install rustfmt and clippy for SDK workflow
Nov 10, 2025
d0766d9
fix: recreate .codespellignore for CI
Nov 10, 2025
98b570d
feat(sdk): add token count and raw event types
Nov 10, 2025
ad72fa9
chore(ci): restore sccache configuration to match upstream
Nov 10, 2025
2113bce
feat(ci): add sccache to SDK workflow
Nov 10, 2025
9bb2fba
ci(sdk): remove sccache usage and increase timeout to 20m
Nov 10, 2025
875ac55
ci(sdk): align cargo cache with rust-ci (split home/target, restore/s…
Nov 10, 2025
d9979bb
ci(sdk): increase timeout to 30 minutes
Nov 10, 2025
f86d492
fix(ci): increase SDK workflow timeout and restore sccache env vars
Nov 10, 2025
9786990
ci(sdk): install and configure sccache like rust-ci; add restore/save…
Nov 10, 2025
f1efaf2
ci(sdk): align cache keys with rust-ci pattern for better cache sharing
Nov 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .codespellignore
Original file line number Diff line number Diff line change
@@ -1,2 +0,0 @@
iTerm
trys
4 changes: 2 additions & 2 deletions .codespellrc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[codespell]
# Ref: https://github.com/codespell-project/codespell#using-a-config-file
skip = .git*,vendor,*-lock.yaml,*.lock,.codespellrc,.codespellignore,*test.ts,*.jsonl,frame*.txt,*/target/*,*/node_modules/*,*/.pnpm-store/*,*/dist/*,*/dist-examples/*,*/.yarn/*,package-lock.json,*.map
skip = .git*,vendor,*-lock.yaml,*.lock,.codespellrc,*test.ts,*.jsonl,frame*.txt,**/node_modules/**,**/dist/**,**/target/**,sdk/native/dist-examples_ignored/**,sdk/native/dist-examples/**,sdk/native/package-lock.json,**/.venv/**
check-hidden = true
ignore-regex = ^\s*"image/\S+": ".*|\b(afterAll)\b
ignore-words-list = ratatui,ser,trys
ignore-words-list = ratatui,ser,iTerm,trys,vEw
1 change: 1 addition & 0 deletions .github/workflows/rust-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,7 @@ jobs:
run:
working-directory: codex-rs
env:
# Speed up repeated builds across CI runs by caching compiled objects.
RUSTC_WRAPPER: sccache
CARGO_INCREMENTAL: "0"
SCCACHE_CACHE_SIZE: 10G
Expand Down
123 changes: 100 additions & 23 deletions .github/workflows/sdk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ on:
branches: [main]
pull_request: {}

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
sdks:
runs-on: ubuntu-latest
timeout-minutes: 20
timeout-minutes: 30
env:
RUSTC_WRAPPER: sccache
CARGO_INCREMENTAL: "0"
SCCACHE_CACHE_SIZE: 10G
steps:
- name: Checkout repository
uses: actions/checkout@v5
Expand All @@ -23,27 +23,68 @@ jobs:
run_install: false

- name: Setup Node.js
uses: actions/setup-node@v6
uses: actions/setup-node@v5
with:
node-version: 22
cache: pnpm

- uses: dtolnay/rust-toolchain@1.91
- uses: dtolnay/rust-toolchain@1.90
with:
components: rustfmt, clippy

- name: Cache cargo
uses: actions/cache@v4
# Install and configure sccache (align with rust-ci)
- name: Install sccache
uses: taiki-e/install-action@e797ba6a25dbd8669057e123b02812e16138589e # v2
with:
tool: sccache@0.7.5

- name: Configure sccache backend
shell: bash
run: |
set -euo pipefail
if [[ -n "${ACTIONS_CACHE_URL:-}" && -n "${ACTIONS_RUNTIME_TOKEN:-}" ]]; then
echo "SCCACHE_GHA_ENABLED=true" >> "$GITHUB_ENV"
echo "Using sccache GitHub backend"
else
echo "SCCACHE_GHA_ENABLED=false" >> "$GITHUB_ENV"
echo "SCCACHE_DIR=${{ github.workspace }}/.sccache" >> "$GITHUB_ENV"
echo "Using sccache local disk + actions/cache fallback"
fi

- name: Restore sccache cache (fallback)
if: ${{ env.SCCACHE_GHA_ENABLED != 'true' }}
id: cache_sccache_restore
uses: actions/cache/restore@v4
with:
path: ${{ github.workspace }}/.sccache/
key: sccache-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}-${{ github.run_id }}
restore-keys: |
sccache-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}-
sccache-${{ runner.os }}-

# Match rust-ci: split cargo home vs target, so large target dir is separable.
- name: Restore cargo home cache
id: cache_cargo_home_restore
uses: actions/cache/restore@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
codex-rs/target/
key: sdk-cargo-${{ runner.os }}-${{ hashFiles('codex-rs/Cargo.lock') }}
key: cargo-home-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('codex-rs/rust-toolchain.toml') }}
restore-keys: |
sdk-cargo-${{ runner.os }}-
cargo-home-${{ runner.os }}-

- name: Restore cargo target cache
id: cache_cargo_target_restore
uses: actions/cache/restore@v4
with:
path: codex-rs/target/
key: cargo-target-${{ runner.os }}-${{ hashFiles('codex-rs/Cargo.lock') }}-${{ github.run_id }}
restore-keys: |
cargo-target-${{ runner.os }}-${{ hashFiles('codex-rs/Cargo.lock') }}-
cargo-target-${{ runner.os }}-

- name: build codex
run: cargo build --bin codex
Expand All @@ -52,20 +93,56 @@ jobs:
- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Build TypeScript SDK packages
- name: Build SDK packages
run: pnpm -r --filter ./sdk/typescript run build

- name: Build native SDK package
run: pnpm -r --filter ./sdk/native run build

- name: Lint TypeScript SDK packages
- name: Lint SDK packages
run: pnpm -r --filter ./sdk/typescript run lint

- name: Lint native SDK package
run: pnpm -r --filter ./sdk/native run lint

- name: Test TypeScript SDK packages
- name: Test SDK packages
run: pnpm -r --filter ./sdk/typescript run test

- name: Test native SDK package
run: pnpm -r --filter ./sdk/native run test
- name: Install native SDK dependencies
working-directory: sdk/native
run: pnpm install

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

- name: Test native SDK
working-directory: sdk/native
run: pnpm test

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

- name: sccache stats
if: always()
continue-on-error: true
run: sccache --show-stats || true

- name: Save cargo home cache
if: always() && !cancelled() && steps.cache_cargo_home_restore.outputs.cache-hit != 'true'
continue-on-error: true
uses: actions/cache/save@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
key: cargo-home-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('codex-rs/rust-toolchain.toml') }}

- name: Save cargo target cache
if: always() && !cancelled() && steps.cache_cargo_target_restore.outputs.cache-hit != 'true'
continue-on-error: true
uses: actions/cache/save@v4
with:
path: codex-rs/target/
key: cargo-target-${{ runner.os }}-${{ hashFiles('codex-rs/Cargo.lock') }}-${{ github.run_id }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ node_modules
# build
dist/
dist-examples/
sdk/native/dist-examples/
build/
out/
storybook-static/
Expand Down
Loading
Loading