Commit Graph
695 Commits
Author SHA1 Message Date
GitHub Action 49dc4f3723 chore(release): 0.6.74 [skip ci] 2026-02-27 05:34:35 +00:00
GitHub Action 4c48434d1f chore(release): 0.6.73 [skip ci] 2026-02-27 04:38:55 +00:00
GitHub Action 133cecb70b chore(release): 0.6.72 [skip ci] 2026-02-27 01:45:38 +00:00
GitHub Action 481321ee9a chore(release): 0.6.71 [skip ci] 2026-02-26 22:34:40 +00:00
GitHub Action 88018dd5b7 chore(release): 0.6.70 [skip ci] 2026-02-16 05:16:41 +00:00
GitHub Action 1d8881bda1 chore(release): 0.6.69 [skip ci] 2026-02-15 07:07:30 +00:00
GitHub Action d56c5aa1a2 chore(release): 0.6.68 [skip ci] 2026-02-14 22:09:17 +00:00
GitHub Action 7e79ac5896 chore(release): 0.6.67 [skip ci] 2026-02-13 05:33:34 +00:00
GitHub Action 4b8e225993 chore(release): 0.6.66 [skip ci] 2026-02-12 23:34:16 +00:00
GitHub Action b3dd11611f chore(release): 0.6.65 [skip ci] 2026-02-11 19:02:36 +00:00
GitHub Action 5108dda3fe chore(release): 0.6.64 [skip ci] 2026-02-11 11:18:47 +00:00
GitHub Action 7dd0d39ce4 chore(release): 0.6.63 [skip ci] 2026-02-11 06:19:17 +00:00
James Peter 0b291adacd Merge upstream/main: keep fork workflows and scripts 2026-02-11 14:24:12 +10:00
GitHub Action 07f3844824 chore(release): 0.6.62 [skip ci] 2026-02-11 03:57:21 +00:00
Michael BolinandGitHub d9c014efce # 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 c19969c676 chore: split NPM packages (#11318) 2026-02-10 14:49:53 +00:00
GitHub Action 44dda2684d chore(release): 0.6.61 [skip ci] 2026-02-10 10:00:15 +00:00
GitHub Action 62132754bb chore(release): 0.6.60 [skip ci] 2026-02-07 23:17:44 +00:00
GitHub Action 5c202e040e chore(release): 0.6.59 [skip ci] 2026-02-06 01:11:39 +00:00
GitHub Action 58488dd817 chore(release): 0.6.58 [skip ci] 2026-02-05 03:28:32 +00:00
GitHub Action 0f2057e7a3 chore(release): 0.6.57 [skip ci] 2026-02-02 06:54:57 +00:00
GitHub Action 6ca3058f9c chore(release): 0.6.56 [skip ci] 2026-02-02 04:08:00 +00:00
GitHub Action 9cfecd7862 chore(release): 0.6.55 [skip ci] 2026-02-02 00:42:33 +00:00
Michael BolinandGitHub b7f26d74f0 chore: ensure pnpm-workspace.yaml is up-to-date (#10140)
On the back of:

https://github.com/openai/codex/pull/10138

Let's ensure that every folder with a `package.json` is listed in
`pnpm-workspace.yaml` (not sure why `docs` was in there...) and that we
are using `pnpm` over `npm` consistently (which is why this PR deletes
`codex-cli/package-lock.json`).
2026-01-29 10:49:03 -08:00
GitHub Action 7c4b6fcb93 chore(release): 0.6.54 [skip ci] 2026-01-29 15:41:05 +00:00
Michael BolinandGitHub 4d9ae3a298 fix: remove references to corepack (#10138)
Currently, our `npm publish` logic is failing.

There were a number of things that were merged recently that seemed to
contribute to this situation, though I think we have fixed most of them,
but this one stands out:

https://github.com/openai/codex/pull/10115

As best I can tell, we tried to fix the pnpm version to a specific hash,
but we did not do it consistently (though `shell-tool-mcp/package.json`
had it specified twice...), so for this PR, I ran:

```
$ git ls-files | grep package.json
codex-cli/package.json
codex-rs/responses-api-proxy/npm/package.json
package.json
sdk/typescript/package.json
shell-tool-mcp/package.json
```

and ensured that all of them now have this line:

```json
  "packageManager": "[email protected].2+sha512.41872f037ad22f7348e3b1debbaf7e867cfd448f2726d9cf74c08f19507c31d2c8e7a11525b983febc2df640b5438dee6023ebb1f84ed43cc2d654d2bc326264"
```

I also went and deleted all of the `corepack` stuff that was added by
https://github.com/openai/codex/pull/10115.

If someone can explain why we need it and verify it does not break `npm
publish`, then we can bring it back.
2026-01-28 23:31:25 -08:00
GitHub Action 5d5d2d24ee chore(release): 0.6.53 [skip ci] 2026-01-27 10:41:36 +00:00
GitHub Action e3565cd4d7 chore(release): 0.6.52 [skip ci] 2026-01-26 23:58:38 +00:00
GitHub Action bdf8fae1c2 chore(release): 0.6.51 [skip ci] 2026-01-26 00:05:41 +00:00
GitHub Action 26f3033a91 chore(release): 0.6.50 [skip ci] 2026-01-22 10:19:24 +00:00
ca23b0da5b fix(cli): add execute permission to bin/codex.js (#9532)
## Summary
Fixes #9520

The `bin/codex.js` file was missing execute permissions (`644` instead
of `755`), causing the `codex` command to fail after npm global
installation.

## Changes
- Added execute permission (`+x`) to `codex-cli/bin/codex.js`

## Verification
After this fix, npm tarballs will include the correct file permissions:
```bash
# Before: -rw-r--r-- (644)
# After:  -rwxr-xr-x (755)
```

---
🤖 Generated with Claude Code

Co-authored-by: Claude <[email protected]>
2026-01-20 14:53:14 -08:00
GitHub Action b645fdb976 chore(release): 0.6.49 [skip ci] 2026-01-17 10:38:36 +00:00
GitHub Action 1f7fa46aed chore(release): 0.6.48 [skip ci] 2026-01-14 00:59:11 +00:00
GitHub Action 61c2c6f03a chore(release): 0.6.47 [skip ci] 2026-01-13 21:27:44 +00:00
GitHub Action eb4ec9f8d7 chore(release): 0.6.46 [skip ci] 2026-01-11 22:23:05 +00:00
7daaabc795 fix: add tui.alternate_screen config and --no-alt-screen CLI flag for Zellij scrollback (#8555)
Fixes #2558

Codex uses alternate screen mode (CSI 1049) which, per xterm spec,
doesn't support scrollback. Zellij follows this strictly, so users can't
scroll back through output.

**Changes:**
- Add `tui.alternate_screen` config: `auto` (default), `always`, `never`
- Add `--no-alt-screen` CLI flag
- Auto-detect Zellij and skip alt screen (uses existing `ZELLIJ` env var
detection)

**Usage:**
```bash
# CLI flag
codex --no-alt-screen

# Or in config.toml
[tui]
alternate_screen = "never"
```

With default `auto` mode, Zellij users get working scrollback without
any config changes.

---------

Co-authored-by: Josh McKinney <[email protected]>
2026-01-09 18:38:26 +00:00
GitHub Action e38af7adbd chore(release): 0.6.45 [skip ci] 2026-01-09 08:33:29 +00:00
GitHub Action d2f0331eeb chore(release): 0.6.44 [skip ci] 2026-01-08 09:05:35 +00:00
GitHub Action feca6a43c2 chore(release): 0.6.43 [skip ci] 2026-01-08 04:50:10 +00:00
GitHub Action 8ef99b1975 chore(release): 0.6.42 [skip ci] 2026-01-08 02:50:51 +00:00
GitHub Action e5ba7a5a45 chore(release): 0.6.41 [skip ci] 2026-01-08 00:55:29 +00:00
GitHub Action b29f564609 chore(release): 0.6.40 [skip ci] 2026-01-07 02:45:38 +00:00
GitHub Action 0bb16174e1 docs(changelog): update for v0.6.39 [skip ci] 2026-01-07 01:32:43 +00:00
GitHub Action 2ac4c4d81e chore(release): 0.6.39 [skip ci] 2026-01-07 01:29:52 +00:00
GitHub Action 52cc0dbfdf docs(changelog): update for v0.6.38 [skip ci] 2026-01-06 03:30:55 +00:00
GitHub Action 61b205698f chore(release): 0.6.38 [skip ci] 2026-01-06 03:28:06 +00:00
GitHub Action 945cc19cf2 chore(release): 0.6.37 [skip ci] 2026-01-06 00:25:55 +00:00
GitHub Action 90a100c39d chore(release): 0.6.36 [skip ci] 2026-01-05 19:23:50 +00:00
GitHub Action 7e2ec90fb1 chore(release): 0.6.35 [skip ci] 2026-01-05 11:00:20 +00:00
GitHub Action 50ea176bba chore(release): 0.6.34 [skip ci] 2026-01-05 07:03:24 +00:00