Merge pull request #700 from lokal-music/release/v12.7.3
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 #387: identify phone history entries and retain covers on desktop (#699)
Details
Follow-up to the latest comment in lokal-music/lokal-mobile#387 and companion mobile PR.
Root cause: unmatched phone listening-history events were imported as
ghost://link/<id>rows withoutdownload_sourceor cover art; the desktop UI showedSource unknown. They are metadata-only play references, not missing physical imports.- Match history against local desktop files using album owner, album title, recording title and duration when the track-credit strings differ. Do not confuse unrelated songs or overwrite actual desktop recordings.
- Label unmatched history placeholders Played on Lokal Mobile · audio not stored on this PC; preserve mobile attribution and safe public artwork URLs for new history events. Existing ghosts show their source correctly without DB migration.
- Introduce a paired-user/paired-device-authenticated
POST /api/remote/history/artworkthat accepts only bounded JPEG thumbnails (≤180 KB) for existing mobile history entries, saves them in desktop's durable artwork storage, and changes onlyghost://link/rows. No file paths, signed media URLs or original audio are uploaded. - Regression tests cover collaboration matching, history deduplication, mobile origin, artwork metadata, and upload route authorization/size validation.
Companion mobile PR sends thumbnails opportunistically during auto stats sync and backfills recently acknowledged plays on explicit Sync now; neither feature should block audio playback. History entries remain non-playable until the original audio is present on desktop.
Verification: Pending CI and real paired-device test. Please keep issue #387 open until covers survive reopen and offline on both platforms.
Summary by CodeRabbit
-
New Features
- Mobile-history tracks are now labeled clearly, with a note when the original audio isn’t stored on this PC.
- Artwork from mobile history can appear in the library, and existing album art is preserved during imports.
-
Bug Fixes
- Mobile history is more likely to match the correct track, including when album-artist information is available.
- Unmatched mobile plays retain available track and artwork details, while signed artwork links are excluded.
Contributors: @CHEYCKIT
Full Changelog: v12.7.2...v12.7.3
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.3-arm64-mac.zip:
[D736A8D5BFB5DFACFC014C9CF19FADF4937B4A9683DB78284E39234CCDF5E10D]
Lokal-12.7.3-arm64-mac.zip.blockmap:[3079821EE0EF8890DD1E763D245FDE0D93E6F944EA92A1C0FE1B2F7EB70088FF]
Lokal-12.7.3-arm64.AppImage:[A786A05DED160F9177C2D071DF1A129C4683982B24FFEC74562F7022E6E586E9]
Lokal-12.7.3-arm64.dmg:[79B1E4607FF7E40C1EE18A12E865C1670C51D19FCB34E6A6BE33AE612824542A]
Lokal-12.7.3-arm64.dmg.blockmap:[498E72888AA6DD049B6D9D23F6CB42F7F491226D82388C5F88CA57892DCBFCFC]
Lokal-12.7.3-mac.zip:[1C47BE84F9F5ADA867EB54E9353A43E50C31FDA66F514405C7FF45672AE41A8E]
Lokal-12.7.3-mac.zip.blockmap:[4317B1111BE508C6A0385EEE8DF081C713F95EF931A61B7D606BD266E6F8D9E6]
Lokal-12.7.3.AppImage:[4F1258AE0CC148CCAD75EBFAD164F87F3AA9151C73E3C5EF90B260B6FB28AA7D]
Lokal-12.7.3.dmg:[34774B3C7C48DBF9BC2AFEF6EAC1DDFE8B5FCE31FE4FB73827B65F281A471F6A]
Lokal-12.7.3.dmg.blockmap:[A4061D2831ED89B39BAD7D3F7749B6390EFB830AF53A59D31C019988AAA02F24]
Lokal-12.7.3.exe:[DF34BE808BD7C4BDA1EF8EB2D47A1134F28BE01B3BDAD37A58D992A795171B3B]
Lokal-Setup-12.7.3.exe:[51640F3EE98EA20BEF35BF27C498709FD9576217F287C9522359236AF98FB076]
Lokal-Setup-12.7.3.exe.blockmap:[235480B2F719501251F739BB258C7054EB2F93F197EC1C482B29547787270F0D]
builder-debug.yml:[B8A1E511560A814E42DE9B6DE2CDFFD4462E6D78401B26F099873D633138E210]
latest-linux-arm64.yml:[FED5E73262832EDEA2D2F5BAAB44C0C14E350952C876AC758C99C14B1010E3B7]
latest-linux.yml:[167CD886C5E1AEB23F45FE5ABF2FD573A39BF2DB5FD18DE118CEF608BE8D572E]
latest-mac.yml:[B4AE88BC758FDA4E059BC19FC7C8ACFD3A2704D626A93B4EF6E507D2EF3CA1B1]
latest.yml:[4E7E7491836471D079984C591C16D91FF85DAE886ECDE2CA9BDDEB118F510218]
lokal-music_12.7.3_amd64.deb:[C42C81D0320C53D5E3EC9127FEE85F3B0A0B13477A73B95203C9B9D1D731D317]
lokal-music_12.7.3_arm64.deb:[D57F7F3350A0B9A2BB7778C5865500A44F8B77F9446DA5CBF7B099A1CD9B0344]
