This updates `codex exec` so that, by default, most of the agent's activity is
written to stderr so that only the final agent message is written to stdout.
This makes it easier to pipe `codex exec` into another tool without extra filtering.
I introduced `#![deny(clippy::print_stdout)]` to help enforce this change and
renamed the `ts_println!()` macro to `ts_msg()` because (1) it no longer calls
`println!()` and (2), `ts_eprintln!()` seemed too long of a name.
While here, this also adds `-o` as an alias for `--output-last-message`.
Fixes https://github.com/openai/codex/issues/1670
This updates `codex exec` so that, by default, most of the agent's activity is
written to stderr so that only the final agent message is written to stdout.
This makes it easier to pipe `codex exec` into another tool without extra filtering.
I introduced `#![deny(clippy::print_stdout)]` to help enforce this change and
renamed the `ts_println!()` macro to `ts_msg()` because (1) it no longer calls
`println!()` and (2), `ts_eprintln!()` seemed too long of a name.
While here, this also adds `-o` as an alias for `--output-last-message`.
Fixes https://github.com/openai/codex/issues/1670
This updates `codex exec` so that, by default, most of the agent's activity is
written to stderr so that only the final agent message is written to stdout.
This makes it easier to pipe `codex exec` into another tool without extra filtering.
I introduced `#![deny(clippy::print_stdout)]` to help enforce this change and
renamed the `ts_println!()` macro to `ts_msg()` because (1) it no longer calls
`println!()` and (2), `ts_eprintln!()` seemed too long of a name.
While here, this also adds `-o` as an alias for `--output-last-message`.
Fixes https://github.com/openai/codex/issues/1670
This updates `codex exec` so that, by default, most of the agent's activity is
written to stderr so that only the final agent message is written to stdout.
This makes it easier to pipe `codex exec` into another tool without extra filtering.
I introduced `#![deny(clippy::print_stdout)]` to help enforce this change and
renamed the `ts_println!()` macro to `ts_msg()` because (1) it no longer calls
`println!()` and (2), `ts_eprintln!()` seemed too long of a name.
While here, this also adds `-o` as an alias for `--output-last-message`.
Fixes https://github.com/openai/codex/issues/1670
Before when you would enter `/di`, hit tab on `/diff`, and then hit
enter, it would execute `/diff`. But now it's just sending it as a text.
This fixes the issue.
### Summary
* Updated fuzzy search result to include the file name.
* This should not affect CLI usage and the UI there will be addressed in
a separate PR.
### Testing
Tested locally and with the extension.
### Screenshot
<img width="431" height="244" alt="Screenshot 2025-10-02 at 11 08 44 AM"
src="https://github.com/user-attachments/assets/ba2ca299-a81d-4453-9242-1750e945aea2"
/>
---------
Co-authored-by: shijie.rao <shijie.rao@squareup.com>
- prefix command approval reasons with "Reason:"
- show keyboard shortcuts for some ListSelectionItems
- remove "description" lines for approval options, and make the labels
more verbose
- add a spacer line in diff display after the path
and some other minor refactors that go along with the above.
<img width="859" height="508" alt="Screenshot 2025-10-02 at 1 24 50 PM"
src="https://github.com/user-attachments/assets/4fa7ecaf-3d3a-406a-bb4d-23e30ce3e5cf"
/>
Fixes#4176
Some common tools provide a schema (even if just an empty object schema)
as the value for `additionalProperties`. The parsing as it currently
stands fails when it encounters this. This PR updates the schema to
accept a schema object in addition to a boolean value, per the JSON
Schema spec.
We get spurrious reports that the model writes fenced code blocks
without an info tag which then causes auto-language detection in the
extension to incorrectly highlight the code and show the wrong language.
The model should really always include a tag when it can.