fix: a slot emptied of another song's file drops that file's recording MBID, so missing-pair folding cannot fold it into the copy kept (M498)
release / govulncheck (push) Successful in 24s
release / web (push) Successful in 1m21s
release / go (push) Successful in 1m35s
release / integration (push) Failing after 5m1s
release / android (push) Successful in 5m2s
release / Build signed APK (releases and dev) (push) Successful in 5m11s
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 24s
release / web (push) Successful in 1m21s
release / go (push) Successful in 1m35s
release / integration (push) Failing after 5m1s
release / android (push) Successful in 5m2s
release / Build signed APK (releases and dev) (push) Successful in 5m11s
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 twelve of the 24 slots the resolver emptied were folded by MBID into the kept copy, so their albums were never wanted back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -225,7 +225,9 @@ func neverRead(ctx context.Context, q *dbq.Queries, rg string) bool {
|
||||
|
||||
// removeWrongSlots deletes each loser's file, then marks its track missing in
|
||||
// the same transaction that closes the group. The row is kept, with its likes
|
||||
// and plays: it is the slot, and a good copy fetched again takes it over. A
|
||||
// and plays: it is the slot, and a good copy fetched again takes it over. Its
|
||||
// recording MBID is dropped, being the wrong file's, so missing-pair folding
|
||||
// does not fold the slot into the copy that was kept. A
|
||||
// file that cannot be removed stops the group; the ones already gone are still
|
||||
// marked, and the group waits for the next pass.
|
||||
func removeWrongSlots(
|
||||
@@ -253,6 +255,9 @@ func removeWrongSlots(
|
||||
if _, err := tq.MarkTracksMissing(ctx, gone); err != nil {
|
||||
return fmt.Errorf("mark missing: %w", err)
|
||||
}
|
||||
if err := tq.ClearTrackMbids(ctx, gone); err != nil {
|
||||
return fmt.Errorf("clear mbids: %w", err)
|
||||
}
|
||||
if err := logTrackChanges(ctx, tq, gone); err != nil {
|
||||
return fmt.Errorf("log changes: %w", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user