navidrome/core/artwork
Deluan bf7ae5e82e fix(artwork): cap the blurhash snapshot at now to survive future mtimes
A future-dated artwork file mtime (clock skew, or a file stamped ahead of the
server clock) flowed into the reader's LastUpdated snapshot and was persisted
verbatim as blur_hash_updated_at. Both the worker's freshness guard and the
Jellyfin DTO use a !Before comparison against that timestamp, so a later
legitimate cover change whose row/mtime clock was still behind the future value
would be skipped, pinning the stored hash (and the client's cached cover) until
wall time caught up.

Cap the snapshot at time.Now() in process() before every freshness comparison
and persist, so a real later change always advances past it. Normal past mtimes
(the legitimate 'snapshot exceeds row version' case) are unaffected.
2026-07-17 15:51:01 -04:00
..
blurhash perf(artwork): eliminate per-pixel allocations in blurhash encoding 2026-07-17 11:33:16 -04:00
e2e fix(artwork): cap the blurhash snapshot at now to survive future mtimes 2026-07-17 15:51:01 -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 fix(artwork): backfill warm caches and supersede pending gone on refill 2026-07-17 15:36:17 -04:00
artwork_internal_test.go fix(artwork): stop the blurhash worker on Close to fix test data races 2026-07-17 11:51:24 -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 fix(artwork): stop the blurhash worker on Close to fix test data races 2026-07-17 11:51:24 -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 fix(artwork): stop the blurhash worker on Close to fix test data races 2026-07-17 11:51:24 -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 fix(artwork): cap the blurhash snapshot at now to survive future mtimes 2026-07-17 15:51:01 -04:00
blurhash_updater_internal_test.go fix(artwork): backfill warm caches and supersede pending gone on refill 2026-07-17 15:36:17 -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 perf(artwork): faster image resize + update gen2brain/webp to v0.6.0 (#5652) 2026-06-22 16:33:01 -04:00
reader_resized_test.go fix(artwork): preserve animation for square thumbnails with animated images 2026-04-01 08:38:29 -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
wire_providers.go Handle "naked" CoverArtIDs (IDs of album, mediafiles and playlists) 2022-12-28 15:31:56 -05:00