Merge pull request #711 from lokal-music/release/v12.7.8
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
-
Port Apple Music stylized artist names and portrait videos to desktop (#709)
Details
Mobile parity
Ports the Apple artist editorial features from mobile #407 and persistent-logo fixes from #413 to desktop, covering both local and online artist pages.
- Artist names use Apple's transparent stylized artist title when available, replacing the plain heading rather than duplicating it.
- Square Apple artist video plays inside the existing circular PFP, with the current portrait as the static fallback, preserving the existing image zoom and Change Picture UI.
- Reuses desktop's motion-cover HLS/MP4 cache and FFmpeg remux path rather than a separate player. Playback is muted, looped, viewport/visibility aware and disabled by reduced-motion/performance settings or Moving Covers setting.
- Resolves Apple artists using the public iTunes catalogue, verifying an exact normalized artist name and at least one matching song or album. A same-name artist without matching catalogue evidence cannot inherit another artist's logo or video.
- Stores validated logo PNGs under app data with content-addressed filenames; restores cached logos synchronously from a small renderer index, eliminating plain-name flashes on repeat visits/restarts. Network/errors/unsupported assets retain a static heading and portrait.
- Exposes a forced refresh from the existing artist Manage/Lookup refresh path. Existing editorial assets survive temporary network failures.
Implementation
- New dedicated
electron/artwork/artistVisuals.jsservice,src/artistVisuals.jshook,ArtistEditorialMedia.jsxcomponent. - Wires the Electron IPC/preload/API surface and both artist detail views.
- Adds
npm run test:artist-visualsregressions for parsing, URL safety, confirmed-identity cache, persistence, and namesake rejection.
Verification
Code changes and regression tests committed; no local npm install, Electron runtime, CI or device test has been executed in this environment. Please run
npm run test:artist-visuals,npm run test:motion-covers,npm run test:electron-syntax, andnpx vite build, then visually check static/animated/no-logo artists, artist name collisions, restart persistence, scrolling and backgrounding, full-motion setting off and manual artist refresh.Apple Music's embedded editorial data remains undocumented and subject to change; media is fetched on demand, not bundled.
-
Keep phone uploads out of desktop Local search without deduplicating recordings (#710)
Details
Correct requirement
Phone and desktop copies are legitimate distinct library items. Search's Local scope is per-device, not an attempt to merge two matching recordings.
Fix
- Explicitly exclude
download_source='mobile'from desktop Local track search regardless of title/artist/album similarity. This fixes the supplied counterexample where a copied FLAC is calledSZA - 30 For 30 ...with Unknown Artist and Album. - Apply desktop-only filtering to artist and album search, full-text lyric search, spelling suggestions and the web server's local album search endpoint.
- Preserve all rows and files for explicit source-specific library views, Link, playlists, and transfers.
- Add a real SQLite regression for different metadata, phone-only matches, and native desktop downloads.
The source-file metadata belongs to the local scanners, not the cross-device duplicate filter. Test/build validation pending CI.
Summary by CodeRabbit
- Bug Fixes
- Desktop library searches now exclude tracks sourced from mobile, keeping mobile-only uploads out of track, album, artist-count, and lyrics results.
- Spelling suggestions no longer use mobile-sourced tracks when building their vocabulary.
- Owned downloads remain eligible to appear in search results.
- Explicitly exclude
Contributors: @CHEYCKIT
Full Changelog: v12.7.7...v12.7.8
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.7.8-arm64-mac.zip:
[1923B88CC1019FEF08EBF353BBF937E9A3DF0C881C309BDA282FB420438EFD4D]
Lokal-12.7.8-arm64-mac.zip.blockmap:[1840DDEBE2E8C400824B3CDE1B3167ABB2CB8ACDAE17F0FA9D6FC675F2137784]
Lokal-12.7.8-arm64.AppImage:[0C886EFC4AD16FD956CAE68B5B9AB73891847EEC4AA1D6971821E1321A3587DA]
Lokal-12.7.8-arm64.dmg:[0DB946D01BE31A612EF6E00CA46AD410BE13511FEECAAA58DAB7F950F8D4F93B]
Lokal-12.7.8-arm64.dmg.blockmap:[B3E993ADF5202B846DBEBBE3A093D3F4A947E6BF971A2F03C1306F5FCBC7A8D6]
Lokal-12.7.8-mac.zip:[4CF58F011FBCD190426A9335E58F09229FCAB482530BC486CDD17B7E36E621BF]
Lokal-12.7.8-mac.zip.blockmap:[601ED2B03163F25CBCAFE73D301B1CF854AB3ACC003B990FA877CC22D92788DE]
Lokal-12.7.8.AppImage:[5BE5FFA773619BC070461D87B804EABF4533E7DCF3F6888F2510A3355B2C686C]
Lokal-12.7.8.dmg:[B68C2A879A270A33E1877456350F3F50A524C683A223FDBBBA4AB27DF7C017A8]
Lokal-12.7.8.dmg.blockmap:[51BC3578258280AC419BB0825F66C2CE72F220187046A759B4B4B001CC03D65E]
Lokal-12.7.8.exe:[73B82470BA4708D708D90C3173A0F150D80746D220CB22F5C34302FD6EEEB2A6]
Lokal-Setup-12.7.8.exe:[0B4C5A36BAC379620E00824F30D11DFD2E540ADDB73E41C05204BA94D571246F]
Lokal-Setup-12.7.8.exe.blockmap:[15697A9B7FAE4238869AC40F37BEEC683A3C338F4E4FD10A4C81A9540474FCC2]
builder-debug.yml:[0DB4AE0E0A6B8D6C46649081FC9292709858641EEFD7B5FA5AE2D6858BED3DDB]
latest-linux-arm64.yml:[73097163E00BBE4B34EFE655D3366179525DEFFD6920157027ADA40E18163895]
latest-linux.yml:[BCB0EEC91ED345F553B025EBF5BD1AF751E7D914EC8DD675E415D20420EDF780]
latest-mac.yml:[5B5F1DC32E97C8D6F517838807FC92B5E34E75452B28C74E465C60A2CA062348]
latest.yml:[87A43724D0AEAF981B0C68658DB598FC91DF652C4064DDA0F164E808500BB411]
lokal-music_12.7.8_amd64.deb:[F0D5561E4852388ED8D94605A25981E3F09E24364F758B19D3A24D5CB9447649]
lokal-music_12.7.8_arm64.deb:[3281F34F30AA13C1398FC8F84C37F9E5A860373A8D9F17FE358A329F89E66055]
