Merge pull request #668 from lokal-music/release/v12.4.4
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(network): avoid blocking desktop on NAS scans and folder artwork lookups (#667)
Details
Desktop follow-up to mounted SMB/WebDAV network support.
- Replace recursive synchronous NAS traversal with a bounded asynchronous directory walk and failure reporting; no unbounded recursive JS call stack on large network libraries.
- Use async bounded filesystem stat for root probes and track enumeration and a 20-second metadata-read cap to stop slow/offline mounted shares from locking Electron's main thread.
- Resolve folder artwork asynchronously with conventional cover/folder/front precedence, a conservative lone-image fallback, and a 12 MiB size cap; embedded metadata artwork remains preferred.
- Unit tests for named artwork precedence, ambiguous folders, image size and offline mounts; check syntax and renderer build in the network-library workflow.
Validation gates: Network-library CI and manual Windows SMB/WebClient, macOS/Linux mounted shares. The supplied crash log is Android-only and does not prove an Electron native crash; these changes address concrete NAS-dependent blocking paths, not a verified desktop crash stack.
Post-review stabilization
- Desktop watcher catch-up now reuses the same bounded async directory walker, and does not prune tracks when a scan or traversal is incomplete.
- Watcher registration no longer performs a blocking
statSyncagainst an offline mount; failed watch attempts leave configured roots intact for later rescans. - Desktop network-library CI, renderer build, wallpaper and link regression suites passed on the latest network/watcher commit.
Summary by CodeRabbit
- New Features
- Network library scans can display folder artwork, prioritizing images with recognizable cover names. A lone image can be used when no named cover is available; ambiguous selections are skipped.
- Bug Fixes
- Library scans handle slow or inaccessible folders more gracefully, helping prevent incomplete scans from removing existing library entries. Artwork lookup also skips files that are invalid, empty, or too large.
Contributors: @CHEYCKIT
Full Changelog: v12.4.3...v12.4.4
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.4.4-arm64-mac.zip:
[5DB26A52A28B34E083A2760614184ACB2E27FA714BE433DE078315F42092BB79]
Lokal-12.4.4-arm64-mac.zip.blockmap:[F6AC53F81AE00A3962E2ED55C75644B74E2076726D85E04431EECB53C62EC68A]
Lokal-12.4.4-arm64.AppImage:[8B5755183B841D2555961A98AAADDC59C5F2533E782890AE80A54DA1F669C2A6]
Lokal-12.4.4-arm64.dmg:[1B9A05E886BC9D2FF73F79DA2012ABA664EA059C7D37C41D7D9CFC0884EC13CE]
Lokal-12.4.4-arm64.dmg.blockmap:[40EFCC9095ECF05B63533BAB9049CC82F2C874A3450C1BBF0186590792731A26]
Lokal-12.4.4-mac.zip:[D61AD95CA129AA7FC86E800B5B11552C581A0E43BCEB0CE3F9FCEB32C0B74357]
Lokal-12.4.4-mac.zip.blockmap:[7DD2C24C0ACD68C0D223F54D5CDF6D64C329A93DFDD61DEEB90F13DBBE7C9630]
Lokal-12.4.4.AppImage:[891AF863DE6A33B310F870D926DE7E539137EB15635F9C50D0F5C2367635D057]
Lokal-12.4.4.dmg:[C90D54359CE6DAF6360A49505C275446BBAD140178E240D300CF9AF2CB2940F9]
Lokal-12.4.4.dmg.blockmap:[25429D3B7DCAC626C01AC68581C796D9EF73B5D8A8863D76534CB04516A8CEEA]
Lokal-12.4.4.exe:[5999BCA6E2C15B3E0F1F1F913B0D857F2F546293638ED6B4D653781345414EAC]
Lokal-Setup-12.4.4.exe:[9AA7D29B0DB8AB2ED992F987B252AAA1C522A5684C173902313F13029D4D639E]
Lokal-Setup-12.4.4.exe.blockmap:[87478C1018431C6E619461A60F4E02DE6221DC15C6FE3C632C3F2A4CC6709E01]
builder-debug.yml:[BEFFC77F63AAA435F32DB2E57412A66C5BEF76401843C8B187604AE1131D3D60]
latest-linux-arm64.yml:[625183082AC9D6D92CEF16E1D3A5261A0FC7C1AF983947C99CE5D1F5C6329719]
latest-linux.yml:[DBE1F4075DFE867A02726B84D4E72D2539899858140DEB78DB58A4F5C6D42179]
latest-mac.yml:[3108721CBA8210F8961CDE81B3F0ACEB97D85BAB5F1AA12BCE182CC115D58EE4]
latest.yml:[8BF49CA09295E81CC192AF96FC97CFA40B4C33E5958D8338A4B8C03E97250BE9]
lokal-music_12.4.4_amd64.deb:[2E1051DA4942A2BB1E1B49F1F2C047A1099471866243028FB5232FB88B6905C1]
lokal-music_12.4.4_arm64.deb:[FFB214EBA8B5779828B3513AC671932A0A255B1C6F4336065BDFB38E4CFCA563]
