diff --git a/crates/zed/src/main.rs b/crates/zed/src/main.rs index 04f468eb2f03a2ea9661005116a2d9796af6c5c9..da8ff80c316f522b593a7ee44b301a673f315c29 100644 --- a/crates/zed/src/main.rs +++ b/crates/zed/src/main.rs @@ -327,19 +327,29 @@ async fn authenticate(client: Arc, cx: &AsyncAppContext) -> Result<()> { } async fn installation_id() -> Result<(String, bool)> { - let legacy_key_name = "device_id"; - - if let Ok(Some(installation_id)) = KEY_VALUE_STORE.read_kvp(legacy_key_name) { - Ok((installation_id, true)) - } else { - let installation_id = Uuid::new_v4().to_string(); + let legacy_key_name = "device_id".to_string(); + let key_name = "installation_id".to_string(); + // Migrate legacy key to new key + if let Ok(Some(installation_id)) = KEY_VALUE_STORE.read_kvp(&legacy_key_name) { KEY_VALUE_STORE - .write_kvp(legacy_key_name.to_string(), installation_id.clone()) + .write_kvp(key_name, installation_id.clone()) .await?; + KEY_VALUE_STORE.delete_kvp(legacy_key_name).await?; + return Ok((installation_id, true)); + } - Ok((installation_id, false)) + if let Ok(Some(installation_id)) = KEY_VALUE_STORE.read_kvp(&key_name) { + return Ok((installation_id, true)); } + + let installation_id = Uuid::new_v4().to_string(); + + KEY_VALUE_STORE + .write_kvp(key_name, installation_id.clone()) + .await?; + + Ok((installation_id, false)) } async fn restore_or_create_workspace(app_state: &Arc, mut cx: AsyncAppContext) { diff --git a/crates/zed2/src/main.rs b/crates/zed2/src/main.rs index a885a81f79e7e4c3fc02e1dfe2e13a5072dac668..a24fb7377d93fe1f0106d5998a1a22329a9c06a9 100644 --- a/crates/zed2/src/main.rs +++ b/crates/zed2/src/main.rs @@ -387,19 +387,29 @@ async fn authenticate(client: Arc, cx: &AsyncAppContext) -> Result<()> { } async fn installation_id() -> Result<(String, bool)> { - let legacy_key_name = "device_id"; - - if let Ok(Some(installation_id)) = KEY_VALUE_STORE.read_kvp(legacy_key_name) { - Ok((installation_id, true)) - } else { - let installation_id = Uuid::new_v4().to_string(); + let legacy_key_name = "device_id".to_string(); + let key_name = "installation_id".to_string(); + // Migrate legacy key to new key + if let Ok(Some(installation_id)) = KEY_VALUE_STORE.read_kvp(&legacy_key_name) { KEY_VALUE_STORE - .write_kvp(legacy_key_name.to_string(), installation_id.clone()) + .write_kvp(key_name, installation_id.clone()) .await?; + KEY_VALUE_STORE.delete_kvp(legacy_key_name).await?; + return Ok((installation_id, true)); + } - Ok((installation_id, false)) + if let Ok(Some(installation_id)) = KEY_VALUE_STORE.read_kvp(&key_name) { + return Ok((installation_id, true)); } + + let installation_id = Uuid::new_v4().to_string(); + + KEY_VALUE_STORE + .write_kvp(key_name, installation_id.clone()) + .await?; + + Ok((installation_id, false)) } async fn restore_or_create_workspace(app_state: &Arc, mut cx: AsyncAppContext) {