mirror of
https://github.com/openai/codex.git
synced 2026-11-13 14:46:14 +00:00
Support remote code-mode hosts in app-server (#35098)
## What changed - Add `--code-mode-host ws://...` and `wss://...` support to `codex app-server`, gated by the `code_mode_host` feature. When omitted, app-server continues to start a local host. - Share one remote WebSocket connection across the process's threads, using the configured HTTP client's proxy and TLS policy and preserving the existing framed host protocol. - Reject invalid host URLs, bound WebSocket frame sizes, close connections cleanly, and return an error when a connection exceeds 1,024 pending delegate calls without disconnecting it. ## Testing - Cover CLI validation, WebSocket protocol execution and shutdown, connection sharing across app-server threads, and delegate-call capacity recovery. GitOrigin-RevId: 715e82d4d9db1e7e2f91b754a777dcab504e2ae4
This commit is contained in:
1 parent
0dfa778dae
commit
f61b51ddd9
28 files changed
+977
-65
No files matched your search
@@ -428,12 +428,14 @@ async fn code_mode_session_provider_is_shared_across_threads() {
|
||||
config.cwd = config.codex_home.abs();
|
||||
std::fs::create_dir_all(&config.codex_home).expect("create codex home");
|
||||
|
||||
let provider: Arc<dyn CodeModeSessionProvider> = Arc::new(InProcessCodeModeSessionProvider);
|
||||
let manager = ThreadManager::with_models_provider_and_home_for_tests(
|
||||
CodexAuth::from_api_key("dummy"),
|
||||
config.model_provider.clone(),
|
||||
config.codex_home.to_path_buf(),
|
||||
Arc::new(codex_exec_server::EnvironmentManager::default_for_tests()),
|
||||
);
|
||||
)
|
||||
.with_code_mode_session_provider(Arc::clone(&provider));
|
||||
let first = manager
|
||||
.start_thread(StartThreadOptions::new(config.clone()))
|
||||
.await
|
||||
@@ -456,6 +458,7 @@ async fn code_mode_session_provider_is_shared_across_threads() {
|
||||
.code_mode_service
|
||||
.session_provider();
|
||||
assert!(Arc::ptr_eq(&first_provider, &second_provider));
|
||||
assert!(Arc::ptr_eq(&first_provider, &provider));
|
||||
assert!(Arc::ptr_eq(
|
||||
&first_provider,
|
||||
&manager.state.code_mode_session_provider
|
||||
|
||||
Reference in new issue
Block a user