Commit Graph
1355 Commits
Author SHA1 Message Date
zeekay b2ac873c51 docs: rebrand README to Hanzo Dev, document TUI features and agent piping
Rewrite all READMEs from "Every Code" to "Hanzo Dev" branding. Add
comprehensive chat TUI documentation (Zen mode, themes, keyboard
shortcuts, session management), CLI agent piping section (Claude/Gemini/
Qwen orchestration), Auto Review docs, upstream comparison table, and
architecture overview. Update config paths to ~/.hanzo/ and default
model to gpt-5.3-codex.
2026-02-11 14:03:37 -08:00
zeekay 8feb3a48e7 Update TUI 2026-02-10 17:35:37 -08:00
zeekay 434ac17f31 Remove code-rs/, rebrand all references to hanzo-dev/
- Delete entire code-rs/ directory (1796 files) — just-every/code fork
  is no longer needed; hanzo-dev/ is the canonical Rust workspace
- Update all build scripts, CI workflows, docs, and configs to
  reference hanzo-dev/ instead of code-rs/
- Update binary name references: code → dev throughout
- Fix hanzo-cli/index.js, hanzo.sh, README.md, dev-cli READMEs
- Include pre-existing TUI improvements (theme, colors, greeting,
  card styles, chatwidget refactor) and build-fast.sh enhancements
  (symlink install, smarter crate prefix detection)
- codex-rs/ (read-only upstream mirror) is untouched
2026-02-10 16:14:50 -08:00
zeekay f3ae6520aa Merge openai/main: mem v2, tool building, sandbox metadata, image handling
Brings in 42 commits from openai/codex including:
- feat: mem v2 (memory extraction, prompt module, phase 1+2 consolidation)
- feat: connector capabilities for sub-agents
- feat: sandbox metadata in turn headers, proxy-aware network routing
- fix: canonicalize wrapper approvals, heredoc prefix support
- fix: reduce open_if_present usage, websocket incrementality
- chore: split NPM packages, extract hooks crate, tool building extraction
- Strip unsupported images, sanitize MCP image output for text-only models
- Thin LTO for alpha Rust release builds
2026-02-10 14:56:40 -08:00
zeekay 6845c62e8b Remove binary, merge latest 2026-02-10 14:53:44 -08: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 2e5893beec chore(release): 3.0.11 [skip ci] 2026-02-10 12:07:45 +00:00
zeekay 9771519cd6 Merge origin/main: adopt upstream changes; keep Hanzo fork identity 2026-02-10 03:17:20 -08:00
zeekay ca54a6d9ab merge upstream/main 2026-02-09 21:08:46 -08:00
GitHub Action a15f1b064f chore(release): 3.0.11 [skip ci] 2026-02-09 18:13:18 +00:00
GitHub Action 62132754bb chore(release): 0.6.60 [skip ci] 2026-02-07 23:17:44 +00:00
GitHub Action 83a7957505 chore(release): 3.0.10 [skip ci] 2026-02-06 06:54:38 +00:00
zeekay 5f999f2519 fix(ci): fix codespell and prettier issues
- Fix typos: parellel→parallel, neccessary→necessary, mulitple→multiple,
  responible→responsible, geniune→genuine, yeild→yield
- Add ignore words: Nd, nd, edn, lightening (valid terms)
- Run prettier --write to fix all formatting issues
2026-02-05 22:17:28 -08:00
GitHub Action 1844815868 Merge origin/main: adopt remote workflow changes; keep release changes [skip ci] 2026-02-06 05:37:39 +00:00
GitHub Action 7a95c14fd0 chore(release): 3.0.9 [skip ci] 2026-02-06 05:37:25 +00:00
GitHub Action 5c202e040e chore(release): 0.6.59 [skip ci] 2026-02-06 01:11:39 +00:00
GitHub Action c8282fce6a chore(release): 3.0.8 [skip ci] 2026-02-06 01:02:19 +00:00
GitHub Action 58488dd817 chore(release): 0.6.58 [skip ci] 2026-02-05 03:28:32 +00:00
GitHub Action ccc8492654 chore(release): 3.0.7 [skip ci] 2026-02-05 02:50:06 +00:00
zeekay 9fa5bb14de Merge openai-upstream/main: sync with openai/codex (3363 commits)
Catch-up merge from upstream openai/codex repository:
- Accept upstream codex-rs/ and codex-cli/ changes
- Accept upstream docs, sdk/typescript, and configs
- Preserves hanzo-specific directories (code-rs, hanzo-*, dev-cli)
2026-02-04 18:09:15 -08: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
GitHub Action 08d7e023a3 chore(release): 3.0.6 [skip ci] 2026-01-31 00:46:37 +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 24a390ac38 chore(release): 3.0.5 [skip ci] 2026-01-25 22:51:06 +00:00
GitHub Action 744a222557 chore(release): 3.0.4 [skip ci] 2026-01-25 21:14:20 +00:00
GitHub Action 30b8ed752e chore(release): 3.0.3 [skip ci] 2026-01-25 20:26:24 +00:00
GitHub Action 5ff0110fd5 chore(release): 3.0.2 [skip ci] 2026-01-25 09:33:14 +00:00
GitHub Action 5e5deeb826 chore(release): 0.6.51 [skip ci] 2026-01-24 23:53:11 +00:00
GitHub Action 26f3033a91 chore(release): 0.6.50 [skip ci] 2026-01-22 10:19:24 +00:00
GitHub Action 26db4bb664 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 4936dd9a51 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 f3d99b25a1 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 1e3fbc9f7a 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
GitHub Action 1436f662fe 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 55a3258877 chore(release): 0.6.45 [skip ci] 2026-01-09 08:33:29 +00:00