Skip to content

fix: multi-artist handling fixes from code review#95

Merged
JoePittsy merged 1 commit into
mainfrom
fix/multi-artist-review-fixes
Jun 12, 2026
Merged

fix: multi-artist handling fixes from code review#95
JoePittsy merged 1 commit into
mainfrom
fix/multi-artist-review-fixes

Conversation

@JoePittsy

Copy link
Copy Markdown
Member

Release details

Fixed

  • Album links on the leaderboard now work for multi-artist albums. Clicking an album credited to multiple artists (e.g. "Sonny Stitt, Kenny Garrett") on a row without stored IDs previously did nothing — the search-based resolver compared the joined artist string against individual artist names and never matched. The hint is now split per artist before matching.
  • Phantom artist rows can no longer appear in Top Artists. An event whose artist field contained only separators (e.g. ",") would previously be aggregated as a literal "," artist. These are now dropped server-side.
  • Artist images load on YT Music browse rows. The lightweight artist-image fetch now passes the service defaults blob when the item carries one, so services that require it (YT Music) return the real artist photo instead of always falling back to album art.

Internal

  • Extracted a shared splitArtists() helper into renderer/src/lib/itemHelpers.ts, replacing duplicated comma-splitting logic in LeaderboardPanel, AlbumPanel, and useResolveAndOpen.

Verification

  • npm run typecheck clean (main + renderer), tsc --noEmit clean in server/
  • npm run test:run: 442/442 tests passing across 35 files

🤖 Generated with Claude Code

- resolveAndOpen: split multi-artist hint so album resolution can match
  candidates listing artists individually (was a silent no-op)
- aggregate: drop separator-only artist strings instead of creating a
  phantom artist row
- useArtistImage: accept defaults blob and pass it from ArtistMediaCard
  so YT Music artist images can load
- extract shared splitArtists() helper into itemHelpers

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 71.05% 1947 / 2740
🔵 Statements 67.92% 2238 / 3295
🔵 Functions 62.39% 614 / 984
🔵 Branches 61.89% 2082 / 3364
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
renderer/src/components/CardRow.tsx 71.42% 63.63% 71.42% 69.23% 17-32
renderer/src/components/LeaderboardPanel.tsx 85.52% 86.71% 81.81% 88.57% 16, 43, 66, 110-118, 206, 252, 276-277, 427-439, 462
renderer/src/components/album/AlbumPanel.tsx 84.04% 86.29% 80% 89.7% 50, 90-95, 106, 156, 213
renderer/src/hooks/useArtistBrowse.ts 59.09% 42.1% 63.63% 56.75% 54-71, 82, 111-133
renderer/src/hooks/useResolveAndOpen.ts 88.57% 69.44% 100% 96.42% 28, 30, 39, 60
renderer/src/lib/itemHelpers.ts 95.34% 81.25% 90.9% 98.23% 26, 185, 191, 193, 333, 337
Generated in workflow #141 for commit ee06835 by the Vitest Coverage Report Action

@JoePittsy JoePittsy merged commit 20aa9d0 into main Jun 12, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant