fix(library): multi-genre local index with track_genre and backfill (#1059)

* fix(library): multi-genre local index with track_genre and backfill

Restore atomic genre browse, filters, and counts via track_genre:
OpenSubsonic genres[] first with Navidrome-default split fallback, sync
write path, read-path query switches, blocking startup backfill with
progress, and v12 repair migration for DBs that recorded legacy 002–011.
TS fallback adds genreTagsFor and migration gate i18n across locales.

* fix(library): address multi-genre review — robust TS genres and scope join

genreTagsFor routes raw genres through parseItemGenres (single-object
Subsonic quirk and bare strings). Library-scoped genre browse/counts join
track for raw_json library_id fallback. Statistics keeps empty-genre bucket.

* docs: CHANGELOG and credits for multi-genre local index (PR #1059)

* docs(changelog): credit HiveMind on Discord for multi-genre report (PR #1059)
This commit is contained in:
cucadmuh
2026-06-11 01:02:35 +03:00
committed by GitHub
parent 8593858f3a
commit 5cd01c90ac
55 changed files with 1322 additions and 145 deletions
+2
View File
@@ -42,6 +42,7 @@ import { deviceSync } from './deviceSync';
import { orbit } from './orbit';
import { tray } from './tray';
import { licenses } from './licenses';
import { migration } from './migration';
export const nlTranslation = {
sidebar,
@@ -88,4 +89,5 @@ export const nlTranslation = {
orbit,
tray,
licenses,
migration,
};
+15
View File
@@ -0,0 +1,15 @@
export const migration = {
preparing: 'Gegevensupdate voorbereiden…',
preparingBody: 'Bibliotheek en analysecache controleren…',
migrating: 'Gegevens migreren',
working: 'bezig…',
skippedRows: 'Rijen van verwijderde servers zijn overgeslagen; oude back-up wordt na succesvolle switch verwijderd.',
failed: 'Migratie mislukt',
retry: 'Opnieuw',
copyDetails: 'Details kopiëren',
complete: 'Update voltooid',
completeRows: '{{count}} rijen gemigreerd',
genreTagsTitle: 'Genre-index bijwerken…',
genreTagsBody: 'Genres indexeren voor bladeren en filters. Eenmalig na de update.',
genreTagsFailed: 'Genre-index bijwerken mislukt',
};