feat: data lifecycle rewrite, download clients, wanted list, and central catalog index
Build & publish Arch package / arch-package (push) Successful in 2m12s
Search index maintenance / maintain-index (push) Successful in 2h22m28s

Ships the fresh-start schema cleanup: rebuilt explore catalog index
pipeline (dump import, artifact fetch/build, incremental listen-count
refresh), a new download subsystem (Lidarr/Prowlarr/qBittorrent/SABnzbd/
slskd/yt-dlp providers, staging, reconciliation, wanted list), and the
supporting schema/query/store changes across backend and frontend.

Also includes two smaller follow-ups: bump the central index's
rebuild-after cadence from 90 to 180 days, and remove the Explore
"library only" online/offline toggle entirely (frontend-only, no
backend counterpart) rather than carry unused UI/state.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y2Agd9af5hE7qzti2ackiS
This commit is contained in:
2026-08-06 17:12:01 -04:00
co-authored by Claude Sonnet 5
parent d0d86f85d5
commit e190fd75b9
165 changed files with 31088 additions and 5192 deletions
+24
View File
@@ -30,6 +30,10 @@ export function CheckLibraryMBIDs(arg1) {
return window['go']['explore']['Service']['CheckLibraryMBIDs'](arg1);
}
export function CoreCatalogImported() {
return window['go']['explore']['Service']['CoreCatalogImported']();
}
export function CoverArtGroupURL(arg1) {
return window['go']['explore']['Service']['CoverArtGroupURL'](arg1);
}
@@ -98,6 +102,18 @@ export function GetTrackThumbnails(arg1) {
return window['go']['explore']['Service']['GetTrackThumbnails'](arg1);
}
export function IndexBaselineSeries() {
return window['go']['explore']['Service']['IndexBaselineSeries']();
}
export function IndexImportComplete() {
return window['go']['explore']['Service']['IndexImportComplete']();
}
export function IndexLastImported() {
return window['go']['explore']['Service']['IndexLastImported']();
}
export function InvalidateIndexDiscographies() {
return window['go']['explore']['Service']['InvalidateIndexDiscographies']();
}
@@ -134,6 +150,10 @@ export function PrefetchReleases(arg1) {
return window['go']['explore']['Service']['PrefetchReleases'](arg1);
}
export function PrepareIndexRebuild() {
return window['go']['explore']['Service']['PrepareIndexRebuild']();
}
export function RebuildLyricsIndex() {
return window['go']['explore']['Service']['RebuildLyricsIndex']();
}
@@ -146,6 +166,10 @@ export function RecordSearchClick(arg1, arg2, arg3) {
return window['go']['explore']['Service']['RecordSearchClick'](arg1, arg2, arg3);
}
export function RefreshIndexNow(arg1) {
return window['go']['explore']['Service']['RefreshIndexNow'](arg1);
}
export function RefreshListenCounts() {
return window['go']['explore']['Service']['RefreshListenCounts']();
}