mirror of
https://github.com/openai/codex.git
synced 2026-04-29 19:03:02 +03:00
codex-rs: fix thread resume rejoin semantics (#11756)
## Summary - always rejoin an in-memory running thread on `thread/resume`, even when overrides are present - reject `thread/resume` when `history` is provided for a running thread - reject `thread/resume` when `path` mismatches the running thread rollout path - warn (but do not fail) on override mismatches for running threads - add more `thread_resume` integration tests and fixes; including restart-based resume-with-overrides coverage ## Validation - `just fmt` - `cargo test -p codex-app-server --test all thread_resume` - manual test with app-server-test-client https://github.com/openai/codex/pull/11755 - manual test both stdio and websocket in app
This commit is contained in:
@@ -17,3 +17,33 @@ cargo run -p codex-app-server-test-client -- \
|
||||
# 3) Call app-server (defaults to ws://127.0.0.1:4222)
|
||||
cargo run -p codex-app-server-test-client -- model-list
|
||||
```
|
||||
|
||||
## Testing Thread Rejoin Behavior
|
||||
|
||||
Build and start an app server using commands above. The app-server log is written to `/tmp/codex-app-server-test-client/app-server.log`
|
||||
|
||||
### 1) Get a thread id
|
||||
|
||||
Create at least one thread, then list threads:
|
||||
|
||||
```bash
|
||||
cargo run -p codex-app-server-test-client -- send-message-v2 "seed thread for rejoin test"
|
||||
cargo run -p codex-app-server-test-client -- thread-list --limit 5
|
||||
```
|
||||
|
||||
Copy a thread id from the `thread-list` output.
|
||||
|
||||
### 2) Rejoin while a turn is in progress (two terminals)
|
||||
|
||||
Terminal A:
|
||||
|
||||
```bash
|
||||
cargo run --bin codex-app-server-test-client -- \
|
||||
resume-message-v2 <THREAD_ID> "respond with thorough docs on the rust core"
|
||||
```
|
||||
|
||||
Terminal B (while Terminal A is still streaming):
|
||||
|
||||
```bash
|
||||
cargo run --bin codex-app-server-test-client -- thread-resume <THREAD_ID>
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user