Build and Deploy / build-and-deploy (push) Successful in 1m56s
Previously "watched >=90%" was a hard gate for being a source (in addition
to library items), and Radarr sync only marked something IN_LIBRARY when
hasFile was true - both wrong per the corrected spec:
- anything ever added to Radarr/Sonarr is a source forever, regardless of
whether the file has finished downloading
- removal from the library flips it to REMOVED (renamed from
WATCHED_REMOVED) but it stays a source and keeps feeding intersections -
REMOVED only drives the "Watch Again" feed now
- being watched (and rewatch count) no longer gates source membership at
all; it's purely a scoring weight boost via the new watchedBoost config,
stacked with the existing rewatch amplifier
Also added MediaService.markRemovedIfMissing(), called from
RecomputeService's library sync, so a title that drops out of Radarr/Sonarr's
listing gets flagged REMOVED even if its delete webhook was missed.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>