Commit Graph

1692 Commits

Author SHA1 Message Date
Michael Bolin
6dba011651 merge commit for archive created by Sapling 2025-06-04 08:22:36 -07:00
Michael Bolin
908ca8f162 feat: add support for login with ChatGPT 2025-06-04 08:22:30 -07:00
Michael Bolin
210525e27c merge commit for archive created by Sapling 2025-06-04 00:22:25 -07:00
Michael Bolin
9182f93da5 feat: add support for login with ChatGPT 2025-06-04 00:22:19 -07:00
Michael Bolin
6462e6eb1a merge commit for archive created by Sapling 2025-06-04 00:06:12 -07:00
Michael Bolin
46a7e4ad18 feat: add support for login with ChatGPT 2025-06-04 00:06:06 -07:00
Michael Bolin
1609db9e04 Merge 592b354a87 into sapling-pr-archive-bolinfest 2025-06-04 00:03:51 -07:00
Michael Bolin
592b354a87 feat: add support for login with ChatGPT 2025-06-04 00:03:46 -07:00
Michael Bolin
3297f12026 merge commit for archive created by Sapling 2025-06-03 23:59:42 -07:00
Michael Bolin
2bb6a7454b feat: add support for login with ChatGPT 2025-06-03 23:59:30 -07:00
Michael Bolin
09d07b6767 merge commit for archive created by Sapling 2025-06-03 23:29:14 -07:00
Michael Bolin
1277c0557d feat: add support for login with ChatGPT 2025-06-03 23:28:39 -07:00
Michael Bolin
682751d19d merge commit for archive created by Sapling 2025-06-03 16:22:32 -07:00
Michael Bolin
d061e26e70 feat: add support for login with ChatGPT 2025-06-03 16:22:21 -07:00
Michael Bolin
6a47c689a0 merge commit for archive created by Sapling 2025-06-03 16:10:24 -07:00
Michael Bolin
1ab5b27920 feat: add support for login with ChatGPT 2025-06-03 16:10:19 -07:00
Michael Bolin
5a5dc357f4 merge commit for archive created by Sapling 2025-06-03 15:51:05 -07:00
Michael Bolin
815bff6964 feat: add support for login with ChatGPT 2025-06-03 15:50:59 -07:00
Michael Bolin
d607b6cc3b merge commit for archive created by Sapling 2025-06-03 15:50:27 -07:00
Michael Bolin
c2ecf2818a feat: add support for login with ChatGPT 2025-06-03 15:50:17 -07:00
Michael Bolin
5b73f7cc05 merge commit for archive created by Sapling 2025-06-03 14:32:05 -07:00
Michael Bolin
000b715181 feat: add support for login with ChatGPT 2025-06-03 14:31:59 -07:00
Michael Bolin
1c581c5d76 Merge 4f2686bb18 into sapling-pr-archive-bolinfest 2025-06-03 14:15:31 -07:00
Michael Bolin
4f2686bb18 feat: add support for login with ChatGPT 2025-06-03 14:15:12 -07:00
Michael Bolin
c6fcec55fe fix: always send full instructions when using the Responses API (#1207)
This fixes a longstanding error in the Rust CLI where `codex.rs`
contained an errant `is_first_turn` check that would exclude the user
instructions for subsequent "turns" of a conversation when using the
responses API (i.e., when `previous_response_id` existed).

While here, renames `Prompt.instructions` to `Prompt.user_instructions`
since we now have quite a few levels of instructions floating around.
Also removed an unnecessary use of `clone()` in
`Prompt.get_full_instructions()`.
codex-rs-45519e12f39777b65c05ed498503ddcb60beb289-1-rust-v0.0.2506030956
2025-06-03 09:40:19 -07:00
Michael Bolin
2b678e91f2 merge commit for archive created by Sapling 2025-06-03 09:36:00 -07:00
Michael Bolin
7ee8eaedff fix: always send full instructions when using the Responses API 2025-06-03 09:35:54 -07:00
Michael Bolin
4a4187fda8 merge commit for archive created by Sapling 2025-06-03 09:22:49 -07:00
Michael Bolin
d90692bdd7 fix: always send full instructions when using the Responses API 2025-06-03 09:22:37 -07:00
Michael Bolin
6fcc528a43 fix: provide tolerance for apply_patch tool (#993)
As explained in detail in the doc comment for `ParseMode::Lenient`, we
have observed that GPT-4.1 does not always generate a valid invocation
of `apply_patch`. Fortunately, the error is predictable, so we introduce
some new logic to the `codex-apply-patch` crate to recover from this
error.

Because we would like to avoid this becoming a de facto standard (as it
would be incompatible if `apply_patch` were provided as an actual
executable, unless we also introduced the lenient behavior in the
executable, as well), we require passing `ParseMode::Lenient` to
`parse_patch_text()` to make it clear that the caller is opting into
supporting this special case.

Note the analogous change to the TypeScript CLI was
https://github.com/openai/codex/pull/930. In addition to changing the
accepted input to `apply_patch`, it also introduced additional
instructions for the model, which we include in this PR.

Note that `apply-patch` does not depend on either `regex` or
`regex-lite`, so some of the checks are slightly more verbose to avoid
introducing this dependency.

That said, this PR does not leverage the existing
`extract_heredoc_body_from_apply_patch_command()`, which depends on
`tree-sitter` and `tree-sitter-bash`:


5a5aa89914/codex-rs/apply-patch/src/lib.rs (L191-L246)

though perhaps it should.
2025-06-03 09:06:38 -07:00
Michael Bolin
bf4f9977f6 Merge fae9ff8317 into sapling-pr-archive-bolinfest 2025-06-03 08:50:44 -07:00
Michael Bolin
fae9ff8317 fix: provide tolerance for apply_patch tool 2025-06-03 08:50:41 -07:00
Michael Bolin
26fe415a0d merge commit for archive created by Sapling 2025-06-03 08:49:45 -07:00
Michael Bolin
0cb4f46b08 fix: provide tolerance for apply_patch tool 2025-06-03 08:49:39 -07:00
Michael Bolin
06fb13a946 merge commit for archive created by Sapling 2025-06-03 08:27:49 -07:00
Michael Bolin
29686a7d8c fix: provide tolerance for apply_patch tool 2025-06-03 08:27:43 -07:00
Michael Bolin
ca5e62998a merge commit for archive created by Sapling 2025-06-02 23:38:43 -07:00
Michael Bolin
1f0f39ca58 fix: provide tolerance for apply_patch tool 2025-06-02 23:38:36 -07:00
Michael Bolin
364366b690 merge commit for archive created by Sapling 2025-06-02 23:26:58 -07:00
Michael Bolin
bdb0bd4d76 fix: provide tolerance for apply_patch tool 2025-06-02 23:26:03 -07:00
Michael Bolin
741479f5f5 merge commit for archive created by Sapling 2025-06-02 22:42:36 -07:00
Michael Bolin
8940dbb12a fix: provide tolerance for apply_patch tool 2025-06-02 22:42:09 -07:00
Michael Bolin
743e580b33 merge commit for archive created by Sapling 2025-06-02 17:25:28 -07:00
Michael Bolin
51cbec2dc3 fix: provide tolerance for apply_patch tool 2025-06-02 17:25:05 -07:00
Michael Bolin
5a5aa89914 chore: replace regex with regex-lite, where appropriate (#1200)
As explained on https://crates.io/crates/regex-lite, `regex-lite` is a
lighter alternative to `regex` and seems to be sufficient for our
purposes.
2025-06-02 17:11:45 -07:00
Michael Bolin
2d6824040a merge commit for archive created by Sapling 2025-06-02 16:59:26 -07:00
Michael Bolin
956dc56a1f chore: replace regex with regex-lite, where appropriate 2025-06-02 16:58:49 -07:00
Michael Bolin
8691e269c4 Merge 0efbb7f7f1 into sapling-pr-archive-bolinfest 2025-06-02 16:56:39 -07:00
Michael Bolin
0efbb7f7f1 chore: replace regex with regex-lite, where appropriate 2025-06-02 16:56:32 -07:00
Michael Bolin
0f3cc8f842 feat: make reasoning effort/summaries configurable (#1199)
Previous to this PR, we always set `reasoning` when making a request
using the Responses API:


d7245cbbc9/codex-rs/core/src/client.rs (L108-L111)

Though if you tried to use the Rust CLI with `--model gpt-4.1`, this
would fail with:

```shell
"Unsupported parameter: 'reasoning.effort' is not supported with this model."
```

We take a cue from the TypeScript CLI, which does a check on the model
name:


d7245cbbc9/codex-cli/src/utils/agent/agent-loop.ts (L786-L789)

This PR does a similar check, though also adds support for the following
config options:

```
model_reasoning_effort = "low" | "medium" | "high" | "none"
model_reasoning_summary = "auto" | "concise" | "detailed" | "none"
```

This way, if you have a model whose name happens to start with `"o"` (or
`"codex"`?), you can set these to `"none"` to explicitly disable
reasoning, if necessary. (That said, it seems unlikely anyone would use
the Responses API with non-OpenAI models, but we provide an escape
hatch, anyway.)

This PR also updates both the TUI and `codex exec` to show `reasoning
effort` and `reasoning summaries` in the header.
2025-06-02 16:01:34 -07:00