Merge pull request #739 from lokal-music/release/v14.1.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 desktop Addons settings renderer crash (
installKeyundefined) (#737)Details
Root cause
AddonsSettingsreferencesinstallKeyandsetInstallKeyin the HTTP add-on installation form, but the state hook was accidentally declared inside the unrelatedRepositoryBrowsercomponent. React renders the parent with an unbound variable, throwingReferenceError: installKey is not definedand replacing the desktop UI with its renderer error screen.Fix
- Move the signing-key state hook from
RepositoryBrowserintoAddonsSettings. - Keep HMAC signing-key configuration scoped to individual HTTP add-on installation and preserve the existing install/reset behavior.
- Add a regression test checking the state hook's ownership, input binding, installation forwarding, and reset.
Verification
- Checked updated source on the branch: one
installKeystate hook insideAddonsSettings, none inRepositoryBrowser; the form, installation API call, and reset reference that same hook. - Added
scripts/addons-settings-install-key.test.mjs(node --test scripts/addons-settings-install-key.test.mjs). The full Electron build and GUI smoke test have not been run here.
Fixes the renderer exception shown when opening Settings → Addons.
- Move the signing-key state hook from
-
fix(desktop): keep lyric focus until the final lead or backing vocal finishes (#738)
Details
Reproduced on user FLAC
The Pump It FLAC has full
LOKAL_LYRICSJSON with independent vocal windows. At 36.711 s the next lead starts before the preceding backing stops at 36.739 s. Desktop already readsLOKAL_LYRICSand highlights backing correctly, butLyricsPanelfocuses the newest start (with lead-ahead), causing the backing to jump into the next row.Fix
- Add
focusRowUntilVocalsFinishto the shared lyrics timing math. - Keep earlier lead focused until the later end of its lead words and attached backing words, including when the next lyric timestamp has passed.
- Use this in the actual Desktop
LyricsPanelrenderer, preserving ordinary next-start behavior for line-only LRC with no known end. - Add reproducible tests using anonymized real timing from Pump It and include them in the existing lyric/LastWave PR CI workflow.
Validation
Automated tests added; verify latest CI and visually test original file.
Summary by CodeRabbit
- Bug Fixes
- Synced lyrics now keep the current line focused until its lead or backing vocals finish, rather than advancing too early.
- Focus remains consistent when seeking through tracks. Lyrics with only line-level timestamps retain their existing focus behavior.
- Add
Contributors: @CHEYCKIT
Full Changelog: v14.1.2...v14.1.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-14.1.3-arm64-mac.zip:
[14B050807ACF9949F8574E513540D5C1E8791105C4E9A25CDEBE102662CA0EF0]
Lokal-14.1.3-arm64-mac.zip.blockmap:[136F0AEF77D9850E3BCA11E9816A64C4AB1D6190D74CF0566F68412995E87930]
Lokal-14.1.3-arm64.AppImage:[287EF1F71D52134FAE2F8494C593A6E4EF6EE69F444DDBA330B0EB4171136C53]
Lokal-14.1.3-arm64.dmg:[05AB191A5588FD66E9F8740AD285FD0935770D16544A8869203B4938932E72C1]
Lokal-14.1.3-arm64.dmg.blockmap:[D31B626C1419BE7B322640F07F9BA9FC5EC60D08207677A469DE6937B38DB992]
Lokal-14.1.3-mac.zip:[3C7D5A01B39E733C96943A9649B90ABAB06F43F00BF20CD8B8E88BE8F58CE230]
Lokal-14.1.3-mac.zip.blockmap:[A7D2503EFD50AD718DF2427C5AA0B81DD465CF0779969E7041F3E8C5FAA0DE35]
Lokal-14.1.3.AppImage:[8247038A2D0317FC8E2946FA4FFD2ED8E75087335C636F4ACCD001EF0D8A43DE]
Lokal-14.1.3.dmg:[532034D56BB40F98AB69BA7F8E9A9EBE4417161FD407A5619A0C33302E5A5A12]
Lokal-14.1.3.dmg.blockmap:[80B0FEF90592081610BAA1D55772852A808FFBA0953A66BDD4EB5550BE17F511]
Lokal-14.1.3.exe:[88B54A2B11906BEE0F879AE255EF67EC8C6F8E965821E6B7DE022D269E2642EB]
Lokal-Setup-14.1.3.exe:[DAE2C46A806305BBBAC8ED9FB1641870FFF1D6BE695893D3929503C8F71D3DE3]
Lokal-Setup-14.1.3.exe.blockmap:[DD18A792FEFA6B90CE7B9802379DB3470AFDA5297538E9A67843AA22E952B9DF]
builder-debug.yml:[3140A5F47524418C8DD5FEB7003E530CF87E5C0224504AEC6297B8A003293DFC]
latest-linux-arm64.yml:[29BD61F856E31A5D59EB268141EC35C61E49FC987E0934BAA2EE4AD57157A2FE]
latest-linux.yml:[7823B0FDF2BF9CADE59204BD6C1E8A6F8D0C7450EE52C12C92FAA8937957D57C]
latest-mac.yml:[5E018BA63F73320B5D20CEE307BF4F638E85147B8F3DABF484367FC7CFAF225A]
latest.yml:[36EC8A7B2D5D87FA6E39062215CA37FFB7772B62AC9500EEFBF153D93522C69E]
lokal-music_14.1.3_amd64.deb:[E036DE49E296D490066B09D353CE474BECA988B2C1BC16AB21EB6B6C8DB73105]
lokal-music_14.1.3_arm64.deb:[49C2443151E3699E1C3C577967DAA89C4683863BCAF40877B9006682035E0490]
