chore: migrate service to 2.3.0

- Bump clash_verge_service_ipc to 2.3.0 and refresh the lockfile for its updated dependency graph.

- Re-check the running service version after install/start so a stopped old 2.2.0 service is reinstalled before use.
This commit is contained in:
Tunglies
2026-04-24 18:59:42 +08:00
parent ddb52c8b5a
commit 4e62bcf7b8
3 changed files with 74 additions and 24 deletions
+1 -1
View File
@@ -98,7 +98,7 @@ tauri-plugin-devtools = { version = "2.0.1" }
tauri-plugin-mihomo = { git = "https://github.com/clash-verge-rev/tauri-plugin-mihomo", branch = "revert" }
clash_verge_logger = { git = "https://github.com/clash-verge-rev/clash-verge-logger" }
async-trait = "0.1.89"
clash_verge_service_ipc = { version = "2.2.0", features = [
clash_verge_service_ipc = { version = "2.3.0", features = [
"client",
], git = "https://github.com/clash-verge-rev/clash-verge-service-ipc" }
arc-swap = "1.9.0"
+13 -1
View File
@@ -439,6 +439,18 @@ pub async fn wait_and_check_service_available(status: &mut ServiceManager) -> Re
wait_for_service_ipc(status, "Waiting for service to be available").await
}
async fn wait_and_check_service_version(status: &mut ServiceManager) -> Result<()> {
wait_and_check_service_available(status).await?;
if clash_verge_service_ipc::is_reinstall_service_needed().await {
logging!(info, Type::Service, "服务版本不匹配,执行重装流程");
reinstall_service()?;
wait_and_check_service_available(status).await?;
}
Ok(())
}
async fn wait_for_service_ipc(status: &mut ServiceManager, reason: &str) -> Result<()> {
status.0 = ServiceStatus::Unavailable(reason.into());
let config = ServiceManager::config();
@@ -530,7 +542,7 @@ impl ServiceManager {
ServiceStatus::InstallRequired => {
logging!(info, Type::Service, "需要安装服务,执行安装流程");
install_service()?;
wait_and_check_service_available(self).await?;
wait_and_check_service_version(self).await?;
}
ServiceStatus::UninstallRequired => {
logging!(info, Type::Service, "服务需要卸载,执行卸载流程");