Transparent caching with pull-to-refresh#115
Closed
docmeth02 wants to merge 6 commits intokepelet:developfrom
Closed
Transparent caching with pull-to-refresh#115docmeth02 wants to merge 6 commits intokepelet:developfrom
docmeth02 wants to merge 6 commits intokepelet:developfrom
Conversation
Contributor
Author
Member
|
related #43 |
Closed
…t images so lists and artwork load instantly from disk while refreshing from the network in the background. Includes pull-to-refresh on Library, Artists, Songs, and Playlists views.
f7a8c22 to
75949d0
Compare
Contributor
Author
|
Update: Rebased onto develop and expanded scope beyond stream caching. Since the original PR, I've been building out additional caching layers for the standalone watchOS What's new in this update: Library cache (LibraryCacheManager.swift):
Cover art cache (CoverArtCacheManager.swift):
Pull-to-refresh:
Other:
All original stream caching functionality from the initial PR is unchanged. |
faultables
added a commit
that referenced
this pull request
Apr 11, 2026
Co-authored-by: faultables <faultables@users.noreply.github.com>
docmeth02
added a commit
to docmeth02/flo
that referenced
this pull request
Apr 12, 2026
Shows stream-cached songs as a browsable playlist in the Downloads tab with Play All, Shuffle, and individual track playback. Follow-up to kepelet#115. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
faultables
pushed a commit
that referenced
this pull request
Apr 21, 2026
Shows stream-cached songs as a browsable playlist in the Downloads tab with Play All, Shuffle, and individual track playback. Follow-up to #115. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Member
|
closing this PR since the commit has already been cherry-picked into #127 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


This is just a proposal, i am working on a standalone watchOs app based on flo, implementing this cache is necessary on watchOs to save on battery and cellular data. I felt like it could also benefit the other platforms?
PR adds optional (defaults to off for now) transparent pre caching that silently prefetches the next song to disk for instant play/replay on subsequent plays — similar to Spotify's caching behavior.
Cached files are stored in Library/Caches/StreamCache/ (separate from explicit downloads) with LRU eviction when the user-defined cache limit is reached (default 1 GB).
Key Changes
Playback pipeline (AlbumService.swift, PlayerViewModel.swift):
Storage (StreamCacheManager.swift, CacheEntity):
Settings (PreferencesView.swift):