navidrome/core/artwork
Deluan 9a36047096 fix(artwork): version the resized cache key to backfill blurhashes on upgrade
Resized entries cached by a pre-blurhash version serve straight from the cache:
the resized reader never runs, the original is never read, and the tee never gets
a chance to compute a hash — clients that only request sized images (Jellyfin
maxwidth) would keep receiving the fake blurhash indefinitely for those items.

Versioning the resized cache key makes every post-upgrade sized request miss and
refill. The refill pulls the original through Get, which usually hits the cached
original (original keys are unchanged), so the backfill costs one decode+re-encode
per resized variant with no source or external-provider I/O. Orphaned entries are
evicted by the cache's LRU as usual.
2026-07-17 22:30:38 -04:00
..
blurhash perf(artwork): key blurhash dedup by identity, plus review cleanups 2026-07-17 21:46:12 -04:00
e2e fix(jellyfin): fold folder image mtimes into the album blurhash version 2026-07-17 22:14:13 -04:00
animation.go feat(artwork): preserve animated image artwork during resize (#5184) 2026-03-13 18:11:12 -04:00
animation_test.go feat(artwork): preserve animated image artwork during resize (#5184) 2026-03-13 18:11:12 -04:00
artwork.go perf(artwork): key blurhash dedup by identity, plus review cleanups 2026-07-17 21:46:12 -04:00
artwork_internal_test.go refactor(artwork): compute the blurhash inline, drop the background worker 2026-07-17 21:20:46 -04:00
artwork_suite_test.go refactor(artwork): migrate readers to storage.MusicFS and add e2e suite (#5379) 2026-04-26 18:16:14 -04:00
artwork_test.go refactor(artwork): compute the blurhash inline, drop the background worker 2026-07-17 21:20:46 -04:00
benchmark_decode_test.go perf(artwork): improve image serving performance with WebP encoding and optimized pipeline (#5181) 2026-03-13 09:35:59 -04:00
benchmark_e2e_test.go refactor(artwork): compute the blurhash inline, drop the background worker 2026-07-17 21:20:46 -04:00
benchmark_encode_test.go perf(artwork): improve image serving performance with WebP encoding and optimized pipeline (#5181) 2026-03-13 09:35:59 -04:00
benchmark_helpers_test.go chore: go fix 2026-05-28 22:13:05 -03:00
benchmark_pipeline_test.go feat(artwork): preserve animated image artwork during resize (#5184) 2026-03-13 18:11:12 -04:00
benchmark_tag_test.go perf(artwork): improve image serving performance with WebP encoding and optimized pipeline (#5181) 2026-03-13 09:35:59 -04:00
blurhash_updater.go perf(artwork): key blurhash dedup by identity, plus review cleanups 2026-07-17 21:46:12 -04:00
blurhash_updater_internal_test.go perf(artwork): key blurhash dedup by identity, plus review cleanups 2026-07-17 21:46:12 -04:00
cache_warmer.go fix(artwork): address WebP performance regression on low-power hardware (#5286) 2026-04-04 15:17:01 -04:00
cache_warmer_test.go fix(artwork): address WebP performance regression on low-power hardware (#5286) 2026-04-04 15:17:01 -04:00
image_cache.go Add lastUpdated to coverArt ids. Helps with invalidating art cache client-side. 2023-02-08 20:03:31 -05:00
library_fs.go refactor(artwork): migrate readers to storage.MusicFS and add e2e suite (#5379) 2026-04-26 18:16:14 -04:00
library_fs_test.go refactor(artwork): migrate readers to storage.MusicFS and add e2e suite (#5379) 2026-04-26 18:16:14 -04:00
reader_album.go fix(artwork): never serve artist folder images as album art (#5596) 2026-06-13 13:29:29 -04:00
reader_album_test.go fix(artwork): never serve artist folder images as album art (#5596) 2026-06-13 13:29:29 -04:00
reader_artist.go refactor(artwork): migrate readers to storage.MusicFS and add e2e suite (#5379) 2026-04-26 18:16:14 -04:00
reader_artist_test.go fix(artwork): never serve artist folder images as album art (#5596) 2026-06-13 13:29:29 -04:00
reader_disc.go fix(artwork): fix stale cache and top-level album artwork for multi-disc albums (#5457) 2026-05-04 17:26:39 -04:00
reader_disc_test.go refactor(artwork): migrate readers to storage.MusicFS and add e2e suite (#5379) 2026-04-26 18:16:14 -04:00
reader_mediafile.go refactor(artwork): migrate readers to storage.MusicFS and add e2e suite (#5379) 2026-04-26 18:16:14 -04:00
reader_playlist.go feat(ui): increase cover art size to 600px and use CatmullRom scaling 2026-03-22 14:55:14 -04:00
reader_radio.go feat(ui): add cover art support for internet radio stations (#5229) 2026-03-18 18:57:33 -04:00
reader_radio_test.go refactor(conf): replace eager dir creation with lazy Dir type (#5495) 2026-05-13 17:44:22 -03:00
reader_resized.go fix(artwork): version the resized cache key to backfill blurhashes on upgrade 2026-07-17 22:30:38 -04:00
reader_resized_test.go fix(artwork): version the resized cache key to backfill blurhashes on upgrade 2026-07-17 22:30:38 -04:00
sources.go refactor(artwork): migrate readers to storage.MusicFS and add e2e suite (#5379) 2026-04-26 18:16:14 -04:00
sources_internal_test.go refactor(artwork): migrate readers to storage.MusicFS and add e2e suite (#5379) 2026-04-26 18:16:14 -04:00
tee_reader.go perf(artwork): key blurhash dedup by identity, plus review cleanups 2026-07-17 21:46:12 -04:00
tee_reader_internal_test.go fix(artwork): close the underlying stream from the tee; rename to tee_reader 2026-07-17 21:13:03 -04:00
wire_providers.go Handle "naked" CoverArtIDs (IDs of album, mediafiles and playlists) 2022-12-28 15:31:56 -05:00