Commit Graph

8634 Commits

Author SHA1 Message Date
Michael Bolin
ca6ded7d2a fix: eliminate ServerOptions.login_timeout and have caller use tokio::time::timeout() instead 2025-08-17 14:17:45 -07:00
Michael Bolin
d107e27d59 fix: change shutdown_flag from Arc<AtomicBool> to tokio::sync::Notify 2025-08-17 14:12:18 -07:00
Michael Bolin
a868d626bb Merge a72581ec8f into sapling-pr-archive-bolinfest 2025-08-17 13:58:40 -07:00
Michael Bolin
a72581ec8f fix: async-ify login flow 2025-08-17 13:54:55 -07:00
Michael Bolin
4b8d0fda61 Merge 21816438b8 into sapling-pr-archive-bolinfest 2025-08-17 13:17:27 -07:00
Michael Bolin
21816438b8 chore: prefer returning Err to expect() 2025-08-17 13:17:21 -07:00
Michael Bolin
71cae06e66 fix: refactor login/src/server.rs so process_request() is a separate function (#2388) 2025-08-17 12:32:56 -07:00
Michael Bolin
a57eb9d8fb Merge 53f893ce8c into sapling-pr-archive-bolinfest 2025-08-17 11:35:10 -07:00
Michael Bolin
53f893ce8c chore: prefer returning Err to expect() 2025-08-17 11:35:03 -07:00
Michael Bolin
19168d74fe merge commit for archive created by Sapling 2025-08-17 11:19:34 -07:00
Michael Bolin
374c1aa922 fix: refactor login/src/server.rs so process_request() is a separate function 2025-08-17 11:19:29 -07:00
Michael Bolin
5f94238199 merge commit for archive created by Sapling 2025-08-17 11:16:49 -07:00
Michael Bolin
72aacd9a9b fix: refactor login/src/server.rs so process_request() is a separate function 2025-08-17 11:14:49 -07:00
Eric Traut
350b00d54b Added MCP server command to enable authentication using ChatGPT (#2373)
This PR adds two new APIs for the MCP server: 1) loginChatGpt, and 2)
cancelLoginChatGpt. The first starts a login server and returns a local
URL that allows for browser-based authentication, and the second
provides a way to cancel the login attempt. If the login attempt
succeeds, a notification (in the form of an event) is sent to a
subscriber.

