Commit Graph
10841 Commits
Author SHA1 Message Date
Michael Bolin 0807e4fd01 merge commit for archive created by Sapling 2026-04-01 12:47:27 -07:00
Michael Bolin e464a36dc6 tui: remove the voice-input crate feature
## Why

`voice-input` is the only remaining TUI crate feature, but it is also a default feature and nothing in the workspace selects it explicitly. In practice it is just acting as a proxy for platform support, which is better expressed with target-specific dependencies and cfgs.

## What changed

- remove the `voice-input` feature from `codex-tui`
- make `cpal` a normal non-Linux target dependency
- replace the feature-based voice/audio cfgs with pure Linux-vs-non-Linux cfgs
- shrink the workspace-manifest verifier allowlist to remove the remaining `codex-tui` exception
2026-04-01 12:47:10 -07:00
Michael Bolin d1043ef90e tui: remove debug/test-only crate features (#16457)
## Why

The remaining `vt100-tests` and `debug-logs` features in `codex-tui`
were only gating test-only and debug-only behavior. Those feature
toggles add Cargo and Bazel permutations without buying anything, and
they make it easier for more crate features to linger in the workspace.

## What changed

- delete `vt100-tests` and `debug-logs` from `codex-tui`
- always compile the VT100 integration tests in the TUI test target
instead of hiding them behind a Cargo feature
- remove the unused textarea debug logging branch instead of replacing
it with another gate
- add the required argument-comment annotations in the VT100 tests now
that Bazel sees those callsites during linting
- shrink the manifest verifier allowlist again so only the remaining
real feature exceptions stay permitted

## How tested

- `cargo test -p codex-tui`
- `just argument-comment-lint -p codex-tui`
2026-04-01 12:40:33 -07:00
Michael Bolin cd6e05cb7e merge commit for archive created by Sapling 2026-04-01 12:33:11 -07:00
Michael Bolin fa92b94d8a tui: replace debug/test-only crate features with debug_assertions
## Why

The remaining `vt100-tests` and `debug-logs` features in `codex-tui` were only selecting debug and test-only behavior. Those are exactly the cases where this repo already accepts `#[cfg(debug_assertions)]` as the Cargo-free substitute.

## What changed

- delete `vt100-tests` and `debug-logs` from `codex-tui`
- gate the VT100 integration tests with `debug_assertions` instead of a Cargo feature
- gate the textarea debug log site with `debug_assertions`
- shrink the manifest verifier allowlist again so only the remaining real feature exceptions stay permitted
2026-04-01 12:33:00 -07:00
Michael Bolin f287d256d5 Merge 5d9009f66b into sapling-pr-archive-bolinfest 2026-04-01 12:12:16 -07:00
Michael Bolin 5d9009f66b tui: replace debug/test-only crate features with debug_assertions
## Why

The remaining `vt100-tests` and `debug-logs` features in `codex-tui` were only selecting debug and test-only behavior. Those are exactly the cases where this repo already accepts `#[cfg(debug_assertions)]` as the Cargo-free substitute.

## What changed

- delete `vt100-tests` and `debug-logs` from `codex-tui`
- gate the VT100 integration tests with `debug_assertions` instead of a Cargo feature
- gate the textarea debug log site with `debug_assertions`
- shrink the manifest verifier allowlist again so only the remaining real feature exceptions stay permitted
2026-04-01 12:09:22 -07:00
Michael Bolin 9f0be146db cloud-tasks: split the mock client out of cloud-tasks-client (#16456)
## Why

`codex-cloud-tasks-client` was mixing two different roles: the real HTTP
client and the mock implementation used by tests and local mock mode.
Keeping both in the same crate forced Cargo feature toggles and Bazel
`crate_features` just to pick an implementation.

This change keeps `codex-cloud-tasks-client` focused on the shared API
surface and real backend client, and moves the mock implementation into
its own crate so we can remove those feature permutations cleanly.

## What changed

- add a new `codex-cloud-tasks-mock-client` crate that owns `MockClient`
- remove the `mock` and `online` features from
`codex-cloud-tasks-client`
- make `codex-cloud-tasks-client` unconditionally depend on
`codex-backend-client` and export `HttpClient` directly
- gate the mock-mode path in `codex-cloud-tasks` behind
`#[cfg(debug_assertions)]`, so release builds always initialize the real
HTTP client
- update `codex-cloud-tasks` and its tests to use
`codex-cloud-tasks-mock-client::MockClient` wherever mock behavior is
needed
- remove the matching Bazel `crate_features` override and shrink the
manifest verifier allowlist accordingly

## How tested

- `cargo test -p codex-cloud-tasks-client`
- `cargo test -p codex-cloud-tasks-mock-client`
- `cargo test -p codex-cloud-tasks`

---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed
with [ReviewStack](https://reviewstack.dev/openai/codex/pull/16456).
* #16457
* __->__ #16456
2026-04-01 12:09:14 -07:00
Michael Bolin 621064d6aa Merge 06dd3eed92 into sapling-pr-archive-bolinfest 2026-04-01 11:51:41 -07:00
Michael Bolin 06dd3eed92 tui: replace debug/test-only crate features with debug_assertions
## Why

The remaining `vt100-tests` and `debug-logs` features in `codex-tui` were only selecting debug and test-only behavior. Those are exactly the cases where this repo already accepts `#[cfg(debug_assertions)]` as the Cargo-free substitute.

## What changed

- delete `vt100-tests` and `debug-logs` from `codex-tui`
- gate the VT100 integration tests with `debug_assertions` instead of a Cargo feature
- gate the textarea debug log site with `debug_assertions`
- shrink the manifest verifier allowlist again so only the remaining real feature exceptions stay permitted
2026-04-01 11:51:35 -07:00
Michael Bolin 8e8429aaff cloud-tasks: remove cloud-tasks-client crate features
## Why

`codex-cloud-tasks-client` was still using Cargo features to select its HTTP and mock implementations. That leaks feature permutations into both Cargo and Bazel for a crate that does not need them.

## What changed

- delete the `online` and `mock` crate features from `codex-cloud-tasks-client`
- make `codex-backend-client` unconditional and always export both `HttpClient` and `MockClient`
- remove the internal `features = ["mock", "online"]` activation from `codex-cloud-tasks`
- remove the matching Bazel `crate_features` override
- shrink the manifest verifier allowlist to match the remaining exceptions
2026-04-01 11:51:35 -07:00
Michael Bolin 18b057bb6d Merge 20a64c892d into sapling-pr-archive-bolinfest 2026-04-01 11:41:42 -07:00
Michael Bolin 20a64c892d tui: replace debug/test-only crate features with debug_assertions
## Why

The remaining `vt100-tests` and `debug-logs` features in `codex-tui` were only selecting debug and test-only behavior. Those are exactly the cases where this repo already accepts `#[cfg(debug_assertions)]` as the Cargo-free substitute.

## What changed

- delete `vt100-tests` and `debug-logs` from `codex-tui`
- gate the VT100 integration tests with `debug_assertions` instead of a Cargo feature
- gate the textarea debug log site with `debug_assertions`
- shrink the manifest verifier allowlist again so only the remaining real feature exceptions stay permitted
2026-04-01 11:41:36 -07:00
Michael Bolin 8056e03815 cloud-tasks: remove cloud-tasks-client crate features
## Why

`codex-cloud-tasks-client` was still using Cargo features to select its HTTP and mock implementations. That leaks feature permutations into both Cargo and Bazel for a crate that does not need them.

## What changed

- delete the `online` and `mock` crate features from `codex-cloud-tasks-client`
- make `codex-backend-client` unconditional and always export both `HttpClient` and `MockClient`
- remove the internal `features = ["mock", "online"]` activation from `codex-cloud-tasks`
- remove the matching Bazel `crate_features` override
- shrink the manifest verifier allowlist to match the remaining exceptions
2026-04-01 11:41:36 -07:00
Michael Bolin 0adde701e9 merge commit for archive created by Sapling 2026-04-01 11:37:47 -07:00
Michael Bolin 55536e6923 tui: replace debug/test-only crate features with debug_assertions
## Why

The remaining `vt100-tests` and `debug-logs` features in `codex-tui` were only selecting debug and test-only behavior. Those are exactly the cases where this repo already accepts `#[cfg(debug_assertions)]` as the Cargo-free substitute.

## What changed

- delete `vt100-tests` and `debug-logs` from `codex-tui`
- gate the VT100 integration tests with `debug_assertions` instead of a Cargo feature
- gate the textarea debug log site with `debug_assertions`
- shrink the manifest verifier allowlist again so only the remaining real feature exceptions stay permitted
2026-04-01 11:37:34 -07:00
Michael Bolin 65ed50f8dd cloud-tasks: remove cloud-tasks-client crate features
## Why

`codex-cloud-tasks-client` was still using Cargo features to select its HTTP and mock implementations. That leaks feature permutations into both Cargo and Bazel for a crate that does not need them.

## What changed

- delete the `online` and `mock` crate features from `codex-cloud-tasks-client`
- make `codex-backend-client` unconditional and always export both `HttpClient` and `MockClient`
- remove the internal `features = ["mock", "online"]` activation from `codex-cloud-tasks`
- remove the matching Bazel `crate_features` override
- shrink the manifest verifier allowlist to match the remaining exceptions
2026-04-01 11:37:34 -07:00
Michael Bolin f481d853f0 Merge c86d2673ef into sapling-pr-archive-bolinfest 2026-04-01 11:06:50 -07:00
Michael Bolin c86d2673ef tui: replace debug/test-only crate features with debug_assertions
## Why

The remaining `vt100-tests` and `debug-logs` features in `codex-tui` were only selecting debug and test-only behavior. Those are exactly the cases where this repo already accepts `#[cfg(debug_assertions)]` as the Cargo-free substitute.

## What changed

- delete `vt100-tests` and `debug-logs` from `codex-tui`
- gate the VT100 integration tests with `debug_assertions` instead of a Cargo feature
- gate the textarea debug log site with `debug_assertions`
- shrink the manifest verifier allowlist again so only the remaining real feature exceptions stay permitted
2026-04-01 11:06:41 -07:00
Michael Bolin c042246bf5 cloud-tasks: remove cloud-tasks-client crate features
## Why

`codex-cloud-tasks-client` was still using Cargo features to select its HTTP and mock implementations. That leaks feature permutations into both Cargo and Bazel for a crate that does not need them.

## What changed

- delete the `online` and `mock` crate features from `codex-cloud-tasks-client`
- make `codex-backend-client` unconditional and always export both `HttpClient` and `MockClient`
- remove the internal `features = ["mock", "online"]` activation from `codex-cloud-tasks`
- remove the matching Bazel `crate_features` override
- shrink the manifest verifier allowlist to match the remaining exceptions
2026-04-01 11:06:41 -07:00
Michael Bolin dc263f5926 ci: block new workspace crate features (#16455)
## Why

We already enforce workspace metadata and lint inheritance for
`codex-rs` manifests, but we still allow new crate features to slip into
the workspace. That makes it too easy to add more Cargo-only feature
permutations while we are trying to eliminate them.

## What changed

- extend `verify_cargo_workspace_manifests.py` to reject new
`[features]` tables in workspace crates
- reject new optional dependencies that create implicit crate features
- reject new workspace-to-workspace `features = [...]` activations and
`default-features = false`
- add a narrow temporary allowlist for the existing feature-bearing
manifests and internal feature activations
- make the allowlist self-shrinking so a follow-up removal has to delete
its corresponding exception


---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed
with [ReviewStack](https://reviewstack.dev/openai/codex/pull/16455).
* #16457
* #16456
* __->__ #16455
2026-04-01 11:06:36 -07:00
Peter Meyers e8d5c6b446 Make fuzzy file search case insensitive (#15772)
Makes fuzzy file search use case-insensitive matching instead of
smart-case in `codex-file-search`. I find smart-case to be a poor user
experience -using the wrong case for a letter drops its match so
significantly, it often drops off the results list, effectively making a
search case-sensitive.
2026-04-01 14:04:33 -04:00
Michael Bolin 4a89432591 Merge 237928ac68 into sapling-pr-archive-bolinfest 2026-04-01 10:52:49 -07:00
Michael Bolin 237928ac68 tui: replace debug/test-only crate features with debug_assertions
## Why

The remaining `vt100-tests` and `debug-logs` features in `codex-tui` were only selecting debug and test-only behavior. Those are exactly the cases where this repo already accepts `#[cfg(debug_assertions)]` as the Cargo-free substitute.

## What changed

- delete `vt100-tests` and `debug-logs` from `codex-tui`
- gate the VT100 integration tests with `debug_assertions` instead of a Cargo feature
- gate the textarea debug log site with `debug_assertions`
- shrink the manifest verifier allowlist again so only the remaining real feature exceptions stay permitted
2026-04-01 10:52:39 -07:00
Michael Bolin 8f65e73b75 cloud-tasks: remove cloud-tasks-client crate features
## Why

`codex-cloud-tasks-client` was still using Cargo features to select its HTTP and mock implementations. That leaks feature permutations into both Cargo and Bazel for a crate that does not need them.

## What changed

- delete the `online` and `mock` crate features from `codex-cloud-tasks-client`
- make `codex-backend-client` unconditional and always export both `HttpClient` and `MockClient`
- remove the internal `features = ["mock", "online"]` activation from `codex-cloud-tasks`
- remove the matching Bazel `crate_features` override
- shrink the manifest verifier allowlist to match the remaining exceptions
2026-04-01 10:52:38 -07:00
Michael Bolin 2eeeb56d02 ci: block new workspace crate features
## Why

We already enforce workspace metadata and lint inheritance for `codex-rs` manifests, but we still allow new crate features to slip into the workspace. That makes it too easy to add more Cargo-only feature permutations while we are trying to eliminate them.

## What changed

- extend `verify_cargo_workspace_manifests.py` to reject new `[features]` tables in workspace crates
- reject new optional dependencies that create implicit crate features
- reject new workspace-to-workspace `features = [...]` activations and `default-features = false`
- add a narrow temporary allowlist for the existing feature-bearing manifests and internal feature activations
- make the allowlist self-shrinking so a follow-up removal has to delete its corresponding exception
2026-04-01 10:52:38 -07:00
Michael Bolin 10b0dfc566 merge commit for archive created by Sapling 2026-04-01 10:51:58 -07:00
Michael Bolin f88522ceb0 permissions: start using PermissionProfile as the canonical runtime model 2026-04-01 10:51:46 -07:00
Michael Bolin 140d634161 Merge 8fa00a0be7 into sapling-pr-archive-bolinfest 2026-04-01 10:21:56 -07:00
Michael Bolin 8fa00a0be7 tui: replace debug/test-only crate features with debug_assertions
## Why

The remaining `vt100-tests` and `debug-logs` features in `codex-tui` were only selecting debug and test-only behavior. Those are exactly the cases where this repo already accepts `#[cfg(debug_assertions)]` as the Cargo-free substitute.

## What changed

- delete `vt100-tests` and `debug-logs` from `codex-tui`
- gate the VT100 integration tests with `debug_assertions` instead of a Cargo feature
- gate the textarea debug log site with `debug_assertions`
- shrink the manifest verifier allowlist again so only the remaining real feature exceptions stay permitted
2026-04-01 10:21:29 -07:00
Michael Bolin c31efbef25 cloud-tasks: remove cloud-tasks-client crate features
## Why

`codex-cloud-tasks-client` was still using Cargo features to select its HTTP and mock implementations. That leaks feature permutations into both Cargo and Bazel for a crate that does not need them.

## What changed

- delete the `online` and `mock` crate features from `codex-cloud-tasks-client`
- make `codex-backend-client` unconditional and always export both `HttpClient` and `MockClient`
- remove the internal `features = ["mock", "online"]` activation from `codex-cloud-tasks`
- remove the matching Bazel `crate_features` override
- shrink the manifest verifier allowlist to match the remaining exceptions
2026-04-01 10:21:12 -07:00
Michael Bolin c76e4380b4 ci: block new workspace crate features
## Why

We already enforce workspace metadata and lint inheritance for `codex-rs` manifests, but we still allow new crate features to slip into the workspace. That makes it too easy to add more Cargo-only feature permutations while we are trying to eliminate them.

## What changed

- extend `verify_cargo_workspace_manifests.py` to reject new `[features]` tables in workspace crates
- reject new optional dependencies that create implicit crate features
- reject new workspace-to-workspace `features = [...]` activations and `default-features = false`
- add a narrow temporary allowlist for the existing feature-bearing manifests and internal feature activations
- make the allowlist self-shrinking so a follow-up removal has to delete its corresponding exception
2026-04-01 10:20:36 -07:00
Michael Bolin d9ddce5190 Merge 604c14cfb3 into sapling-pr-archive-bolinfest 2026-04-01 10:13:37 -07:00
Michael Bolin 604c14cfb3 permissions: start using PermissionProfile as the canonical runtime model 2026-04-01 10:13:26 -07:00
Michael Bolin b32547475b Merge a25683538d into sapling-pr-archive-bolinfest 2026-04-01 09:28:27 -07:00
Michael Bolin a25683538d core: split large async hot paths out of codex.rs 2026-04-01 09:28:16 -07:00
Michael Bolin ff214a2d4e Merge f7e18e8086 into sapling-pr-archive-bolinfest 2026-04-01 09:26:54 -07:00
Michael Bolin f7e18e8086 Extract tool config into codex-tools 2026-04-01 09:26:49 -07:00
Michael Bolin d192f469a1 merge commit for archive created by Sapling 2026-04-01 09:24:20 -07:00
Michael Bolin 086ca7c728 bazel: lint rust_test targets in clippy workflow 2026-04-01 09:24:07 -07:00
Michael Bolin 95aefee347 Merge 94d1d007f6 into sapling-pr-archive-bolinfest 2026-04-01 09:16:27 -07:00
Michael Bolin 94d1d007f6 bazel: lint rust_test targets in clippy workflow 2026-04-01 09:16:22 -07:00
Michael Bolin 2e54f26f8a Merge 940e366603 into sapling-pr-archive-bolinfest 2026-04-01 09:14:41 -07:00
Michael Bolin 940e366603 bazel: lint rust_test targets in clippy workflow 2026-04-01 09:14:36 -07:00
Michael Bolin 75365bf718 fix: remove unused import (#16449)
https://github.com/openai/codex/pull/16433 resulted in an unused import
inside `mod tests`. This is flagged by `cargo clippy --tests`, which is
run as part of
https://github.com/openai/codex/actions/workflows/rust-ci-full.yml, but
is not caught by our current Bazel setup for clippy.

Fixing this ASAP to get
https://github.com/openai/codex/actions/workflows/rust-ci-full.yml green
again, but am looking at fixing the Bazel workflow in parallel.
2026-04-01 09:14:29 -07:00
Michael Bolin 86c40a9c13 Merge d7bfb9bf39 into sapling-pr-archive-bolinfest 2026-04-01 09:07:35 -07:00
Michael Bolin d7bfb9bf39 bazel: lint rust_test targets in clippy workflow 2026-04-01 09:07:22 -07:00
Michael Bolin de91925132 Merge d50be9a882 into sapling-pr-archive-bolinfest 2026-04-01 08:55:34 -07:00
Michael Bolin d50be9a882 fix: remove unused import 2026-04-01 08:55:27 -07:00
Michael Bolin 5cca5c0093 docs: update argument_comment_lint instructions in AGENTS.md (#16375)
I noticed that Codex was spending more time on running this lint check
locally than I would like. Now that we have the linter running
cross-platform using Bazel in CI, I find it's best just to update the PR
ASAP to get CI going than to wait for `just argument-comment-lint` to
finish locally before updating the PR.
2026-04-01 15:44:34 +00:00