mirror of
https://github.com/openai/codex.git
synced 2026-10-30 19:18:49 +00:00
Remove WebSocket transport from code-mode hosts (#40692)
## What changed - Accept only `http://` and `https://` gRPC endpoints for app server `--code-mode-host` connections. - Limit the standalone code-mode host to stdio and gRPC listeners. - Remove the WebSocket session provider, dual-WebSocket negotiation, transport lanes, and related dependencies and tests. - Keep coverage for shared and prewarmed gRPC hosts and reject WebSocket host URLs in CLI parsing tests. GitOrigin-RevId: 8792604e79ffd54ce776074a4dc3f7d55e63752a
This commit is contained in:
committed by
copyberry
parent
9be8d6e1c3
commit
725b3a44f8
@@ -12,7 +12,6 @@ use super::ProtocolVersion;
|
||||
use super::RequestId;
|
||||
use super::SessionId;
|
||||
use super::SupportedProtocolVersions;
|
||||
use super::TransportLane;
|
||||
use super::WireCellId;
|
||||
use super::WireExecuteRequest;
|
||||
use super::WireNestedToolCall;
|
||||
@@ -107,8 +106,6 @@ impl std::error::Error for ClientHelloError {}
|
||||
pub struct HostHello {
|
||||
selected_version: ProtocolVersion,
|
||||
capabilities: CapabilitySet,
|
||||
#[serde(default, skip_serializing_if = "Option::is_none")]
|
||||
bulk_connection_token: Option<String>,
|
||||
}
|
||||
|
||||
impl HostHello {
|
||||
@@ -116,15 +113,9 @@ impl HostHello {
|
||||
Self {
|
||||
selected_version,
|
||||
capabilities,
|
||||
bulk_connection_token: None,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn with_bulk_connection_token(mut self, token: String) -> Self {
|
||||
self.bulk_connection_token = Some(token);
|
||||
self
|
||||
}
|
||||
|
||||
pub fn selected_version(&self) -> ProtocolVersion {
|
||||
self.selected_version
|
||||
}
|
||||
@@ -132,10 +123,6 @@ impl HostHello {
|
||||
pub fn capabilities(&self) -> &CapabilitySet {
|
||||
&self.capabilities
|
||||
}
|
||||
|
||||
pub fn bulk_connection_token(&self) -> Option<&str> {
|
||||
self.bulk_connection_token.as_deref()
|
||||
}
|
||||
}
|
||||
|
||||
/// Messages sent from a client to the code-mode host.
|
||||
@@ -155,30 +142,6 @@ pub enum ClientToHost {
|
||||
},
|
||||
}
|
||||
|
||||
impl ClientToHost {
|
||||
/// Keeps notification acknowledgments with control traffic and tool results on the bulk lane.
|
||||
pub fn transport_lane(&self) -> TransportLane {
|
||||
match self {
|
||||
Self::DelegateResponse {
|
||||
result:
|
||||
WireResult::Ok {
|
||||
value: DelegateResponse::NotificationDelivered,
|
||||
},
|
||||
..
|
||||
}
|
||||
| Self::ClientHello(_)
|
||||
| Self::Request { .. }
|
||||
| Self::CancelRequest { .. } => TransportLane::Control,
|
||||
Self::DelegateResponse { .. } => TransportLane::Bulk,
|
||||
}
|
||||
}
|
||||
|
||||
/// Validates the message families accepted by each paired socket.
|
||||
pub fn allows_transport_lane(&self, lane: TransportLane) -> bool {
|
||||
self.transport_lane() == lane
|
||||
}
|
||||
}
|
||||
|
||||
/// Messages sent from the code-mode host to a client.
|
||||
#[derive(Debug, Deserialize, PartialEq, Serialize)]
|
||||
#[serde(deny_unknown_fields, tag = "type", rename_all_fields = "camelCase")]
|
||||
@@ -212,33 +175,6 @@ pub enum HostToClient {
|
||||
},
|
||||
}
|
||||
|
||||
impl HostToClient {
|
||||
/// Keeps notifications with control traffic and nested-tool callbacks on the bulk lane.
|
||||
pub fn transport_lane(&self) -> TransportLane {
|
||||
match self {
|
||||
Self::DelegateRequest {
|
||||
request: DelegateRequest::InvokeTool { .. },
|
||||
..
|
||||
}
|
||||
| Self::CancelDelegateRequest { .. } => TransportLane::Bulk,
|
||||
Self::DelegateRequest {
|
||||
request: DelegateRequest::Notify { .. },
|
||||
..
|
||||
}
|
||||
| Self::HostHello(_)
|
||||
| Self::HandshakeRejected { .. }
|
||||
| Self::Response { .. }
|
||||
| Self::InitialResponse { .. }
|
||||
| Self::CellClosed { .. } => TransportLane::Control,
|
||||
}
|
||||
}
|
||||
|
||||
/// Rejects messages received on the wrong paired socket.
|
||||
pub fn allows_transport_lane(&self, lane: TransportLane) -> bool {
|
||||
self.transport_lane() == lane
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
|
||||
#[serde(deny_unknown_fields, tag = "method", rename_all_fields = "camelCase")]
|
||||
pub enum HostRequest {
|
||||
|
||||
Reference in New Issue
Block a user