navidrome/core/artwork
Deluan c3eea27b4f tune(artwork): 5s backoff base + 12h give-up, drop the cap
Retry backoff now starts at 5s (was 15s) so a transient failure recovers on
essentially the next drain, and jitter widens to ±40% so a wave of correlated
failures doesn't re-clump into one poll.

Add a 12h give-up budget measured from enqueued_at: once the next backoff would
land past it, the worker stops retrying instead of grinding at a cap forever. A
bare failure settles absent (handed to the 24h stale-absent sweep, and still
recoverable on a page view); a found-stale keeps its already-served art. The
budget bounds the tail, so the separate 48h backoffCap is removed.
2026-07-24 17:27:40 -04:00
..
blurhash feat(artwork): import blurhash encoder from #5797 2026-07-22 15:53:32 -04:00
e2e refactor(artwork): thread model.Kind through the artwork API 2026-07-24 16:58:23 -04:00
agent_images.go fix(artwork): restore synthetic-artist guard and unicode normalization in agent lookups 2026-07-23 14:08:08 -04:00
agent_images_test.go fix(artwork): restore synthetic-artist guard and unicode normalization in agent lookups 2026-07-23 14:08:08 -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_suite_test.go refactor(artwork): delete the legacy reader chain, cache warmer, and provider image methods 2026-07-23 14:08:08 -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_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
disc.go refactor(artwork): delete the legacy reader chain, cache warmer, and provider image methods 2026-07-23 14:08:08 -04:00
disc_test.go refactor(artwork): delete the legacy reader chain, cache warmer, and provider image methods 2026-07-23 14:08:08 -04:00
folders_album.go refactor(artwork): delete the legacy reader chain, cache warmer, and provider image methods 2026-07-23 14:08:08 -04:00
folders_artist.go refactor(artwork): delete the legacy reader chain, cache warmer, and provider image methods 2026-07-23 14:08:08 -04:00
housekeeping.go refactor(artwork): thread model.Kind through the artwork API 2026-07-24 16:58:23 -04:00
housekeeping_test.go fix(artwork): resolve private playlists with an admin context 2026-07-22 15:53:32 -04:00
image_cache.go refactor(artwork): delete the legacy reader chain, cache warmer, and provider image methods 2026-07-23 14:08:08 -04:00
image_store.go feat(artwork): add acquisition worker service 2026-07-22 15:53:32 -04:00
image_store_test.go test(artwork): leak/soak coverage and deferred assertions 2026-07-22 15:53:32 -04:00
library_fs.go fix(artwork): preserve the drive when normalizing Windows file:// library paths 2026-07-23 14:08:08 -04:00
library_fs_test.go fix(artwork): open library-backed artwork through its on-disk root 2026-07-23 14:08:08 -04:00
playlist_cover.go fix(artwork): serve a local playlist ExternalImageURL as a file-backed reference 2026-07-23 14:08:08 -04:00
processor.go feat(artwork): precache on acquisition, bump on upload/radio changes, manual re-resolve API 2026-07-23 14:08:08 -04:00
processor_test.go refactor(artwork): thread model.Kind through the artwork API 2026-07-24 16:58:23 -04:00
prune.go fix(artwork): purge dangling queue rows and guard concurrent re-enqueues 2026-07-22 15:53:32 -04:00
prune_test.go refactor(artwork): thread model.Kind through the artwork API 2026-07-24 16:58:23 -04:00
refresh.go refactor(artwork): thread model.Kind through the artwork API 2026-07-24 16:58:23 -04:00
resize.go feat(artwork): state-backed serving path with provisional read-through 2026-07-23 14:08:08 -04:00
resolve.go refactor(artwork): thread model.Kind through the artwork API 2026-07-24 16:58:23 -04:00
resolve_test.go fix(artwork): serve a local playlist ExternalImageURL as a file-backed reference 2026-07-23 14:08:08 -04:00
serving.go refactor(artwork): thread model.Kind through the artwork API 2026-07-24 16:58:23 -04:00
serving_test.go refactor(artwork): thread model.Kind through the artwork API 2026-07-24 16:58:23 -04:00
sources.go refactor(artwork): delete the legacy reader chain, cache warmer, and provider image methods 2026-07-23 14:08:08 -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
testhelpers_test.go refactor(artwork): delete the legacy reader chain, cache warmer, and provider image methods 2026-07-23 14:08:08 -04:00
uploader.go refactor(artwork): thread model.Kind through the artwork API 2026-07-24 16:58:23 -04:00
uploader_test.go refactor(artwork): thread model.Kind through the artwork API 2026-07-24 16:58:23 -04:00
wire_providers.go refactor(artwork): move ImageUploadService to artwork.Uploader 2026-07-24 16:24:19 -04:00
worker.go tune(artwork): 5s backoff base + 12h give-up, drop the cap 2026-07-24 17:27:40 -04:00
worker_soak_test.go refactor(artwork): thread model.Kind through the artwork API 2026-07-24 16:58:23 -04:00
worker_test.go tune(artwork): 5s backoff base + 12h give-up, drop the cap 2026-07-24 17:27:40 -04:00
worker_timing_test.go feat(artwork): precache on acquisition, bump on upload/radio changes, manual re-resolve API 2026-07-23 14:08:08 -04:00