fix: a slot the resolver emptied folds only into a copy of its own song (M498)
release / govulncheck (push) Successful in 16s
release / web (push) Successful in 1m28s
release / go (push) Successful in 1m36s
release / android (push) Successful in 5m2s
release / integration (push) Failing after 5m7s
release / Build signed APK (releases and dev) (push) Successful in 5m12s
release / Attach APK to the Release (tag releases only) (push) Skipped
release / Build + push container image (push) Skipped
release / Verify release artifacts (tag releases only) (push) Skipped
release / govulncheck (push) Successful in 16s
release / web (push) Successful in 1m28s
release / go (push) Successful in 1m36s
release / android (push) Successful in 5m2s
release / integration (push) Failing after 5m7s
release / Build signed APK (releases and dev) (push) Successful in 5m12s
release / Attach APK to the Release (tag releases only) (push) Skipped
release / Build + push container image (push) Skipped
release / Verify release artifacts (tag releases only) (push) Skipped
On 2026-10-20 the emptied "Open the Gateway" slot of Auvic's Speed Demons was folded by title into another file tagged "Open the Gateway" that holds Onward (244 s against the song's 254 s), so the album was never wanted back. A wrong-slot removal now stamps tracks.emptied_at (migration 0095) when the album holds no copy of the song as long as its MusicBrainz slot, and missing-pair folding pairs such a row by title only with a track added since: a copy fetched again. A slot whose song the album does hold (VOID DLC's Weeper beside Void's) folds into it as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -25,6 +25,10 @@
|
||||
-- A pair whose MBIDs are both set and differ is not a title match: the tags say
|
||||
-- they are different recordings. The caller folds a pair only when each side has
|
||||
-- exactly one candidate; anything else is ambiguous and left alone.
|
||||
--
|
||||
-- A slot the duplicate resolver emptied (emptied_at, migration 0095) pairs by
|
||||
-- title only with a track added since: the album held no copy of the song as
|
||||
-- long as it is, so one already there under the title is another song.
|
||||
WITH grp AS (
|
||||
SELECT id AS album_id, COALESCE(release_group_mbid, id::text) AS g
|
||||
FROM albums
|
||||
@@ -47,6 +51,7 @@ cand AS (
|
||||
AND lower(p.title) = lower(m.title)
|
||||
WHERE m.missing_since IS NOT NULL
|
||||
AND (m.mbid IS NULL OR p.mbid IS NULL OR m.mbid = p.mbid)
|
||||
AND (m.emptied_at IS DISTINCT FROM m.missing_since OR p.added_at > m.emptied_at)
|
||||
),
|
||||
pairs AS (
|
||||
-- A pair both rules found is one candidate, credited to the stronger rule.
|
||||
|
||||
Reference in New Issue
Block a user