From e9b95fde68a9bd64828496a16030508c191bc34a Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Tue, 13 Feb 2024 13:34:49 -0700 Subject: [PATCH] Force upgrade people on nightly (#7744) Release Notes: - N/A --- crates/collab/src/rpc.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/crates/collab/src/rpc.rs b/crates/collab/src/rpc.rs index 454ef344257ce78956c672a473a4273b4cd98a43..086465965be6c16ddecc008b0ac82a73bdf527e3 100644 --- a/crates/collab/src/rpc.rs +++ b/crates/collab/src/rpc.rs @@ -864,7 +864,7 @@ pub fn routes(server: Arc) -> Router { pub async fn handle_websocket_request( TypedHeader(ProtocolVersion(protocol_version)): TypedHeader, - _app_version_header: Option>, + app_version_header: Option>, ConnectInfo(socket_address): ConnectInfo, Extension(server): Extension>, Extension(user): Extension, @@ -879,6 +879,19 @@ pub async fn handle_websocket_request( .into_response(); } + // the first version of zed that sent this header was 0.121.x + if let Some(version) = app_version_header.map(|header| header.0 .0) { + // 0.123.0 was a nightly version with incompatible collab changes + // that were reverted. + if version == "0.123.0".parse().unwrap() { + return ( + StatusCode::UPGRADE_REQUIRED, + "client must be upgraded".to_string(), + ) + .into_response(); + } + } + let socket_address = socket_address.to_string(); ws.on_upgrade(move |socket| { use util::ResultExt;