From 2b7b7cc0e78acdbb6e79e3d4442ee5266459f5e3 Mon Sep 17 00:00:00 2001
From: Tunglies <77394545+Tunglies@users.noreply.github.com>
Date: Tue, 3 Nov 2026 18:41:45 +0800
Subject: [PATCH] fix(updater): refresh changed update offers before
installation
---
Cargo.lock | 1 -
Changelog.md | 4 +
src-tauri/Cargo.toml | 1 -
src-tauri/src/cmd/app.rs | 8 +-
src-tauri/src/core/updater.rs | 83 +++++++------------
src/components/setting/mods/update-viewer.tsx | 82 +++++++++---------
src/services/bindings.ts | 7 +-
src/services/update.ts | 46 +---------
template/Changelog.md | 3 +
9 files changed, 87 insertions(+), 148 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index f74483935..d1a1c1ed8 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1111,7 +1111,6 @@ dependencies = [
"getrandom 0.4.3",
"libc",
"log",
- "minisign-verify",
"nanoid",
"network-interface",
"objc2",
diff --git a/Changelog.md b/Changelog.md
index 524c12c4a..64b93631d 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -24,14 +24,18 @@
🐞 修复问题
+- 修复检测更新后又发布新版时,应用内更新失败
+
✨ 新增功能
+
🚀 优化改进
+
diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml
index 8bac714ca..5502ed4a5 100755
--- a/src-tauri/Cargo.toml
+++ b/src-tauri/Cargo.toml
@@ -84,7 +84,6 @@ flate2 = "1.1.10"
reqwest_dav = "0.3.3"
aes-gcm = { version = "0.11.1" }
base64 = "0.23.1"
-minisign-verify = "0.3.0"
sha2 = "0.11.1"
getrandom = "0.4.3"
futures = "0.3.34"
diff --git a/src-tauri/src/cmd/app.rs b/src-tauri/src/cmd/app.rs
index e043dbc4e..3e6597f3b 100644
--- a/src-tauri/src/cmd/app.rs
+++ b/src-tauri/src/cmd/app.rs
@@ -1,7 +1,10 @@
use super::CmdResult;
use crate::{
cmd::StringifyErr as _,
- core::{SilentUpdater, updater::DownloadEvent},
+ core::{
+ SilentUpdater,
+ updater::{DownloadEvent, InstallUpdateOutcome},
+ },
feat,
utils::dirs,
};
@@ -61,8 +64,7 @@ pub async fn install_update(
app_handle: AppHandle,
version: std::string::String,
on_event: Channel,
-) -> CmdResult {
- let version: String = version.into();
+) -> CmdResult {
SilentUpdater::global()
.install_update(&app_handle, &version, |event| {
let _ = on_event.send(event);
diff --git a/src-tauri/src/core/updater.rs b/src-tauri/src/core/updater.rs
index c017582eb..25a938bc4 100644
--- a/src-tauri/src/core/updater.rs
+++ b/src-tauri/src/core/updater.rs
@@ -18,6 +18,14 @@ pub struct SilentUpdater {
background_cancel: Mutex