Commit Graph

1924 Commits

Author SHA1 Message Date
Michael Bolin
fc593fc965 Merge 048cd07da9 into sapling-pr-archive-bolinfest 2025-07-07 11:21:50 -07:00
Michael Bolin
048cd07da9 feat: add support for http_headers and env_key_http_headers 2025-07-07 11:21:43 -07:00
Michael Bolin
bd5a9e8ba9 chore: update release scripts for the TypeScript CLI (#1472)
This introduces two changes to make a quick fix so we can deploy the
Rust CLI for `0.2.0` of `@openai/codex` on npm:

- Updates `WORKFLOW_URL` to point to
https://github.com/openai/codex/actions/runs/15981617627, which is the
GitHub workflow run used to create the binaries for the `0.2.0` release
we published to Homebrew.
- Adds a `--version` option to `stage_release.sh` to specify what the
`version` field in the `package.json` will be.

Locally, I ran the following:

```
./codex-cli/scripts/stage_release.sh --native --version 0.2.0
```

Previously, we only used the `--native` flag to publish to the `native`
tag of `@openai/codex` (e.g., `npm publish --tag native`), but we should
just publish this as the default tag for `0.2.0` to be consistent with
what is in Homebrew.

We can still publish one "final" version of the TypeScript CLI as 0.1.x
later.

Under the hood, this release will still contain `dist/cli.js`,
`bin/codex-linux-sandbox-x64`, and `bin/codex-x86_64-apple-darwin`,
which are not strictly necessary, but we'll fix that in `0.3.0`.
2025-07-07 09:43:03 -07:00
Michael Bolin
bce4b93e50 Merge 2d7257e327 into sapling-pr-archive-bolinfest 2025-07-07 09:34:43 -07:00
Michael Bolin
2d7257e327 chore: update release scripts for the TypeScript CLI 2025-07-07 09:31:22 -07:00
Michael Bolin
abcca30d93 docs: update documentation to reflect Rust CLI release (#1440)
As promised on https://github.com/openai/codex/discussions/1405, we are
making the first official release of the Rust CLI as v0.2.0. As part of
this move, we are making it available in Homebrew:

https://github.com/Homebrew/homebrew-core/pull/228615

Ultimately, we also plan to continue to make the CLI available in npm,
as well, though brew is a bit nicer in that `brew install` will download
only the binary for your platform whereas an npm module is expected to
contain the binaries for _all_ supported platforms, so it is a bit more
heavyweight.

A big part of this change is updating the root `README.md` to document
the behavior of the Rust CLI, which differs in a number of ways from the
TypeScript CLI. The existing `README.md` is moved to
`codex-cli/README.md` as part of this PR, as it is still applicable to
that folder.

As this is still early days for the Rust CLI, I encourage folks to
provide feedback on the command line flags and configuration options.
2025-07-01 15:00:31 -07:00
Michael Bolin
612272d3f2 merge commit for archive created by Sapling 2025-06-30 17:46:11 -07:00
Michael Bolin
3cfe1bef25 docs: update documentation to reflect Rust CLI release 2025-06-30 17:45:56 -07:00
Michael Bolin
8871e3df48 merge commit for archive created by Sapling 2025-06-30 17:27:58 -07:00
Michael Bolin
bd03ff57cd docs: update documentation to reflect Rust CLI release 2025-06-30 17:27:51 -07:00
Michael Bolin
d7c428e44f Merge 3d00d33d60 into sapling-pr-archive-bolinfest 2025-06-30 17:25:44 -07:00
Michael Bolin
3d00d33d60 docs: update documentation to reflect Rust CLI release 2025-06-30 17:25:35 -07:00
Michael Bolin
4cb3c76798 fix: softprops/action-gh-release@v2 should use existing tag instead of creating a new tag (#1436)
https://github.com/Homebrew/homebrew-core/pull/228521 details the issues
I was having with the **Source code (tar.gz)** artifact for our GitHub
releases not being quite right. I landed these PRs as stabs in the dark
to fix this:

- https://github.com/openai/codex/pull/1423
- https://github.com/openai/codex/pull/1430

Based on the insights from
https://github.com/Homebrew/homebrew-core/pull/228521, I think those
were wrong and the real problem was this:


6dad5c3b17/.github/workflows/rust-release.yml (L162)

That is, I was manufacturing a new tag name on the fly instead of using
the existing one.

This PR reverts #1423 and #1430 and hopefully fixes how `tag_name` is
set for the `softprops/action-gh-release@v2` step so the **Source code
(tar.gz)** includes the correct files. Assuming this works, this should
make the Homebrew formula straightforward.
2025-06-30 12:10:48 -07:00
Michael Bolin
31b70760e9 Merge f4a8893b52 into sapling-pr-archive-bolinfest 2025-06-30 12:02:56 -07:00
Michael Bolin
f4a8893b52 fix: softprops/action-gh-release@v2 should use existing tag instead of creating a new tag 2025-06-30 12:02:45 -07:00
Michael Bolin
6dad5c3b17 feat: add query_params option to ModelProviderInfo to support Azure (#1435)
As discovered in https://github.com/openai/codex/issues/1365, the Azure
provider needs to be able to specify `api-version` as a query param, so
this PR introduces a generic `query_params` option to the
`model_providers` config so that an Azure provider can be defined as
follows:

```toml
[model_providers.azure]
name = "Azure"
base_url = "https://YOUR_PROJECT_NAME.openai.azure.com/openai"
env_key = "AZURE_OPENAI_API_KEY"
query_params = { api-version = "2025-04-01-preview" }
```

This PR also updates the docs with this example.

While here, we also update `wire_api` to default to `"chat"`, as that is
likely the common case for someone defining an external provider.

Fixes https://github.com/openai/codex/issues/1365.
2025-06-30 11:39:54 -07:00
Michael Bolin
cc34b9377d merge commit for archive created by Sapling 2025-06-30 11:34:18 -07:00
Michael Bolin
abe7a5ec1a feat: add query_params option to ModelProviderInfo to support Azure 2025-06-30 11:34:11 -07:00
Michael Bolin
517a131d88 Merge 92986ffdb4 into sapling-pr-archive-bolinfest 2025-06-30 11:27:17 -07:00
Michael Bolin
92986ffdb4 feat: add query_params option to ModelProviderInfo to support Azure 2025-06-30 11:27:07 -07:00
Michael Bolin
cd2d84d496 fix: need to check out the branch, not the tag (#1430)
This should have been done in https://github.com/openai/codex/pull/1423.
codex-rs-2925136536b06a324551627468d17e959afa18d4-1-rust-v0.2.0-alpha.2
2025-06-29 10:18:50 -07:00
Michael Bolin
6c73649443 merge commit for archive created by Sapling 2025-06-29 10:16:00 -07:00
Michael Bolin
18dcca9388 fix: need to check out the branch, not the tag 2025-06-29 10:15:48 -07:00
Michael Bolin
688100f7f4 chore: fix Rust release process so generated .tar.gz source works with Homebrew (#1423)
Looking at existing releases such as
https://github.com/openai/codex/releases/tag/codex-rs-b289c9207090b2e27494545d7b5404e063bd86f3-1-rust-v0.1.0-alpha.4,
the `.tar.gz` for the source code still seems to have `0.0.0` as the
`version` in `codex-rs/Cargo.toml` instead of what the tag seems to say
it should have:


b289c92070/codex-rs/Cargo.toml (L21)

ChatGPT claims:

> When GitHub generates the Source code (tar.gz) archive for a tag:
	•	It uses the commit the tag points to.
• But in some cases (e.g., shallow clones, GitHub CI, or local tools
that only clone the default branch), that commit may not be included,
and you might get an outdated view or nothing at all depending on how
it’s fetched.
	
Trying this recommended fix.
2025-06-28 19:46:44 -07:00
Michael Bolin
d277b0a3ce merge commit for archive created by Sapling 2025-06-28 19:42:28 -07:00
Michael Bolin
5d621b9df3 chore: fix Rust release process so generated .tar.gz source works with Homebrew 2025-06-28 19:42:22 -07:00
Michael Bolin
1558ef7d66 Merge 093ffb4ccf into sapling-pr-archive-bolinfest 2025-06-28 19:39:20 -07:00
Michael Bolin
093ffb4ccf chore: fix Rust release process so generated .tar.gz source works with Homebrew 2025-06-28 19:39:12 -07:00
Michael Bolin
f30bf4bbcf fix: support pre-release identifiers in tags (#1422)
Had to update the regex in the GitHub workflow to allow suffixes like
`-alpha.4`.

Successfully ran:

```
./scripts/create_github_release.sh 0.1.0-alpha.4
```

to create
https://github.com/openai/codex/releases/tag/codex-rs-b289c9207090b2e27494545d7b5404e063bd86f3-1-rust-v0.1.0-alpha.4

and verified that when I run `codex --version`, it prints `codex-cli
0.1.0-alpha.4`.
2025-06-28 16:05:53 -07:00
Michael Bolin
2fd41fabaa Merge fa678c17d7 into sapling-pr-archive-bolinfest 2025-06-28 15:42:50 -07:00
Michael Bolin
fa678c17d7 fix: support pre-release identifiers in tags 2025-06-28 15:42:32 -07:00
Michael Bolin
1b7c8d2569 fix: build with codegen-units = 1 for profile.release (#1421)
Great suggestion from @zamazan4ik on
https://github.com/openai/codex/issues/1411.
codex-rs-b289c9207090b2e27494545d7b5404e063bd86f3-1-rust-v0.1.0-alpha.4
2025-06-28 15:24:48 -07:00
Michael Bolin
4eb9ebf3f8 Merge 3f9093ad09 into sapling-pr-archive-bolinfest 2025-06-28 15:21:38 -07:00
Michael Bolin
3f9093ad09 fix: build with codegen-units = 1 for profile.release 2025-06-28 15:21:28 -07:00
Michael Bolin
4a341efe92 feat: highlight matching characters in fuzzy file search (#1420)
Using the new file-search API introduced in
https://github.com/openai/codex/pull/1419, matching characters are now
shown in bold in the TUI:


https://github.com/user-attachments/assets/8bbcc6c6-75a3-493f-8ea4-b2a063e09b3a

Fixes https://github.com/openai/codex/issues/1261
2025-06-28 15:04:23 -07:00
Michael Bolin
b36dac4059 merge commit for archive created by Sapling 2025-06-28 14:55:06 -07:00
Michael Bolin
154236d57b feat: highlight matching characters in fuzzy file search 2025-06-28 14:54:59 -07:00
Michael Bolin
e2efe8da9c feat: introduce --compute-indices flag to codex-file-search (#1419)
This is a small quality-of-life feature, the addition of
`--compute-indices` to the CLI, which, if enabled, will compute and set
the `indices` field for each `FileMatch` returned by `run()`. Note we
only bother to compute `indices` once we have the top N results because
there could be a lot of intermediate "top N" results during the search
that are ultimately discarded.

When set, the indices are included in the JSON output when `--json` is
specified and the matching indices are displayed in bold when `--json`
is not specified.
2025-06-28 14:39:29 -07:00
Michael Bolin
660c6ab032 merge commit for archive created by Sapling 2025-06-28 14:30:09 -07:00
Michael Bolin
ea4f6a9688 feat: introduce --compute-indices flag to codex-file-search 2025-06-28 14:30:03 -07:00
Michael Bolin
47303cad03 Merge 8f67d88267 into sapling-pr-archive-bolinfest 2025-06-28 14:25:41 -07:00
Michael Bolin
8f67d88267 feat: introduce --compute-indices flag to codex-file-search 2025-06-28 14:25:36 -07:00
Michael Bolin
51280ceda0 Merge 7550324633 into sapling-pr-archive-bolinfest 2025-06-28 14:25:29 -07:00
Michael Bolin
7550324633 feat: introduce --compute-indices flag to codex-file-search 2025-06-28 14:25:19 -07:00
Michael Bolin
5a0f236ca4 feat: add support for @ to do file search (#1401)
Introduces support for `@` to trigger a fuzzy-filename search in the
composer. Under the hood, this leverages
https://crates.io/crates/nucleo-matcher to do the fuzzy matching and
https://crates.io/crates/ignore to build up the list of file candidates
(so that it respects `.gitignore`).

For simplicity (at least for now), we do not do any caching between
searches like VS Code does for its file search:


1d89ed699b/src/vs/workbench/services/search/node/rawSearchService.ts (L212-L218)

Because we do not do any caching, I saw queries take up to three seconds
on large repositories with hundreds of thousands of files. To that end,
we do not perform searches synchronously on each keystroke, but instead
dispatch an event to do the search on a background thread that
asynchronously reports back to the UI when the results are available.
This is largely handled by the `FileSearchManager` introduced in this
PR, which also has logic for debouncing requests so there is at most one
search in flight at a time.

While we could potentially polish and tune this feature further, it may
already be overengineered for how it will be used, in practice, so we
can improve things going forward if it turns out that this is not "good
enough" in the wild.

Note this feature does not work like `@` in the TypeScript CLI, which
was more like directory-based tab completion. In the Rust CLI, `@`
triggers a full-repo fuzzy-filename search.

Fixes https://github.com/openai/codex/issues/1261.
2025-06-28 13:47:42 -07:00
Michael Bolin
65b67ef7fc merge commit for archive created by Sapling 2025-06-28 13:31:31 -07:00
Michael Bolin
b42eba161b feat: add support for @ to do file search 2025-06-28 13:31:21 -07:00
Michael Bolin
6c0234d9ad merge commit for archive created by Sapling 2025-06-28 13:24:11 -07:00
Michael Bolin
de0409587a feat: add support for @ to do file search 2025-06-28 13:24:05 -07:00
Michael Bolin
f0db073285 merge commit for archive created by Sapling 2025-06-28 09:37:42 -07:00