The same rewrite as d191a282, for four packages whose comments carried the
most history: tuning stories, quotes from the operator, single-install
measurements in library_scale.go, and 'used to' accounts of bugs. The
constraint each story protected stays as a present-tense reason (why tier 3
is reduced not removed, why the randomised arms take an order seed, why the
seed artist is eligible in Songs-like). Comments naming system_cron.go and
config.RecommendationConfig, neither of which holds what they claimed, now
name the scheduler and internal/recsettings.
Checked: non-comment tokens identical to HEAD; gofmt clean.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- acquisition_settings.upgrade_until (default High quality lossy, Lidarr's
cutoff, note #5527; "" is off), an "Upgrade until" row under Searching.
- The wanted worker judges held albums hourly: tier per format from size per
second (the scanner records no bitrate), the album's worst. Below the
cutoff it is wanted for quality; a video rip among its tracks always.
- The schedule searches upgrades weekly, after open wants; a release no
better than the copy held is refused ("not_better").
- The import matches each file to the track it would replace (recording,
then disc/track) and replaces it when it is a rip or the file is a better
tier: over the same path in one rename, or filed beside it and the old
track folded in (library.ReplaceTrack: file first, then foldTrackInto).
Nothing better: the release is set aside.
- Collection › Upgrades (Lidarr's Cutoff Unmet); Suspect sources says when a
clean copy was looked for instead of Lidarr's search.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>