From bddfd45086a40dca603ea0ab260bbdbde3bd6b93 Mon Sep 17 00:00:00 2001 From: Psychotoxical Date: Sat, 18 Apr 2026 16:05:02 +0200 Subject: [PATCH] =?UTF-8?q?chore(release):=20v1.34.21=20=E2=80=94=20macOS?= =?UTF-8?q?=20updater=20UI=20fix=20+=20second=20test=20build?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - AppUpdater.tsx: macOS now has a dedicated branch in the update modal — no architecture-specific DMG asset shown (the Tauri Updater picks the right platform from latest.json), clearer wording ("Downloads, verifies and installs automatically"), and the primary button reads "Install now" instead of "Download". Strings use defaultValue so locales without the key fall back to English until translations catch up. - Test release for the updater pipeline; CHANGELOG entry asks users to ignore it. Will be deleted after the test. Co-Authored-By: Claude Sonnet 4.6 --- CHANGELOG.md | 10 ++++++++ package.json | 2 +- src-tauri/Cargo.lock | 2 +- src-tauri/Cargo.toml | 2 +- src-tauri/tauri.conf.json | 2 +- src/components/AppUpdater.tsx | 44 +++++++++++++++++++++++++++++++++-- 6 files changed, 56 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ad6ebaa..a9a0c67c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 > > **🎉 macOS users:** Starting with **v1.34.15**, Psysonic can **update itself silently**. No more DMG downloading and dragging to Applications — the updater fetches the signed `.app` bundle, verifies the signature, replaces the app in place, and relaunches. Just click "Update" when the toast appears. +## [1.34.21] - 2026-04-18 + +> ### ⚠️ PLEASE IGNORE THIS RELEASE — TEST BUILD ONLY +> +> **This is a throwaway test build used to verify the macOS auto-updater pipeline end-to-end. There are no new features, no bug fixes, no changes of any kind that affect how Psysonic behaves for end users — only the version number, plus a small UI polish in the update notification on macOS.** +> +> **This release will be deleted within a day or two.** Do not download it, do not rely on it, do not link to it. Stay on whatever version you currently have installed; normal releases will resume shortly under the regular versioning scheme. +> +> Thanks for your patience while we stabilise the updater infrastructure. + ## [1.34.20] - 2026-04-18 > ### ⚠️ PLEASE IGNORE THIS RELEASE — TEST BUILD ONLY diff --git a/package.json b/package.json index 04f4b57d..4a295bd1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "psysonic", - "version": "1.34.20", + "version": "1.34.21", "private": true, "scripts": { "dev": "vite", diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 758d92e9..4c9bb42d 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -3653,7 +3653,7 @@ dependencies = [ [[package]] name = "psysonic" -version = "1.34.20" +version = "1.34.21" dependencies = [ "biquad", "discord-rich-presence", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 73efd3d2..eea26248 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "psysonic" -version = "1.34.20" +version = "1.34.21" description = "Psysonic Desktop Music Player" authors = [] license = "" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 8975f747..b9d77223 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "Psysonic", - "version": "1.34.20", + "version": "1.34.21", "identifier": "dev.psysonic.player", "build": { "beforeDevCommand": "npm run dev", diff --git a/src/components/AppUpdater.tsx b/src/components/AppUpdater.tsx index ab50bd70..27d8d581 100644 --- a/src/components/AppUpdater.tsx +++ b/src/components/AppUpdater.tsx @@ -159,6 +159,10 @@ export default function AppUpdater() { const asset = pickAsset(release.assets); const showAurHint = IS_LINUX && isArch; + // On macOS the Tauri Updater handles architecture, signature verification + // and in-place install — we don't need (and should not show) a DMG asset. + const useTauriUpdater = IS_MACOS; + const showInstallBtn = !showAurHint && (useTauriUpdater || !!asset); const handleSkip = () => { localStorage.setItem(SKIP_KEY, release.version); @@ -309,6 +313,40 @@ export default function AppUpdater() { yay -S psysonic-bin sudo pacman -Syu psysonic-bin + ) : useTauriUpdater ? ( + <> + {dlState === 'idle' && ( +
+ + {t('common.updaterMacReady', { + defaultValue: 'Downloads, verifies and installs automatically. The app will restart when done.', + })} + +
+ )} + {dlState === 'downloading' && ( +
+
+
+
+ {pct}% + + {fmtBytes(dlProgress.bytes)} + {dlProgress.total > 0 && ` / ${fmtBytes(dlProgress.total)}`} + +
+ )} + {dlState === 'done' && ( +
+
+ {t('common.updaterMacDone', { defaultValue: 'Installed. Restarting…' })} +
+
+ )} + {dlState === 'error' && ( +
{dlError || t('common.updaterErrorMsg')}
+ )} + ) : asset ? ( <> {dlState === 'idle' && ( @@ -365,10 +403,12 @@ export default function AppUpdater() { - {!showAurHint && asset && dlState === 'idle' && ( + {showInstallBtn && dlState === 'idle' && ( )} {dlState === 'error' && (