Commit Graph
728 Commits
Author SHA1 Message Date
GitHub Action eb1d13e946 chore(release): 0.6.97 [skip ci] 2026-05-01 13:07:31 +00:00
James Peter 100cb4e3bf Merge branch 'main' of https://github.com/just-every/code 2026-05-01 22:16:13 +10:00
James Peter 2a674e9de5 Merge upstream/main: refresh upstream history 2026-05-01 20:51:06 +10:00
Dylan HurdandGitHub 56bcbe63f3 chore(cli) deprecate --full-auto (#20133)
## Summary
Starts the process of getting rid of `--full-auto`, with some
concessions:
1. Fully removes the command from the tui, since it just resolves to the
default permissions there, and encourages users to use the one-time
trust flow if they're not in a trusted repo.
2. Marks the command as deprecated in `codex exec`, in case users are
actively relying on this. We'll remove in an upcoming n+X release.
3. Cleans up some of the `codex sandbox` cli logic, to keep supporting
legacy sandbox policies for now.

This isn't the cleanest setup, but I think it is worthwhile to warn
users for one release before hard-removing it.

## Testing 
- [x] Updated unit tests
2026-04-29 04:41:30 +00:00
GitHub Action f29e83c18f chore(release): 0.6.96 [skip ci] 2026-04-26 03:30:59 +00:00
GitHub Action 8529f414a1 chore(release): 0.6.95 [skip ci] 2026-04-25 13:25:52 +00:00
James Peter 434b6c6273 Merge origin/main: adopt release metadata updates 2026-04-25 22:01:14 +10:00
James Peter 8d39ffcb77 Merge upstream/main: keep local docs and workflows 2026-04-25 09:29:31 +10:00
mcgrew-oaiandGitHub 256bef793e Harden package-manager install policy (#19163)
## Summary

This PR hardens package-manager usage across the repo to reduce
dependency supply-chain risk. It also removes the stale `codex-cli`
Docker path, which was already broken on `main`, instead of keeping a
bitrotted container workflow alive.

## What changed

- Updated pnpm package manager pins and workspace install settings.
- Removed stale `codex-cli` Docker assets instead of trying to keep a
broken local container path alive.
- Added uv settings and lockfiles for the Python SDK packages.
- Updated Python SDK setup docs to use `uv sync`.

## Why

This is primarily a security hardening change. It reduces
package-install and supply-chain risk by ensuring dependency installs go
through pinned package managers, committed lockfiles, release-age
settings, and reviewed build-script controls.

For `codex-cli`, the right follow-up was to remove the local Docker path
rather than keep patching it:

- `codex-cli/Dockerfile` installed `codex.tgz` with `npm install -g`,
which bypassed the repo lockfile and age-gated pnpm settings.
- The local `codex-cli/scripts/build_container.sh` helper was already
broken on `main`: it called `pnpm run build`, but
`codex-cli/package.json` does not define a `build` script.
- The container path itself had bitrotted enough that keeping it would
require extra packaging-specific behavior that was not otherwise needed
by the repo.

## Gaps addressed

- Global npm installs bypassed the repo lockfile in Docker and CLI
reinstall paths, including `codex-cli/Dockerfile` and
`codex-cli/bin/codex.js`.
- CI and Docker pnpm installs used `--frozen-lockfile`, but the repo was
missing stricter pnpm workspace settings for dependency build scripts.
- Python SDK projects had `pyproject.toml` metadata but no committed
`uv.lock` coverage or uv age/index settings in `sdk/python` and
`sdk/python-runtime`.
- The secure devcontainer install path used npm/global install behavior
without a local locked package-manager boundary.
- The local `codex-cli` Docker helper was already broken on `main`, so
this PR removes that stale Docker path instead of preserving a broken
surface.
- pnpm was already pinned, but not to the current repo-wide pnpm version
target.

## Verification

- `pnpm install --frozen-lockfile`
- `.devcontainer/codex-install`: `pnpm install --prod --frozen-lockfile`
- `.devcontainer/codex-install`: `./node_modules/.bin/codex --version`
- `sdk/python`: `uv lock --check`, `uv sync --locked --all-extras
--dry-run`, `uv build`
- `sdk/python-runtime`: `uv lock --check`, `uv sync --locked --dry-run`,
`uv build --wheel`
- `pnpm -r --filter ./sdk/typescript run build`
- `pnpm -r --filter ./sdk/typescript run lint`
- `pnpm -r --filter ./sdk/typescript run test`
- `node --check codex-cli/bin/codex.js`
- `docker build -f .devcontainer/Dockerfile.secure -t codex-secure-test
.`
- `cargo build -p codex-cli`
- repo-wide package-manager audit
2026-04-24 14:36:19 -04:00
GitHub Action b5e321ee3d chore(release): 0.6.94 [skip ci] 2026-04-22 05:42:24 +00:00
GitHub Action db230f5900 chore(release): 0.6.93 [skip ci] 2026-04-17 06:39:52 +00:00
Eric TrautandGitHub 63f8b7d627 Remove obsolete codex-cli README (#17096)
Problem: codex-cli/README.md is obsolete and confusing to keep around.

Solution: Delete codex-cli/README.md so the stale README is no longer
present in the repository.
2026-04-08 00:18:23 -07:00
GitHub Action 253f17185b chore(release): 0.6.92 [skip ci] 2026-04-05 07:16:56 +00:00
GitHub Action 3508b0921c chore(release): 0.6.91 [skip ci] 2026-04-03 04:11:00 +00:00
GitHub Action 0c61b23afd chore(release): 0.6.90 [skip ci] 2026-03-31 03:41:55 +00:00
GitHub Action a9aa813fd0 chore(release): 0.6.89 [skip ci] 2026-03-31 01:33:59 +00:00
GitHub Action f844de78da chore(release): 0.6.88 [skip ci] 2026-03-31 00:31:08 +00:00
GitHub Action 6a5c2dd2e0 chore(release): 0.6.87 [skip ci] 2026-03-30 23:40:12 +00:00
GitHub Action 0d7a842d3d chore(release): 0.6.86 [skip ci] 2026-03-30 23:02:17 +00:00
GitHub Action 467d9175a0 chore(release): 0.6.85 [skip ci] 2026-03-24 23:18:07 +00:00
GitHub Action 19079fbdaf chore(release): 0.6.84 [skip ci] 2026-03-24 06:04:25 +00:00
GitHub Action dd5d190289 chore(release): 0.6.83 [skip ci] 2026-03-23 09:47:22 +00:00
GitHub Action 60be946cec chore(release): 0.6.82 [skip ci] 2026-03-23 09:08:27 +00:00
GitHub Action 956e8b1136 chore(release): 0.6.81 [skip ci] 2026-03-23 08:11:43 +00:00
GitHub Action 996f6e3be5 chore(release): 0.6.80 [skip ci] 2026-03-23 07:33:27 +00:00
GitHub Action 4eed6013b5 chore(release): 0.6.79 [skip ci] 2026-03-08 15:32:37 +00:00
GitHub Action c6e54b48e5 chore(release): 0.6.78 [skip ci] 2026-03-08 14:41:51 +00:00
GitHub Action 7ba19a3237 chore(release): 0.6.77 [skip ci] 2026-03-07 15:15:53 +00:00
GitHub Action 05547fbf2e chore(release): 0.6.76 [skip ci] 2026-03-07 13:03:16 +00:00
GitHub Action bdafc15524 chore(release): 0.6.75 [skip ci] 2026-03-06 01:22:10 +00:00
GitHub Action 2e04db2c4c chore(release): 0.6.74 [skip ci] 2026-02-27 05:34:35 +00:00
GitHub Action 4e7ced4d56 chore(release): 0.6.73 [skip ci] 2026-02-27 04:38:55 +00:00
GitHub Action 8de7fb12d5 chore(release): 0.6.72 [skip ci] 2026-02-27 01:45:38 +00:00
GitHub Action 6ccec41e5f chore(release): 0.6.71 [skip ci] 2026-02-26 22:34:40 +00:00
mjr-openaiandGitHub 7fa4879e9c Update pnpm versions to fix cve-2026-24842 (#12009)
Update pnpm versions to resolve CVE-2026-24842
2026-02-19 14:27:55 -08:00
Eric TrautandGitHub 1d01829a30 Update vendored rg to the latest stable version (15.1) (#12007)
Addresses #12002
2026-02-17 09:40:10 -08:00
GitHub Action ae5225a40f chore(release): 0.6.70 [skip ci] 2026-02-16 05:16:41 +00:00
GitHub Action e5d82773c4 chore(release): 0.6.69 [skip ci] 2026-02-15 07:07:30 +00:00
GitHub Action 6e8cac3a26 chore(release): 0.6.68 [skip ci] 2026-02-14 22:09:17 +00:00
GitHub Action 0a8abf10b0 chore(release): 0.6.67 [skip ci] 2026-02-13 05:33:34 +00:00
GitHub Action 8101a54366 chore(release): 0.6.66 [skip ci] 2026-02-12 23:34:16 +00:00
pakrym-oaiandGitHub 1e81259c9a Make codex-sdk depend on openai/codex (#11503)
Do not bundle all binaries inside the SDK as it makes the package huge.
Instead depend on openai/codex
2026-02-11 16:20:10 -08:00
GitHub Action f34e55b20b chore(release): 0.6.65 [skip ci] 2026-02-11 19:02:36 +00:00
GitHub Action 2f3dde7110 chore(release): 0.6.64 [skip ci] 2026-02-11 11:18:47 +00:00
GitHub Action b13c7d2d05 chore(release): 0.6.63 [skip ci] 2026-02-11 06:19:17 +00:00
James Peter 4a08f7702d Merge upstream/main: keep fork workflows and scripts 2026-02-11 14:24:12 +10:00
GitHub Action c2b35cb450 chore(release): 0.6.62 [skip ci] 2026-02-11 03:57:21 +00:00
Michael BolinandGitHub e8efc0b715 # Use @openai/codex dist-tags for platform binaries instead of separate package names (#11339)
https://github.com/openai/codex/pull/11318 introduced logic to publish
platform artifacts as separate npm packages (for example,
`@openai/codex-darwin-arm64`, `@openai/codex-linux-x64`, etc.). That
requires provisioning and maintaining multiple package entries in npm,
which we want to avoid.

We still need to keep the package-size mitigation (platform-specific
payloads), but we want that layout to live under a single npm package
namespace (`@openai/codex`) using dist-tags.

We also need to preserve pre-release workflows where users install
`@openai/codex@alpha` and get platform-appropriate binaries.

Additionally, we want GitHub Release assets to group Codex npm tarballs
together, so platform tarballs should follow the same `codex-npm-*`
filename prefix as the main Codex tarball.

## Release Strategy (New Scheme)

We publish **one npm package name for Codex binaries** (`@openai/codex`)
and use **dist-tags** to select platform-specific payloads. This avoids
creating separate platform package names while keeping the package size
split by platform.

### What gets published

#### Mainline release (`x.y.z`)

- `@openai/codex@latest` (meta package)
- `@openai/codex@darwin-arm64`
- `@openai/codex@darwin-x64`
- `@openai/codex@linux-arm64`
- `@openai/codex@linux-x64`
- `@openai/codex@win32-arm64`
- `@openai/codex@win32-x64`
- `@openai/codex-responses-api-proxy@latest`
- `@openai/codex-sdk@latest`

#### Alpha release (`x.y.z-alpha.N`)

- `@openai/codex@alpha` (meta package)
- `@openai/codex@alpha-darwin-arm64`
- `@openai/codex@alpha-darwin-x64`
- `@openai/codex@alpha-linux-arm64`
- `@openai/codex@alpha-linux-x64`
- `@openai/codex@alpha-win32-arm64`
- `@openai/codex@alpha-win32-x64`
- `@openai/codex-responses-api-proxy@alpha`
- `@openai/codex-sdk@alpha`

As an example, the `package.json` for `@openai/codex@alpha` (using
`0.99.0-alpha.17` as the `version`) would be:

```
{
  "name": "@openai/codex",
  "version": "0.99.0-alpha.17",
  "license": "Apache-2.0",
  "bin": {
    "codex": "bin/codex.js"
  },
  "type": "module",
  "engines": {
    "node": ">=16"
  },
  "files": [
    "bin"
  ],
  "repository": {
    "type": "git",
    "url": "git+https://github.com/openai/codex.git",
    "directory": "codex-cli"
  },
  "packageManager": "[email protected].2+sha512.41872f037ad22f7348e3b1debbaf7e867cfd448f2726d9cf74c08f19507c31d2c8e7a11525b983febc2df640b5438dee6023ebb1f84ed43cc2d654d2bc326264",
  "optionalDependencies": {
    "@openai/codex-linux-x64": "npm:@openai/[email protected].0-alpha.17-linux-x64",
    "@openai/codex-linux-arm64": "npm:@openai/[email protected].0-alpha.17-linux-arm64",
    "@openai/codex-darwin-x64": "npm:@openai/[email protected].0-alpha.17-darwin-x64",
    "@openai/codex-darwin-arm64": "npm:@openai/[email protected].0-alpha.17-darwin-arm64",
    "@openai/codex-win32-x64": "npm:@openai/[email protected].0-alpha.17-win32-x64",
    "@openai/codex-win32-arm64": "npm:@openai/[email protected].0-alpha.17-win32-arm64"
  }
}
```

Note that the keys in `optionalDependencies` have "clean" names, but the
values have the tag embedded.

### Important note

**Note:** Because we never created the new platform package names on npm
(for example,
`@openai/codex-darwin-arm64`) since #11318 landed, there are no extra
npm packages to clean up.

## What changed

### 1. Stage platform tarballs as `@openai/codex` with platform-specific
versions

File: `codex-cli/scripts/build_npm_package.py`

- Added `CODEX_NPM_NAME = "@openai/codex"` and platform metadata
`npm_tag` values:
- `darwin-arm64`, `darwin-x64`, `linux-arm64`, `linux-x64`,
`win32-arm64`, `win32-x64`
- For platform package staging (`codex-<platform>` inputs), switched
generated `package.json` from:
  - `name = @openai/codex-<platform>`
  to:
  - `name = @openai/codex`
- Added `compute_platform_package_version(version, platform_tag)` so
platform tarballs have unique
versions (`<release-version>-<platform-tag>`), which is required because
npm forbids re-publishing
  the same `name@version`.

### 2. Point meta package optional dependencies at dist-tags on
`@openai/codex`

File: `codex-cli/scripts/build_npm_package.py`

- Updated `optionalDependencies` generation for the main `codex` package
to use npm alias syntax:
- key remains alias package name (for example,
`@openai/codex-darwin-arm64`) so runtime lookup behavior is unchanged
  - value now resolves to `@openai/codex` by dist-tag
- Stable releases emit tags like `npm:@openai/codex@darwin-arm64`.
- Alpha releases (`x.y.z-alpha.N`) emit tags like
`npm:@openai/codex@alpha-darwin-arm64`.

### 3. Publish with per-tarball dist-tags in release CI

File: `.github/workflows/rust-release.yml`

- Reworked npm publish logic to derive the publish tag per tarball
filename:
  - platform tarballs publish with `<platform>` tags for stable releases
- platform tarballs publish with `alpha-<platform>` tags for alpha
releases
- top-level tarballs (`codex`, `codex-responses-api-proxy`, `codex-sdk`)
continue using
the existing channel tag policy (`latest` implicit for stable, `alpha`
for alpha)
- Added fail-fast behavior for unexpected tarball names to avoid silent
mispublishes.

### 4. Normalize Codex platform tarball filenames for GitHub Release
grouping

Files: `scripts/stage_npm_packages.py`,
`.github/workflows/rust-release.yml`

- Renamed staged platform tarball filenames from:
  - `codex-linux-<arch>-npm-<version>.tgz`
  - `codex-darwin-<arch>-npm-<version>.tgz`
  - `codex-win32-<arch>-npm-<version>.tgz`
- To:
  - `codex-npm-linux-<arch>-<version>.tgz`
  - `codex-npm-darwin-<arch>-<version>.tgz`
  - `codex-npm-win32-<arch>-<version>.tgz`

This keeps all Codex npm artifacts grouped under a common `codex-npm-`
prefix in GitHub Releases.

### 5. Documentation update

File: `codex-cli/scripts/README.md`

- Updated staging docs to clarify that platform-native variants are
published as dist-tagged
  `@openai/codex` artifacts rather than separate npm package names.

## Resulting behavior

- Mainline release:
  - `@openai/codex@latest` resolves the meta package
- meta package optional dependencies resolve
`@openai/codex@<platform-tag>`
- Alpha release:
  - users can continue installing `@openai/codex@alpha`
- alpha meta package optional dependencies resolve
`@openai/codex@alpha-<platform-tag>`
- Release assets:
- Codex npm tarballs share `codex-npm-` prefix for cleaner grouping in
GitHub Releases

This preserves platform-specific payload distribution while avoiding
separate npm package names and
improves release-asset discoverability.

## Validation notes

- Verified staged `package.json` output for stable and alpha meta
packages includes expected alias targets.
- Verified staged platform package manifests are `name=@openai/codex`
with unique platform-suffixed versions.
- Verified publish tag derivation maps renamed platform tarballs to
expected stable and alpha dist-tags.
2026-02-10 10:33:47 -08:00
jif-oaiandGitHub 4c210ab702 chore: split NPM packages (#11318) 2026-02-10 14:49:53 +00:00
GitHub Action 271e89c73d chore(release): 0.6.61 [skip ci] 2026-02-10 10:00:15 +00:00