fix: distinguish 404 thumbs from transient failures in favorites
The previous detection treated any LazyImage/Nuke failure as a
dangling CDN ref, so slow first loads marked healthy favorites as
Deleted. It also missed galleries whose thumb string was empty or
unparseable — LazyImage(url: nil) never loads and never fires a
completion, so the card sat blank.
- hydratedFavorites drops galleries with empty/invalid thumb URLs.
- Replace the Nuke probe with a URLSession HEAD that only marks a
uri broken on HTTP 404/410; transient errors stay retryable via
a new probedFavoriteUris set.
- Cover every loaded favorite instead of the top 9; rerun when
loadMore appends.
- Drop the .onCompletion handler and the DeletedGalleryCard path.
Broken uris are hidden at render time via a new visibleFavorites
computed property.
authored by