From b179cae14ebc7803efaaed78b41361a955416aad Mon Sep 17 00:00:00 2001 From: yuyx <237899745@qq.com> Date: Fri, 20 Feb 2026 22:55:20 +0800 Subject: [PATCH] fix: make silent updater produce logs reliably and release 0.1.26 --- backend/server.js | 2 +- desktop-client/package.json | 2 +- desktop-client/src-tauri/Cargo.lock | 2 +- desktop-client/src-tauri/Cargo.toml | 2 +- desktop-client/src-tauri/src/lib.rs | 47 +++++++++++++++++++++--- desktop-client/src-tauri/tauri.conf.json | 2 +- desktop-client/src/App.vue | 2 +- 7 files changed, 47 insertions(+), 12 deletions(-) diff --git a/backend/server.js b/backend/server.js index 1cac1d2..6c1af8b 100644 --- a/backend/server.js +++ b/backend/server.js @@ -112,7 +112,7 @@ const DOWNLOAD_SIGNED_URL_EXPIRES_SECONDS = Math.max( 10, Math.min(3600, Number(process.env.DOWNLOAD_SIGNED_URL_EXPIRES_SECONDS || 30)) ); -const DEFAULT_DESKTOP_VERSION = process.env.DESKTOP_LATEST_VERSION || '0.1.25'; +const DEFAULT_DESKTOP_VERSION = process.env.DESKTOP_LATEST_VERSION || '0.1.26'; const DEFAULT_DESKTOP_INSTALLER_URL = process.env.DESKTOP_INSTALLER_URL || ''; const DEFAULT_DESKTOP_INSTALLER_SHA256 = String(process.env.DESKTOP_INSTALLER_SHA256 || '').trim().toLowerCase(); const DEFAULT_DESKTOP_INSTALLER_SIZE = Math.max(0, Number(process.env.DESKTOP_INSTALLER_SIZE || 0)); diff --git a/desktop-client/package.json b/desktop-client/package.json index 10a1047..c5fa99a 100644 --- a/desktop-client/package.json +++ b/desktop-client/package.json @@ -1,7 +1,7 @@ { "name": "desktop-client", "private": true, - "version": "0.1.25", + "version": "0.1.26", "type": "module", "scripts": { "dev": "vite", diff --git a/desktop-client/src-tauri/Cargo.lock b/desktop-client/src-tauri/Cargo.lock index 227bdd6..0a01079 100644 --- a/desktop-client/src-tauri/Cargo.lock +++ b/desktop-client/src-tauri/Cargo.lock @@ -693,7 +693,7 @@ dependencies = [ [[package]] name = "desktop-client" -version = "0.1.25" +version = "0.1.26" dependencies = [ "reqwest 0.12.28", "rusqlite", diff --git a/desktop-client/src-tauri/Cargo.toml b/desktop-client/src-tauri/Cargo.toml index b2b52ae..e3ca8f0 100644 --- a/desktop-client/src-tauri/Cargo.toml +++ b/desktop-client/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "desktop-client" -version = "0.1.25" +version = "0.1.26" description = "A Tauri App" authors = ["you"] edition = "2021" diff --git a/desktop-client/src-tauri/src/lib.rs b/desktop-client/src-tauri/src/lib.rs index 99ea459..4213289 100644 --- a/desktop-client/src-tauri/src/lib.rs +++ b/desktop-client/src-tauri/src/lib.rs @@ -1353,6 +1353,11 @@ fn api_silent_install_and_restart(installer_path: String) -> Result Result \"%LOG_FILE%\"\r\n\ -if not exist \"%INSTALLER%\" exit /b 1\r\n\ +if not exist \"%INSTALLER%\" (\r\n\ + echo [%%date%% %%time%%] installer not found: %INSTALLER% >> \"%LOG_FILE%\"\r\n\ + exit /b 2\r\n\ +)\r\n\ timeout /t 1 /nobreak >nul\r\n\ taskkill /PID %APP_PID% /F >nul 2>nul\r\n\ timeout /t 1 /nobreak >nul\r\n\ @@ -1394,17 +1411,27 @@ del \"%~f0\" >nul 2>nul\r\n", log_file = log_text ); fs::write(&script_path, script_content).map_err(|err| format!("写入更新脚本失败: {}", err))?; - let script_arg = format!("\"{}\"", script_path.to_string_lossy()); let mut updater_cmd = Command::new("cmd"); - updater_cmd + let spawn_result = updater_cmd .arg("/D") .arg("/C") - .arg(&script_arg) + .arg("call") + .arg(&script_path) .current_dir(&temp_dir) .creation_flags(CREATE_NO_WINDOW) - .spawn() - .map_err(|err| format!("启动静默更新流程失败: {}", err))?; + .spawn(); + if let Err(err) = spawn_result { + let _ = fs::OpenOptions::new() + .create(true) + .append(true) + .open(&log_path) + .and_then(|mut file| { + writeln!(file, "[bootstrap] failed to spawn updater cmd: {}", err)?; + Ok(()) + }); + return Err(format!("启动静默更新流程失败: {}", err)); + } let mut cleanup_entries: Vec = fs::read_dir(&temp_dir) .ok() @@ -1459,6 +1486,14 @@ del \"%~f0\" >nul 2>nul\r\n", .to_string(), ), ); + data.insert( + "logFilePath".to_string(), + Value::String(windows_log_file_path), + ); + data.insert( + "scriptPath".to_string(), + Value::String(windows_script_file_path), + ); } Ok(BridgeResponse { diff --git a/desktop-client/src-tauri/tauri.conf.json b/desktop-client/src-tauri/tauri.conf.json index 823d25c..d1fde5d 100644 --- a/desktop-client/src-tauri/tauri.conf.json +++ b/desktop-client/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "玩玩云", - "version": "0.1.25", + "version": "0.1.26", "identifier": "cn.workyai.wanwancloud.desktop", "build": { "beforeDevCommand": "npm run dev", diff --git a/desktop-client/src/App.vue b/desktop-client/src/App.vue index da2bcd6..a1f963d 100644 --- a/desktop-client/src/App.vue +++ b/desktop-client/src/App.vue @@ -153,7 +153,7 @@ const syncState = reactive({ nextRunAt: "", }); const updateState = reactive({ - currentVersion: "0.1.25", + currentVersion: "0.1.26", latestVersion: "", available: false, mandatory: false,