801018f (2026-03-12) - Lyrics by Track
- Added new GraphQL query lyricByTrack(songName, artist, forceRefresh, includeHistory, historyLimit).
- LyricsService now resolves track metadata first, then fetches by Spotify ID when available.
- Added fallback lyrics lookup by normalized title/artist from DB when Spotify lookup fails.
- TrackMetadataService now reads from trackProviderLookup cache before calling external providers.
- Added new tests for lyrics resolver/service and track ...