Commit Graph

2803 Commits

Author SHA1 Message Date
Michael Bolin
589c6096be Merge 0076e3ac19 into sapling-pr-archive-bolinfest 2025-08-13 17:00:34 -07:00
Michael Bolin
0076e3ac19 fix: verify notifications are sent with the conversationId set 2025-08-13 17:00:22 -07:00
Michael Bolin
8d4eaea440 Merge 55b62d6e25 into sapling-pr-archive-bolinfest 2025-08-13 16:20:04 -07:00
Michael Bolin
55b62d6e25 fix: skip cargo test for release builds on ordinary CI because it is slow, particularly with --all-features set 2025-08-13 16:19:57 -07:00
Michael Bolin
f516910dca Merge 1b07bd717f into sapling-pr-archive-bolinfest 2025-08-13 16:02:38 -07:00
Michael Bolin
1b07bd717f feat: support traditional JSON-RPC request/response in MCP server 2025-08-13 16:02:33 -07:00
Michael Bolin
9bf0be74f1 merge commit for archive created by Sapling 2025-08-13 15:55:59 -07:00
Michael Bolin
c50e892ba5 feat: support traditional JSON-RPC request/response in MCP server 2025-08-13 15:55:52 -07:00
Michael Bolin
4fd22134b7 Merge b792c4d0bb into sapling-pr-archive-bolinfest 2025-08-13 15:50:12 -07:00
Michael Bolin
b792c4d0bb feat: support traditional JSON-RPC request/response in MCP server 2025-08-13 15:47:50 -07:00
Michael Bolin
37fc4185ef fix: update OutgoingMessageSender::send_response() to take Serialize (#2263)
This makes `send_response()` easier to work with.
2025-08-13 14:29:13 -07:00
aibrahim-oai
d4533a0bb3 TUI: change the diff preview to have color fg not bg (#2270)
<img width="328" height="95" alt="image"
src="https://github.com/user-attachments/assets/70e1e6c2-a88f-4058-8763-85c3a02eedb4"
/>
2025-08-13 14:21:24 -07:00
Dylan
99a242ef41 [codex-cli] Add ripgrep as a dependency for node environment (#2237)
## Summary
Ripgrep is our preferred tool for file search. When users install via
`brew install codex`, it's automatically installed as a dependency. We
want to ensure that users running via an npm install also have this
tool! Microsoft has already solved this problem for VS Code - let's not
reinvent the wheel.

This approach of appending to the PATH directly might be a bit
heavy-handed, but feels reasonably robust to a variety of environment
concerns. Open to thoughts on better approaches here!

## Testing
- [x] confirmed this import approach works with `node -e "const { rgPath
} = require('@vscode/ripgrep'); require('child_process').spawn(rgPath,
['--version'], { stdio: 'inherit' })"`
- [x] Ran codex.js locally with `rg` uninstalled, asked it to run `which
rg`. Output below:

```
 Ran command which rg; echo $?
  ⎿ /Users/dylan.hurd/code/dh--npm-rg/node_modules/@vscode/ripgrep/bin/rg
    0

codex
Re-running to confirm the path and exit code.

- Path: `/Users/dylan.hurd/code/dh--npm-rg/node_modules/@vscode/ripgrep/bin/rg`
- Exit code: `0`
```
2025-08-13 13:49:27 -07:00
Michael Bolin
472f9cfb38 merge commit for archive created by Sapling 2025-08-13 13:40:14 -07:00
Michael Bolin
06aa79880e fix: update OutgoingMessageSender::send_response() to take Serialize 2025-08-13 13:40:04 -07:00
Michael Bolin
08ed618f72 chore: introduce ConversationManager as a clearinghouse for all conversations (#2240)
This PR does two things because after I got deep into the first one I
started pulling on the thread to the second:

- Makes `ConversationManager` the place where all in-memory
conversations are created and stored. Previously, `MessageProcessor` in
the `codex-mcp-server` crate was doing this via its `session_map`, but
this is something that should be done in `codex-core`.
- It unwinds the `ctrl_c: tokio::sync::Notify` that was threaded
throughout our code. I think this made sense at one time, but now that
we handle Ctrl-C within the TUI and have a proper `Op::Interrupt` event,
I don't think this was quite right, so I removed it. For `codex exec`
and `codex proto`, we now use `tokio::signal::ctrl_c()` directly, but we
no longer make `Notify` a field of `Codex` or `CodexConversation`.

Changes of note:

- Adds the files `conversation_manager.rs` and `codex_conversation.rs`
to `codex-core`.
- `Codex` and `CodexSpawnOk` are no longer exported from `codex-core`:
other crates must use `CodexConversation` instead (which is created via
`ConversationManager`).
- `core/src/codex_wrapper.rs` has been deleted in favor of
`ConversationManager`.
- `ConversationManager::new_conversation()` returns `NewConversation`,
which is in line with the `new_conversation` tool we want to add to the
MCP server. Note `NewConversation` includes `SessionConfiguredEvent`, so
we eliminate checks in cases like `codex-rs/core/tests/client.rs` to
verify `SessionConfiguredEvent` is the first event because that is now
internal to `ConversationManager`.
- Quite a bit of code was deleted from
`codex-rs/mcp-server/src/message_processor.rs` since it no longer has to
manage multiple conversations itself: it goes through
`ConversationManager` instead.
- `core/tests/live_agent.rs` has been deleted because I had to update a
bunch of tests and all the tests in here were ignored, and I don't think
anyone ever ran them, so this was just technical debt, at this point.
- Removed `notify_on_sigint()` from `util.rs` (and in a follow-up, I
hope to refactor the blandly-named `util.rs` into more descriptive
files).
- In general, I started replacing local variables named `codex` as
`conversation`, where appropriate, though admittedly I didn't do it
through all the integration tests because that would have added a lot of
noise to this PR.




---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed
with [ReviewStack](https://reviewstack.dev/openai/codex/pull/2240).
* #2264
* #2263
* __->__ #2240
2025-08-13 13:38:18 -07:00
Michael Bolin
b58aa53e01 Merge 7a5c29804c into sapling-pr-archive-bolinfest 2025-08-13 13:04:49 -07:00
Michael Bolin
7a5c29804c feat: support traditional JSON-RPC request/response in MCP server 2025-08-13 13:02:22 -07:00
Michael Bolin
7ad4c51555 merge commit for archive created by Sapling 2025-08-13 12:49:45 -07:00
Michael Bolin
6ed88edfa0 fix: update OutgoingMessageSender::send_response() to take Serialize 2025-08-13 12:49:39 -07:00
Michael Bolin
6a57c404b7 merge commit for archive created by Sapling 2025-08-13 12:47:40 -07:00
Michael Bolin
8ddbab6d33 fix: update OutgoingMessageSender::send_response() to take Serialize 2025-08-13 12:47:32 -07:00
Michael Bolin
c680a3be60 Merge 064b77ab21 into sapling-pr-archive-bolinfest 2025-08-13 12:46:17 -07:00
Michael Bolin
064b77ab21 fix: update OutgoingMessageSender::send_response() to take Serialize 2025-08-13 12:45:42 -07:00
ae
30ee24521b fix: remove behavioral prompting from update_plan tool def (#2261)
- Moved some of the content to the main prompt.
2025-08-13 19:05:13 +00:00
Michael Bolin
86247a014d merge commit for archive created by Sapling 2025-08-13 11:18:09 -07:00
Michael Bolin
8a4b683bd9 chore: introduce CodexServer as a clearinghouse for all conversations 2025-08-13 11:18:03 -07:00
easong-openai
cb312dfdb4 Update header from Working once batched commands are done (#2249)
Update commands from Working to Complete or Failed after they're done

before:
<img width="725" height="332" alt="image"
src="https://github.com/user-attachments/assets/fb93d21f-5c4a-42bc-a154-14f4fe99d5f9"
/>

after:
<img width="464" height="65" alt="image"
src="https://github.com/user-attachments/assets/15ec7c3b-355f-473e-9a8e-eab359ec5f0d"
/>
2025-08-13 11:10:48 -07:00
Michael Bolin
b6cf98a07a merge commit for archive created by Sapling 2025-08-13 11:07:04 -07:00
Michael Bolin
8fe92eb4ba chore: introduce CodexServer as a clearinghouse for all conversations 2025-08-13 11:06:59 -07:00
Michael Bolin
d008172ee5 merge commit for archive created by Sapling 2025-08-13 11:04:46 -07:00
Michael Bolin
335c1af95e chore: introduce CodexServer as a clearinghouse for all conversations 2025-08-13 11:04:41 -07:00
Michael Bolin
97a5f25f59 merge commit for archive created by Sapling 2025-08-13 11:03:01 -07:00
Michael Bolin
726cc18adf chore: introduce CodexServer as a clearinghouse for all conversations 2025-08-13 11:02:54 -07:00
amjith
0159bc7bdb feat(tui): add ctrl-b and ctrl-f shortcuts (#2260)
## Summary
- support Ctrl-b and Ctrl-f to move the cursor left and right in the
chat composer text area
- test Ctrl-b/Ctrl-f cursor movements

## 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_689cbd1d7968832e876fff169891e486
2025-08-13 10:37:39 -07:00
Michael Bolin
d798bb9c60 Merge 18ecca4b08 into sapling-pr-archive-bolinfest 2025-08-13 10:36:19 -07:00
Michael Bolin
18ecca4b08 chore: introduce CodexServer as a clearinghouse for all conversations 2025-08-13 10:36:14 -07:00
Michael Bolin
72826ccc7c merge commit for archive created by Sapling 2025-08-13 10:27:14 -07:00
Michael Bolin
5155b06581 chore: introduce CodexServer as a clearinghouse for all conversations 2025-08-13 10:23:38 -07:00
Michael Bolin
079d141953 merge commit for archive created by Sapling 2025-08-13 10:09:31 -07:00
Michael Bolin
7fdd266b31 chore: introduce CodexServer as a clearinghouse for all conversations 2025-08-13 10:09:26 -07:00
Michael Bolin
b8d90bd338 merge commit for archive created by Sapling 2025-08-13 09:43:40 -07:00
Michael Bolin
bb9e75cee3 chore: introduce CodexServer as a clearinghouse for all conversations 2025-08-13 09:43:32 -07:00
pakrym-oai
e6dc5a6df5 fix: display canonical command name in help (#2246)
## Summary
- ensure CLI help uses `codex` as program name regardless of binary
filename

## 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_689bd5a731188320814dcbbc546ce22a
2025-08-13 09:39:11 -07:00
Michael Bolin
3b22af9939 merge commit for archive created by Sapling 2025-08-13 09:21:44 -07:00
Michael Bolin
1152f4fdd6 chore: introduce CodexServer as a clearinghouse for all conversations 2025-08-13 09:21:35 -07:00
Michael Bolin
bcee2818a0 merge commit for archive created by Sapling 2025-08-13 08:37:15 -07:00
Michael Bolin
0255cb3ad0 chore: introduce CodexServer as a clearinghouse for all conversations 2025-08-13 08:37:03 -07:00
Michael Bolin
bc968672d5 merge commit for archive created by Sapling 2025-08-13 08:30:31 -07:00
Michael Bolin
5a097d9746 chore: introduce CodexServer as a clearinghouse for all conversations 2025-08-13 08:30:14 -07:00