Commit Graph
281 Commits
Author SHA1 Message Date
GitHub Action 4a231bb2bb chore(release): 0.2.4 [skip ci] 2025-08-19 04:06:32 +00:00
James Peter e6646c4d72 cli(windows): guard against corrupt/empty downloads and improve spawn errors\n\n- postinstall: robust download + header validation (MZ/ELF/Mach-O), delete on failure\n- coder.js: pre-spawn binary header check; clearer EFTYPE/ENOEXEC/EACCES guidance\n- reduces confusing Windows EFTYPE crashes from partial downloads 2025-08-19 13:51:46 +10:00
GitHub Action 91e9325947 chore(release): 0.2.3 [skip ci] 2025-08-19 02:31:52 +00:00
GitHub Action a5d9d7984d chore(release): 0.2.2 [skip ci] 2025-08-19 02:09:43 +00:00
James Peter 20c4454933 chore(release): ensure npm README uses repo root during publish; allow CI in prepublish guard 2025-08-19 08:34:49 +10:00
James Peter 3152a78778 chore(npm): prevent direct publish from codex-cli and replace legacy README with publish note pointing to repo root 2025-08-19 08:26:58 +10:00
James Peter c3e70bb22e fix(core/mcp/tui): align with latest upstream protocol + type mappings; stabilize interrupt handling and TUI colors 2025-08-19 08:18:26 +10:00
James Peter 11b0b6f7ae fix(release): ensure GitHub Release + correct artifacts and repo refs
- Build code/code-tui/code-exec in rust-release workflow
- Always create/push v<tag>; remove skip gate for GH release
- Add permissions: contents: write
- Point staging to just-every/code and code-* artifacts
- Update checker accepts rust-vX.Y.Z or vX.Y.Z and refreshes cache
2025-08-19 03:19:43 +10:00
GitHub Action b653bef391 chore(release): 0.1.7 [skip ci] 2025-08-18 14:02:28 +00:00
GitHub Action bf61ad08ce chore(release): 0.1.6 [skip ci] 2025-08-17 10:59:58 +00:00
James Peter fc17d512b7 refactor(naming): switch binaries and artifacts from 'coder' to 'code'; keep 'coder' as fallback alias only. Update workflows, scripts, and postinstall. 2025-08-17 20:45:10 +10:00
James Peter bc7eb8fbec chore(release): nudge workflow by touching postinstall.js (no functional change) 2025-08-17 20:31:10 +10:00
James Peter 2c9b9e7097 chore(release): bump version to 0.1.14 2025-08-17 20:14:20 +10:00
James Peter 9c5b23abeb feat(cli): add 'coder' bin alias and postinstall notice if existing 'code' is not ours 2025-08-17 19:16:42 +10:00
GitHub Action 6f1cfbf9f4 chore(release): 0.1.4 [skip ci] 2025-08-17 09:12:38 +00:00
James Peter e1f9079b50 chore: commit pending changes on main (CLI, TUI, core, docs) 2025-08-17 18:55:58 +10:00
GitHub Action 53cda72e5c chore(release): 0.1.13 [skip ci] 2025-08-16 02:50:20 +00:00
James Peter dce25e11b5 feat(cli): switch npm bin to 'code' and handle collisions gracefully
- package.json: expose bin as 'code'
- postinstall: detect existing 'code'; create 'coder' fallback and optional 'vscode' alias to existing editor
- keep Rust binary named 'coder' for builds; wrappers updated accordingly
2025-08-16 12:17:04 +10:00
James Peter 434f13571f chore(rebrand): rename user-facing Coder → Code; update links to new repo
- Update TUI titles, labels, messages
- Update onboarding copy and links
- Update MCP titles and human-output banner
- Update README branding and URLs
- postinstall: switch release URL to just-every/code; offer optional 'code' alias without collisions
- package.json repository URL updated

