Skip to content

feat: reduce long-running memory use and simplify desktop runtime - #73

Merged
rianjs merged 2 commits into
mainfrom
feat/long-running-memory
Sep 20, 2026
Merged

rianjs merged 2 commits into
mainfrom
feat/long-running-memory

Conversation

@rianjs

@rianjs rianjs commented Sep 20, 2026 •

Copy link
Copy Markdown
Collaborator

What changed

  • Park the large Last.fm importer payload while its window is closed, reload it on demand, and keep compact owner metadata resident. Remove the allocator-trim helper, which released zero bytes in the diagnostic run.
  • Cache local cover art as raw files under a 512 MiB cap and reduce redundant copies across persistence, playback, and Spotify paths.
  • Include the previously approved performance cleanup for playback rendering, playlist windowing, hidden presentation, startup loading, queue refreshes, plus related tests and documentation.

Measurements

On a private 245,941-scrobble fixture, parking took 35–42 ms and reload took 246–254 ms. The initial Rust test-process footprint was about 286 MB; parked samples ranged from about 55 MB to 145 MB across three cycles, with the third cycle showing no reduction. These are variable observations from the isolated test process, not the full app, WebView, or graphics memory, and do not establish a guaranteed saving.

Validation

  • Rust workspace: 915 passed, 10 ignored; focused ownership and portability regressions passed. Formatting and workspace Clippy passed.
  • Frontend: 177 tests passed, 6 skipped; lint and production build passed. Documentation, release-contract, and Tauri ACL checks passed.
  • GitHub Actions passed on Windows x64/ARM64, Ubuntu amd64/arm64, and macOS arm64, including native release tests and bundle builds.
  • The unique-ID macOS debug build compiled, but a locked Mac prevented interactive UI smoke.
  • No new dependencies.

Park idle Last.fm importer sessions and retain compact ownership metadata, with regression coverage for reload and account boundaries. Bound local artwork storage with a 512 MiB raw-file cache and reduce copies across persistence, audio, and Spotify paths. Document the measured memory behavior and update runtime checks.
@rianjs
rianjs merged commit 940c752 into main Sep 20, 2026
8 checks passed
@rianjs
rianjs deleted the feat/long-running-memory branch September 20, 2026 20:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant