mirror of
https://github.com/openai/codex.git
synced 2026-04-26 23:55:25 +00:00
Reapply "Add app-server transport layer with websocket support" with
additional fixes from https://github.com/openai/codex/pull/11313/changes
to avoid deadlocking.
This reverts commit 47356ff83c.
## Summary
To avoid deadlocking when queues are full, we maintain separate tokio
tasks dedicated to incoming vs outgoing event handling
- split the app-server main loop into two tasks in
`run_main_with_transport`
- inbound handling (`transport_event_rx`)
- outbound handling (`outgoing_rx` + `thread_created_rx`)
- separate incoming and outgoing websocket tasks
## Validation
Integration tests, testing thoroughly e2e in codex app w/ >10 concurrent
requests
<img width="1365" height="979" alt="Screenshot 2026-02-10 at 2 54 22 PM"
src="https://github.com/user-attachments/assets/47ca2c13-f322-4e5c-bedd-25859cbdc45f"
/>
---------
Co-authored-by: jif-oai <jif@openai.com>
31 lines
573 B
Rust
31 lines
573 B
Rust
mod account;
|
|
mod analytics;
|
|
mod app_list;
|
|
mod collaboration_mode_list;
|
|
mod compaction;
|
|
mod config_rpc;
|
|
mod connection_handling_websocket;
|
|
mod dynamic_tools;
|
|
mod experimental_api;
|
|
mod experimental_feature_list;
|
|
mod initialize;
|
|
mod model_list;
|
|
mod output_schema;
|
|
mod plan_item;
|
|
mod rate_limits;
|
|
mod request_user_input;
|
|
mod review;
|
|
mod skills_list;
|
|
mod thread_archive;
|
|
mod thread_fork;
|
|
mod thread_list;
|
|
mod thread_loaded_list;
|
|
mod thread_read;
|
|
mod thread_resume;
|
|
mod thread_rollback;
|
|
mod thread_start;
|
|
mod thread_unarchive;
|
|
mod turn_interrupt;
|
|
mod turn_start;
|
|
mod turn_steer;
|