发布

  • fix: stale track load race, all-stems-muted recovery, live update notification (#123)

    frostbyte_neo 发布于 2026-05-24 13:24:59 +00:00 | 260 次提交 在此版本后已推送到 main

    Summary

    • Bug: stale track load race -- if you switch tracks before the
      fetch completes, the in-flight load now aborts via a token guard in
      catalog.js
    • Bug: all stems muted on load -- if a saved mix state has every
      loaded stem muted (unplayable), they are all unmuted on restore; partial
      mutes are preserved
    • Bug: mix state applied before storage resolves -- applyMix() in
      the canplay handler now waits for the async storage read, guarded by
      jobId and multitrack instance
    • Notifications: live update check -- panel is hidden by default;
      shows release card only when GitHub reports a newer version; bell badge
      appears; dismiss persists to localStorage per version
    • Fix: repo URLs -- checkForUpdate was pointing at
      thcp/stemdeck; corrected to stemdeckapp/stemdeck
    • Settings button -- shows "More features coming soon" tooltip on
      click

    Test plan

    • Process a track, mute all stems, reload -- stems should come back
      unmuted
    • Double-click two different tracks quickly -- only the second track
      loads
    • Bell shows no badge when on latest version; shows badge + card
      when a newer release exists on GitHub
    • Dismiss release card -- does not reappear on reload for same
      version
    • Settings button click shows coming-soon tooltip; click outside
      dismisses it
    • node --check passes on all changed JS files
    • uv run pytest tests/ -q -- 59 passed

    Closes #122

    下载附件