Install rustls provider for remote websocket client (#17288)

Addresses #17283

Problem: `codex --remote wss://...` could panic because
app-server-client did not install rustls' process-level crypto provider
before opening TLS websocket connections.

Solution: Add the existing rustls provider utility dependency and
install it before the remote websocket connect.
This commit is contained in:
Eric Traut
2026-04-09 20:29:12 -07:00
committed by GitHub
Unverified
parent f6cc2bb0cb
commit 36712d8546
3 changed files with 4 additions and 0 deletions
+1
View File
@@ -1509,6 +1509,7 @@ dependencies = [
"codex-exec-server",
"codex-feedback",
"codex-protocol",
"codex-utils-rustls-provider",
"futures",
"pretty_assertions",
"serde",
+1
View File
@@ -19,6 +19,7 @@ codex-core = { workspace = true }
codex-exec-server = { workspace = true }
codex-feedback = { workspace = true }
codex-protocol = { workspace = true }
codex-utils-rustls-provider = { workspace = true }
futures = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
+2
View File
@@ -36,6 +36,7 @@ use codex_app_server_protocol::RequestId;
use codex_app_server_protocol::Result as JsonRpcResult;
use codex_app_server_protocol::ServerNotification;
use codex_app_server_protocol::ServerRequest;
use codex_utils_rustls_provider::ensure_rustls_crypto_provider;
use futures::SinkExt;
use futures::StreamExt;
use serde::de::DeserializeOwned;
@@ -169,6 +170,7 @@ impl RemoteAppServerClient {
})?;
request.headers_mut().insert(AUTHORIZATION, header_value);
}
ensure_rustls_crypto_provider();
let stream = timeout(CONNECT_TIMEOUT, connect_async(request))
.await
.map_err(|_| {