feat: autotag scoring overhaul, dump-based explore index, and lyrics search
Consolidates in-progress work across autotag, explore, and library: - autotag: beets/Picard-informed scoring engine — ID-first matching, VA handling, recommendation tiers, and a merged distance/rank cascade, with an eval harness for regression tracking. - explore: offline MusicBrainz dump import/incremental refresh replaces the legacy tier crawl; index-first local search with fuzzy matching and a dedicated ranker; disk-free guards for dump downloads. - library: artist-credit extraction and matching. - lyrics: owned-library lyric search (FTS) with LRCLIB backfill. Also: rewrite README to be user-focused, and migrate upstream to git.ljones.me/yonlu/yellowjacket. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -237,7 +237,7 @@ func (q *Queue) lookupChunk(
|
||||
return
|
||||
}
|
||||
|
||||
rows, err := q.db.Queries.LookupTrackMetaByPaths(q.db.Ctx, paths)
|
||||
rows, err := q.db.ReadQueries.LookupTrackMetaByPaths(q.db.Ctx, paths)
|
||||
if err != nil {
|
||||
q.logger.Error("Batch metadata lookup failed", "err", err)
|
||||
|
||||
@@ -415,7 +415,7 @@ func (q *Queue) RestoreState() {
|
||||
defer q.mu.Unlock()
|
||||
|
||||
// Restore queue metadata.
|
||||
state, err := q.db.Queries.GetQueueState(q.db.Ctx)
|
||||
state, err := q.db.ReadQueries.GetQueueState(q.db.Ctx)
|
||||
if err != nil {
|
||||
q.logger.Error("Failed to load queue state", "err", err)
|
||||
|
||||
@@ -444,7 +444,7 @@ func (q *Queue) RestoreState() {
|
||||
}
|
||||
|
||||
// Restore queue tracks.
|
||||
rows, err := q.db.Queries.GetQueueTracks(q.db.Ctx)
|
||||
rows, err := q.db.ReadQueries.GetQueueTracks(q.db.Ctx)
|
||||
if err != nil {
|
||||
q.logger.Error("Failed to load queue tracks", "err", err)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user