- force recompute on image-cache miss, so in-place cover/sidecar swaps and
agent image updates refresh the stored hash even when no entity row moved
- exclude external_info_updated_at from the artwork version: agent TTL
refreshes bump it with an unchanged image, churning Finamp's cover cache
- lazy-start the worker goroutine and bound each computation with a 30s
timeout; remember no-result entities per version to avoid re-decoding
placeholders on every serve
- error (instead of silently skipping) on unknown artwork kinds in persist