feat: autotag mixed-bag splitting, search relevance fixes, and multi-library download imports
Autotag: detect "junk drawer" folders with no artist/album consensus and split them into synthetic per-cluster groups instead of forcing one match on an unrelated pile of tracks; repair tagging_items rows left behind by a prior scan orphan-cleanup gap. Explore: fix an exact artist-name search being drowned out by its own catalog entries in intent-prior scoring, and prune stale in_library bookkeeping left behind when a referenced library row is deleted. Download: fix a multi-library regression where every import failed with "no library root configured" — the importer resolved the library root from a legacy single-library config field that nothing populates in the current multi-library model. It now resolves the destination library per-request from the request's own library_id. Also widen the Soulseek search window (12s -> 20s), measured against real request history to be missing available peers on live queries. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y2Agd9af5hE7qzti2ackiS
This commit is contained in:
@@ -356,6 +356,25 @@ class LibraryStore {
|
||||
return libs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolves a library id to attach a download/want to: the selected
|
||||
* filter if one is set, otherwise the first known library. Callers
|
||||
* that need a library id (rather than "all libraries", which is
|
||||
* what `getSelectedLibraryId()` returning null means for browsing)
|
||||
* should use this instead of defaulting to 0 — id 0 never exists
|
||||
* and trips the library_id foreign key on download_requests /
|
||||
* download_wants.
|
||||
*/
|
||||
async getDefaultLibraryId(): Promise<number | null> {
|
||||
if (this.selectedLibraryIdValue !== null) {
|
||||
return this.selectedLibraryIdValue;
|
||||
}
|
||||
|
||||
const libraries = await this.getLibraries();
|
||||
|
||||
return libraries[0]?.id ?? null;
|
||||
}
|
||||
|
||||
// ===================================================================
|
||||
// SCROLL POSITION
|
||||
// ===================================================================
|
||||
|
||||
Reference in New Issue
Block a user