Applies rule 32's migration exception: each header still says what the
schema was, what changes and what it prevents, but task, milestone,
decision and rule ids are replaced by the practice they stood for, the
operator quotes by the decision, single-install counts are dropped, and
pointers to a deleted package and an external design doc are gone.
golang-migrate keeps no checksum, so editing applied migrations'
comments is safe.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Lidarr is off, and with it the resolver had stopped merging: it only
merged when Lidarr had said which copies it mapped. Minstrel is now the
only program writing the library, so the rule is about the copies:
- A song held twice on one album: the extra copies merge into the one
whose tags fit best (then lossless, larger, older).
- Across releases or under another title: when every copy but one is a
video rip (held back, or named like one and not marked fine), the rips
merge into the one that is not.
- Clean copies on different releases are linked as one song, as before.
- Anything else waits for the operator.
Gone with Lidarr: release switches and their settle window, the
unmapped-file read, the rip search, the merge guard and its 409/503,
lidarr.Client's release methods, and duplicate_group_members.lidarr_state
(migration 0078). The duplicates page drops the per-copy Lidarr badge
and the blocked-merge notice; past release changes stay in its history.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>