I also added a timeout mechanism for the existing login server. The
loginChatGpt code path uses a 10-minute timeout by default, so if the
user fails to complete the login flow in that timeframe, the login
server automatically shuts down. I tested the timeout code by manually
setting the timeout to a much lower number and confirming that it works
as expected when used e2e.
2025-08-17 10:03:52 -07:00
Eric Traut
1930ee720a Added launch profile for attaching to a running codex CLI process (#2372) 2025-08-15 23:35:01 -07:00
Jeremy Rose
7a80d3c96c replace /prompts with a rotating placeholder (#2314) 2025-08-15 19:37:10 -07:00
Michael Bolin
5d101561d8 Merge 8268edb987 into sapling-pr-archive-bolinfest 2025-08-15 17:41:00 -07:00
Michael Bolin
8268edb987 fix: introduce EventMsg::TurnAborted 2025-08-15 17:40:54 -07:00
Michael Bolin
4ed282c563 Merge 8fef3ae952 into sapling-pr-archive-bolinfest 2025-08-15 17:32:20 -07:00
Michael Bolin
8fef3ae952 fix: introduce EventMsg::TurnAborted 2025-08-15 17:32:14 -07:00
Michael Bolin
2b3d5d050c merge commit for archive created by Sapling 2025-08-15 17:26:51 -07:00
Michael Bolin
465175a163 fix: introduce EventMsg::TurnAborted 2025-08-15 17:26:24 -07:00
Michael Bolin
11a4eacc37 Merge f1d4640865 into sapling-pr-archive-bolinfest 2025-08-15 16:00:38 -07:00
Michael Bolin
f1d4640865 remove mcp-server/src/mcp_protocol.rs and the code that depends on it 2025-08-15 16:00:32 -07:00
aibrahim-oai
d3078b9adc Show progress indicator for /diff command (#2245)
## Summary
- Show a temporary Working on diff state in the bottom pan 
- Add `DiffResult` app event and dispatch git diff asynchronously

## Testing
- `just fmt`
- `just fix` *(fails: `let` expressions in this position are unstable)*
- `cargo test --all-features` *(fails: `let` expressions in this
position are unstable)*

------
https://chatgpt.com/codex/tasks/task_i_689a839f32b88321840a893551d5fbef
2025-08-15 15:32:41 -07:00
Michael Bolin
379106d3eb fix: include an entry for windows-x86_64 in the generated DotSlash file (#2361)
Now that we are improving our Windows support, we should be including an
entry for it in the DotSlash file.

Though anyone using the DotSlash file with Windows should use the new
Windows shim introduced in https://github.com/facebook/dotslash/pull/46.
For more info, see https://dotslash-cli.com/docs/windows/.
2025-08-15 14:47:36 -07:00
Michael Bolin
ee253c61c2 Merge 01aeaadcfc into sapling-pr-archive-bolinfest 2025-08-15 14:34:23 -07:00
Michael Bolin
01aeaadcfc fix: include an entry for windows-x86_64 in the generated DotSlash file 2025-08-15 14:34:13 -07:00
Michael Bolin
0abd42df53 Merge eb6595ac20 into sapling-pr-archive-bolinfest 2025-08-15 13:59:39 -07:00
Michael Bolin
eb6595ac20 remove mcp-server/src/mcp_protocol.rs and the code that depends on it 2025-08-15 13:59:19 -07:00
Michael Bolin
57de0099bc Merge 8b1b3f1356 into sapling-pr-archive-bolinfest 2025-08-15 13:55:09 -07:00
Michael Bolin
8b1b3f1356 remove mcp-server/src/mcp_protocol.rs and the code that depends on it 2025-08-15 13:55:03 -07:00
LongYinan
b31c5033a9 chore: remove duplicated lockfile (#2336) 2025-08-15 13:54:47 -07:00
Jeremy Rose
1ad8ae2579 color the status letter in apply patch summary (#2337)
<img width="440" height="77" alt="Screenshot 2025-08-14 at 8 30 30 PM"
src="https://github.com/user-attachments/assets/c6169a3a-2e98-4ace-b7ee-918cf4368b7a"
/>
2025-08-15 20:25:48 +00:00
pakrym-oai
c1156a878b Remove duplicated "Successfully logged in message" (#2357) 2025-08-15 13:01:27 -07:00
Kazuhiro Sera
dcfdd2faf5 Fix #2296 Add "minimal" reasoning effort for GPT 5 models (#2326)
This pull request resolves #2296; I've confirmed if it works by:

1. Add settings to ~/.codex/config.toml:
```toml
model_reasoning_effort = "minimal"
```

2. Run the CLI:
```
cd codex-rs
cargo build && RUST_LOG=trace cargo run --bin codex
/status
tail -f ~/.codex/log/codex-tui.log
```

Co-authored-by: pakrym-oai <pakrym@openai.com>
2025-08-15 12:59:52 -07:00
Michael Bolin
d262244725 fix: introduce codex-protocol crate (#2355) 2025-08-15 12:44:40 -07:00
Michael Bolin
54c598f8fe merge commit for archive created by Sapling 2025-08-15 10:56:45 -07:00
Michael Bolin
730f4be313 fix: introduce codex-protocol crate 2025-08-15 10:56:39 -07:00
Jeremy Rose
7c26c8e091 tui: skip identical consecutive entries in local composer history (#2352)
This PR avoids inserting duplicate consecutive messages into the Chat
Composer's local history.
2025-08-15 10:55:44 -07:00
Michael Bolin
3faf6a4c6a merge commit for archive created by Sapling 2025-08-15 10:54:32 -07:00
Michael Bolin
0b850fa1f6 fix: introduce codex-protocol crate 2025-08-15 10:54:26 -07:00
Michael Bolin
c7026731d2 merge commit for archive created by Sapling 2025-08-15 10:51:57 -07:00
Michael Bolin
9279b9cc98 fix: introduce codex-protocol crate 2025-08-15 10:51:02 -07:00
Michael Bolin
eda50d8372 feat: introduce ClientRequest::SendUserTurn (#2345)
This adds a new request type, `SendUserTurn`, that makes it possible to
submit a `Op::UserTurn` operation (introduced in #2329) to a
conversation. This PR also adds a new integration test that verifies
that changing from `AskForApproval::UnlessTrusted` to
`AskForApproval::Never` mid-conversation ensures that an elicitation is
no longer sent for running `python3 -c print(42)`.

---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed
with [ReviewStack](https://reviewstack.dev/openai/codex/pull/2345).
* __->__ #2345
* #2329
* #2343
* #2340
* #2338
2025-08-15 10:05:58 -07:00
Michael Bolin
17aa394ae7 feat: introduce Op:UserTurn (#2329)
This introduces `Op::UserTurn`, which makes it possible to override many
of the fields that were set when the `Session` was originally created
when creating a new conversation turn. This is one way we could support
changing things like `model` or `cwd` in the middle of the conversation,
though we may want to consider making each field optional, or
alternatively having a separate `Op` that mutates the `TurnContext`
associated with a `submission_loop()`.

---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed
with [ReviewStack](https://reviewstack.dev/openai/codex/pull/2329).
* #2345
* __->__ #2329
* #2343
* #2340
* #2338
2025-08-15 09:56:05 -07:00
Michael Bolin
b99d9a7096 merge commit for archive created by Sapling 2025-08-15 09:40:20 -07:00
Michael Bolin
971fdee6ed feat: introduce ClientRequest::SendUserTurn 2025-08-15 09:40:09 -07:00
Michael Bolin
747be8b5c3 feat: introduce Op:UserTurn 2025-08-15 09:40:09 -07:00
Michael Bolin
13ed67cfc1 feat: introduce TurnContext (#2343)
This PR introduces `TurnContext`, which is designed to hold a set of
fields that should be constant for a turn of a conversation. Note that
the fields of `TurnContext` were previously governed by `Session`.

Ultimately, we want to enable users to change these values between turns
(changing model, approval policy, etc.), though in the current
implementation, the `TurnContext` is constant for the entire
conversation.

---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed
with [ReviewStack](https://reviewstack.dev/openai/codex/pull/2345).
* #2345
* #2329
* __->__ #2343
* #2340
* #2338
2025-08-15 09:40:02 -07:00