feat: Minstrel no longer talks to Lidarr: its connection, Delete via Lidarr and the unmonitor options are gone, and the track reports are plain quarantine (M502 #5525)
release / govulncheck (push) Successful in 15s
release / web (push) Failing after 17s
release / go (push) Successful in 1m13s
release / integration (push) Successful in 4m56s
release / android (push) Successful in 5m9s
release / Build signed APK (releases and dev) (push) Successful in 5m19s
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

Migration 0091 drops lidarr_config and renames the quarantine tables, types,
indexes and the history column off the Lidarr name. The Integrations Lidarr
card, the Reports "Delete via Lidarr" action, the merge and remove-track
unmonitor options, the Lidarr audit actions and error codes go, on the
server, web and Android. The README describes acquisition as it is now.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-11 13:48:20 -04:00
co-authored by Claude Opus 5.5
parent c54792c51e
commit 3a16732883
170 changed files with 994 additions and 6242 deletions
@@ -2,9 +2,9 @@
import Cover from '#lib/components/Cover.svelte';
import type { WantArtist } from '#lib/api/types.js';
// One artist in the Collection's catalogue (#5572), like a Lidarr artist
// poster: the picture, a bar of how many of their albums on the list are
// held, and whether Minstrel follows them for new releases.
// One artist in the Collection's catalogue (#5572), as a poster: the
// picture, a bar of how many of their albums on the list are held, and
// whether Minstrel follows them for new releases.
let { artist: a }: { artist: WantArtist } = $props();
@@ -7,8 +7,7 @@
import CatalogueArtistCard from './CatalogueArtistCard.svelte';
import type { WantArtist } from '#lib/api/types.js';
// The Collection's catalogue (#5572), its main page, shaped like Lidarr's
// artist index so a person coming from Lidarr finds their way: every
// The Collection's catalogue (#5572), its main page, an artist index: every
// artist on the list A–Z, each card showing how many of their albums are
// held. An artist opens on their albums. The library's albums were put on
// the list as held once (#5567), each matched to MusicBrainz (#5569); the
@@ -2,11 +2,10 @@
import SectionRail from '#lib/components/SectionRail.svelte';
import type { WantCounts } from '#lib/api/types.js';
// The Collection's sections, down the left like Lidarr's (#5572): the
// catalogue of artists first, then the sections that show state. Activity
// carries a second, accented count when downloads are waiting on a person.
// Unmatched, like Lidarr's Unmapped Files, holds the library albums no
// MusicBrainz album matched (#5579). Upgrades, Lidarr's Cutoff Unmet,
// The Collection's sections, down the left (#5572): the catalogue of
// artists first, then the sections that show state. Activity carries a
// second, accented count when downloads are waiting on a person. Unmatched
// holds the library albums no MusicBrainz album matched (#5579). Upgrades
// holds the albums held but wanted for a better copy (#5524).
let { counts }: { counts?: WantCounts } = $props();
@@ -8,12 +8,12 @@
import UnmatchedMatch from './UnmatchedMatch.svelte';
import type { UnmatchedAlbum } from '#lib/api/types.js';
// The Collection's Unmatched section (#5579), like Lidarr's Unmapped
// Files: the library albums no MusicBrainz album matched by artist, title
// and tracks. Each can be matched by hand, to a search result or a pasted
// link, and goes on the list as held; or left off, as a local band's album
// MusicBrainz will never have. Until then an album isn't fetched back if
// its files go missing.
// The Collection's Unmatched section (#5579): the library albums no
// MusicBrainz album matched by artist, title and tracks. Each can be
// matched by hand, to a search result or a pasted link, and goes on the
// list as held; or left off, as a local band's album MusicBrainz will
// never have. Until then an album isn't fetched back if its files go
// missing.
const client = useQueryClient();
const unmatchedStore = createUnmatchedQuery();