Merge pull request #631 from lokal-music/release/v12.3.0
Changelog
Windows builds: free code signing provided by SignPath.io, certificate by SignPath Foundation (code signing policy).
FYI:
Lokal is 100% local; the library, history, anything in database, or any info that is used for API's such as yt-dlp, LRCLIB, is NOT seen by us.
What's Changed
-
fix(desktop): relaunch after updates and simplify search UI (#630)
Details
Fix 1 — Relaunch after desktop updates
Clicking Restart & install previously closed all Electron windows and scheduled
quitAndInstall(false, true)500 ms later. Lokal's normal window-close handlers calledapp.quit()first, so Electron could exit without completing installation/relaunch.- Call
quitAndInstall(false, true)immediately after a completed update download, preserving the NSIS post-install relaunch flag. - Suppress the normal window-close quit path during updater-controlled shutdown only; preserve ordinary closing and close-to-tray behavior.
- Remove redundant window destruction in
before-quit, make repeated install clicks idempotent, and report/recover from installer-launch errors. - Add
scripts/updater-install.test.mjsregression tests for relaunch arguments, lifecycle races, retries, and missing downloads.
Fix 2 — Clean up desktop Local and Online Search
Scope is the Search page only, not
Library.jsx.- Remove redundant Local/Online mode descriptions and verbose empty-search instructions.
- Remove repetitive
Recent,Tracks,Lyrics Matches,Online songs/albums/artists, and providerOnlineheadings, plus per-result catalogue and provider subtitles. - Keep search-scope and result-type tabs, provider selection, loading/error/setup notices, result metadata, actionable playback controls, and the Play All action.
- Avoid rendering empty catalogue result sections now that their headers are gone.
Validation
- Electron main-process syntax is covered by
scripts/check-electron-syntax.cjsin the existing build workflow. - Added runnable regression test
node --test scripts/updater-install.test.mjs(not executed locally here). - Full packaged NSIS install/relaunch and desktop UI visual checks still require testing on a desktop build. GitHub Actions runs may still be pending.
Summary by CodeRabbit
- Bug Fixes
- Update installation now waits for the download to finish, avoids duplicate installation attempts, and reports installer launch errors. Closing the app during an update no longer interrupts installer-managed shutdown and relaunch.
- Style
- Search results no longer show several section headings, scope descriptions, or library-status text. Empty result sections are hidden, and the loading indicator now appears beside the source tabs.
- Call
Contributors: @CHEYCKIT
Full Changelog: v12.2.8...v12.3.0
Setup
See README.md for full setup instructions.
macOS: this build is ad-hoc signed, not notarized (no Developer ID certificate is configured). The first time, right-click Lokal in Applications and choose Open, or run xattr -dr com.apple.quarantine /Applications/Lokal.app.
Binary Checksums (SHA-256)
Lokal-12.3.0-arm64-mac.zip:
[0EBA1F4A409FBFBC79E9E6A34ADDDC179575980E7BF2E77B1710753F414C9DFE]
Lokal-12.3.0-arm64-mac.zip.blockmap:[6B94201174D21A5DFFE506E134D47A973CA0F0C798757DAA6EE017966CB50954]
Lokal-12.3.0-arm64.AppImage:[CE3D32EAFC276DFFD77C4A581CB704431656C7343F898E731DC2EBCD22F1784A]
Lokal-12.3.0-arm64.dmg:[D4F851786F0F2F0F55F4DDC097E7B2E094B54AAFAF1595522EBABA2AE5B491D5]
Lokal-12.3.0-arm64.dmg.blockmap:[5417692102A0610E7263BCC70C908EE57456DB5CA7AF6BAE93A8E534A5F9C96C]
Lokal-12.3.0-mac.zip:[0F20E475260097FC4DDB8D356DDD5E5DBB58510D76FDDFEFF1F39A7F2A9122D7]
Lokal-12.3.0-mac.zip.blockmap:[0F02AA4CF4E81C1E811D4CA354555842EC8AB0DE7D1FD99CC624DBD351326750]
Lokal-12.3.0.AppImage:[B67BB85C7CC691658CF2ACBC4644C2BDE690FCC06C3913D7C71FFA38282AD5F4]
Lokal-12.3.0.dmg:[759EB4304BE355A5E722DF6B04F387F29BD046472A636B901508E1EDBD8FB3E3]
Lokal-12.3.0.dmg.blockmap:[C08F78830CAB657A9CE5C9D7F7E2A769B7083229A4D453A164483954C3154B40]
Lokal-12.3.0.exe:[3983E3A930D0D53472D36C02F1FBD7F2EA5B3A0B3CA1FF209BC4C5F02C05DFC1]
Lokal-Setup-12.3.0.exe:[94793FE9D26AED669BFF32FCA24A6EF55FE48B12AAD2E8815236BC8FD7799B1F]
Lokal-Setup-12.3.0.exe.blockmap:[49F772F6E2C32A53E553252283F2A81B7348BFB059B6EA7007D5AD2AEF4A1234]
builder-debug.yml:[FDEFF1A3C31048EEBB971BC4251590DAC8785107FB62AAD28205AADA50CA798B]
latest-linux-arm64.yml:[BD5865CF2C02D964D9EE412E8FB6C5C3375E4125C334D259F11BADFDBE3E8935]
latest-linux.yml:[2A2A6636EE4E6A913C7FB004B9DF5F34ED9A803508116C0C8E3309C135B10A33]
latest-mac.yml:[16273E9D6D86B4C85A64DAFCD5999D996CFAA2A28E0EA272E63C818E5E3CEA30]
latest.yml:[D19F8EF807D178097E99185D821260D32308F41C455BB2CA98E57E40D0388FBF]
lokal-music_12.3.0_amd64.deb:[99FA6958193B7B7B6476CE612C0D2DA2ECE6C520F6E262D82D91EB7A1B700D03]
lokal-music_12.3.0_arm64.deb:[86B650AAD8108E4842EF592FA424157D5BEFC58620E255F52277F35EE1E0B7A2]