Note: CLI command remains 'coder' to avoid VS Code collision; optional alias offered interactively.
2025-08-16 12:10:29 +10:00
GitHub Action af63323954 chore(release): 0.1.11 [skip ci] 2025-08-14 10:11:28 +00:00
GitHub Action 4d74d5e437 chore(release): 0.1.10 [skip ci] 2025-08-14 09:32:01 +00:00
James Peter 7f12506263 Merge branch 'main' of https://github.com/just-every/coder into main 2025-08-14 08:56:55 +10:00
James Peter b67a0da2b1 Merge upstream changes from openai/codex
Successfully merged all upstream changes while preserving our custom functionality:
- Kept our browser integration and screenshot features
- Preserved agent tracking and multi-agent support
- Maintained our live ring widget and custom UI components
- Integrated upstream's streaming improvements and new conversation manager
- Combined both versions' protocol updates and event handling

All conflicts resolved with preference for our functionality where there were genuine differences.
2025-08-14 08:16:36 +10:00
GitHub Action f9ec599b71 chore(release): 0.1.9 [skip ci] 2025-08-13 21:12:39 +00:00
DylanandGitHub 06283e2694 [codex-cli] Add ripgrep as a dependency for node environment (#2237)
## Summary
Ripgrep is our preferred tool for file search. When users install via
`brew install codex`, it's automatically installed as a dependency. We
want to ensure that users running via an npm install also have this
tool! Microsoft has already solved this problem for VS Code - let's not
reinvent the wheel.

This approach of appending to the PATH directly might be a bit
heavy-handed, but feels reasonably robust to a variety of environment
concerns. Open to thoughts on better approaches here!

## Testing
- [x] confirmed this import approach works with `node -e "const { rgPath
} = require('@vscode/ripgrep'); require('child_process').spawn(rgPath,
['--version'], { stdio: 'inherit' })"`
- [x] Ran codex.js locally with `rg` uninstalled, asked it to run `which
rg`. Output below:

```
âš¡ Ran command which rg; echo $?
  ⎿ /Users/dylan.hurd/code/dh--npm-rg/node_modules/@vscode/ripgrep/bin/rg
    0

codex
Re-running to confirm the path and exit code.

- Path: `/Users/dylan.hurd/code/dh--npm-rg/node_modules/@vscode/ripgrep/bin/rg`
- Exit code: `0`
```
2025-08-13 13:49:27 -07:00
GitHub Action edd582aae0 chore(release): 0.1.8 [skip ci] 2025-08-13 11:39:54 +00:00
GitHub Action a6b9a89a51 chore(release): 0.1.7 [skip ci] 2025-08-12 13:34:27 +00:00
GitHub Action d2dc94337f chore(release): 0.1.6 [skip ci] 2025-08-12 06:58:55 +00:00
GitHub Action 19c39caade chore(release): 0.1.5 [skip ci] 2025-08-12 01:53:33 +00:00
GitHub Action ebe23d956e chore(release): 0.1.4 [skip ci] 2025-08-12 00:17:37 +00:00
GitHub Action 9bdf9d7cb3 chore(release): 0.1.3 [skip ci] 2025-08-11 22:57:49 +00:00
James Peter f284876db9 revert: undo version bump to 0.1.3 2025-08-12 08:03:03 +10:00
James Peter 2372c7122c fix: postinstall script import assertion error
- Replace dynamic import of package.json with readFileSync for Node.js compatibility
- Fixes 'ERR_IMPORT_ATTRIBUTE_MISSING' error during npm install
- Bump version to 0.1.3
2025-08-12 07:58:23 +10:00
James Peter d1641caa42 fix: handle permission errors for binaries on Linux/WSL
- Add automatic chmod +x when running coder.js on Unix systems
- Fix postinstall script to use octal notation for chmod (0o755)
- Add better error messages when binary is not executable
- Always try to fix permissions for existing binaries
- Bump version to 0.1.2 for hotfix release
2025-08-12 06:55:01 +10:00
James Peter 56c1bf910b fix: reduce npm package size by downloading binaries on install
- Add postinstall script to download platform-specific binaries from GitHub releases
- Update package.json to exclude binaries from npm package (only include JS wrappers)
- Modify release workflow to upload binaries as GitHub release assets
- Fixes 'Payload Too Large' error when publishing to npm (was 219MB, now <1MB)
2025-08-11 22:49:21 +10:00
James Peter 596944c64b fix: remove dangling symlinks from codex-cli/bin and update gitignore
- Remove tracked symlinks that were causing build failures
- Add gitignore patterns to prevent binary symlinks from being tracked
- Fixes 'cp: not writing through dangling symlink' error in release workflow
2025-08-11 22:29:50 +10:00
James Peter e88aebf24f feat: add coder fork enhancements - mouse scrolling, glitch animation, and improved TUI 2025-08-11 21:51:46 +10:00
James Peter ab91d11370 Merge main branch updates into code-release
Resolve version conflict - use v0.1.1 for next release
2025-08-10 16:33:26 +10:00
James Peter 992a71387b feat: update README and package.json for fork
- Add fork-specific README with installation instructions
- Update package.json to @just-every/code v0.1.1
- Prepare for next release with proper versioning
2025-08-10 16:32:54 +10:00
James Peter 279e211228 feat: set up code fork with rebranding and npm publishing
- Rename binaries from codex to code across all Cargo.toml files
- Create @just-every/code npm package with generic build scripts
- Add CODE_HOME environment variable support (falls back to CODEX_HOME)
- Create GitHub Actions workflow for automated npm releases
- Update JavaScript wrapper from codex.js to code.js
- Add FORK_SETUP.md documentation
- Configure dual-branch strategy for fork management
2025-08-10 15:57:12 +10:00
Michael BolinandGitHub cf8401d3e7 chore: remove the TypeScript code from the repository (#2048)
This deletes the bulk of the `codex-cli` folder and eliminates the logic
that builds the TypeScript code and bundles it into the release.

Since this PR modifies `.github/workflows/rust-release.yml`, to test
changes to the release process, I locally commented out all of the "is
this commit on upstream `main`" checks in
`scripts/create_github_release.sh` and ran:

```
./codex-rs/scripts/create_github_release.sh 0.20.0-alpha.4
```

Which kicked off:

https://github.com/openai/codex/actions/runs/16842085113

And the release artifacts appear legit!

https://github.com/openai/codex/releases/tag/rust-v0.20.0-alpha.4
2025-08-08 16:09:39 -07:00
Michael BolinandGitHub d13cf58374 fix: try building the npm package in CI (#2043)
Historically, the release process for the npm module has been:

- I run `codex-rs/scripts/create_github_release.sh` to kick off a
release for the native artifacts.
- I wait until it is done.
- I run `codex-cli/scripts/stage_rust_release.py` to build the npm
release locally
- I run `npm publish` from my laptop

It has been a longstanding issue to move the npm build to CI. I may
still have to do the `npm publish` manually because it requires 2fac
with `npm`, though I assume we can work that out later.

Note I asked Codex to make these updates, and while they look pretty
good to me, I'm not 100% certain, but let's just merge this and I'll
kick off another alpha build and we'll see what happens?
2025-08-08 15:17:54 -07:00
Michael BolinandGitHub f82bb30dba feat: include Windows binary of the CLI in the npm release (#2040)
To date, the build scripts in `codex-cli` still supported building the
old TypeScript version of the Codex CLI to give Windows users something
they can run, but we are just going to have them use the Rust version
like everyone else, so:

- updates `codex-cli/bin/codex.js` so that we run the native binary or
throw if the target platform/arch is not supported (no more conditional
usage based on `CODEX_RUST`, `use-native` file, etc.)
- drops the `--native` flag from `codex-cli/scripts/stage_release.sh`
and updates all the code paths to behave as if `--native` were passed
(i.e., it is the only way to run it now)

Tested this by running:

```
./codex-cli/scripts/stage_rust_release.py --release-version 0.20.0-alpha.2
```
2025-08-08 14:44:35 -07:00
Ed BayesandGitHub fdff0f77ee Update copy (#1935)
Updated copy

---------

Co-authored-by: Hanzo Dev <[email protected]>
2025-08-07 03:29:33 -07:00
David Z HaoandGitHub 3a70e178d8 Fix MacOS multiprocessing by relaxing sandbox (#1808)
The following test script fails in the codex sandbox:
```
import multiprocessing
from multiprocessing import Lock, Process

def f(lock):
    with lock:
        print("Lock acquired in child process")

if __name__ == '__main__':
    lock = Lock()
    p = Process(target=f, args=(lock,))
    p.start()
    p.join()
```

with 
```
Traceback (most recent call last):
  File "/Users/david.hao/code/codex/codex-rs/cli/test.py", line 9, in <module>
    lock = Lock()
           ^^^^^^
  File "/Users/david.hao/.local/share/uv/python/cpython-3.12.9-macos-aarch64-none/lib/python3.12/multiprocessing/context.py", line 68, in Lock
    return Lock(ctx=self.get_context())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/david.hao/.local/share/uv/python/cpython-3.12.9-macos-aarch64-none/lib/python3.12/multiprocessing/synchronize.py", line 169, in __init__
    SemLock.__init__(self, SEMAPHORE, 1, 1, ctx=ctx)
  File "/Users/david.hao/.local/share/uv/python/cpython-3.12.9-macos-aarch64-none/lib/python3.12/multiprocessing/synchronize.py", line 57, in __init__
    sl = self._semlock = _multiprocessing.SemLock(
                         ^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 1] Operation not permitted
```

After reading, adding this line to the sandbox configs fixes things -
MacOS multiprocessing appears to use sem_lock(), which opens an IPC
which is considered a disk write even though no file is created. I
interrogated ChatGPT about whether it's okay to loosen, and my
impression after reading is that it is, although would appreciate a
close look


Breadcrumb: You can run `cargo run -- debug seatbelt --full-auto <cmd>`
to test the sandbox
2025-08-03 06:59:26 -07:00
d2a6586738 check for updates (#1764)
1. Ping https://api.github.com/repos/openai/codex/releases/latest (at
most once every 20 hrs)
2. Store the result in ~/.codex/version.jsonl
3. If CARGO_PKG_VERSION < latest_version, print a message at boot.

---------

Co-authored-by: Hanzo Dev <[email protected]>
2025-08-02 00:31:38 +00:00
Michael BolinandGitHub a00d97fdd3 fix: check flags to ripgrep when deciding whether the invocation is "trusted" (#1644)
With this change, if any of `--pre`, `--hostname-bin`, `--search-zip`, or `-z` are used with a proposed invocation of `rg`, do not auto-approve.
2025-07-21 22:38:50 -07:00
Michael BolinandGitHub 4fe6720622 fix: update bin/codex.js so it listens for exit on the child process (#1590)
When Codex CLI is installed via `npm`, we use a `.js` wrapper script to
launch the Rust binary.

- Previously, we were not listening for signals to ensure that killing
the Node.js process would also kill the underlying Rust process.
- We also did not have a proper `exit` handler in place on the child
process to ensure we exited from the Node.js process.

This PR fixes these things and hopefully addresses
https://github.com/openai/codex/issues/1570.

This also adds logic so that Windows falls back to the TypeScript CLI
again, which should address https://github.com/openai/codex/issues/1573.
2025-07-16 16:35:29 -07:00
Michael BolinandGitHub 796fbe54c2 docs: clarify the build process for the npm release (#1568)
It appears that `0.5.0` was built with `stage_release.sh` instead of
`stage_rust_release.py`, so add docs to clarify this and recommend
running `--version` on the release candidate to verify the right thing
was built.
2025-07-14 09:41:11 -07:00
0646a3e5a3 chore(deps): bump node from 22-slim to 24-slim in /codex-cli (#1505)
Bumps node from 22-slim to 24-slim.

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=node&package-manager=docker&previous-version=22-slim&new-version=24-slim)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)

</details>

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: Hanzo Dev <[email protected]>
2025-07-10 12:11:44 -07:00