Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

library: the same album in two sources merges into one album

Aperta
#1,069 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
22/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
kotlin, swift
Ambito
data, mobile

Direzione di ricerca

Start in AlbumIdentityRule.resolve in android/domain/src/commonMain/.../model/AlbumIdentity.kt (lines 75-108), where the mixed-source group falls back to the name key. The key shape change also needs the stored-key migration in AlbumKeyRekey.kt, and the album-key consumers listed in the issue are affected. Done means two sources with the same album name yield separate albums, while discs spread across folders within one source still merge as #637 requires. The design of the optional preferred-source setting is not settled, so it should be scoped separately.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug impact:U2 next-release P3 reach:R2 size:M

The same album in two sources merges into one album. Bicep's "Bicep" (2017) is in Emby and in the local library (Documents), and iOS shows one album with 24 songs (12 + 12). It should show two distinct albums, each with its own source, and optionally offer a "hide duplicates" setting that prefers one source (local over stream).

Cause: AlbumIdentityRule.resolve (android/domain/src/commonMain/.../model/AlbumIdentity.kt:75-108). It splits an album by source only when every song carries an MB release id or server album id (:99-103). The local files have neither, so the mixed group falls back to the name key (album + album artist) and merges. This is shared KMP code, so Android behaves the same (unverified on device). Merging by name is deliberate from #637, e.g. discs spread across folders, so the fix has to keep that within a source.

Blast radius: everything keyed on AlbumGroupKey:

  • album song counts, artist album counts and album-artist pages
  • album sort and headers in Songs
  • suggestions (recently added, completed)
  • play history, PlayContext.Album and pinned collections
  • routes, the CarPlay offline set and Android Downloads

Changing the key shape needs a stored-key rekey (AlbumKeyRekey.kt). Queue, shuffle and playlists are per song id, so they are unaffected.

Sketch: put the media provider in the name-rule bucket in resolve, so each source groups by name separately, plus the rekey migration. "Hide duplicates" is a separate, larger preferred-source rule on top; check how Symfonium and Plexamp present this.

Seen on iOS, 2026-10-16, while testing #1064 with the same albums copied locally and streamed from Emby.

Impact U2 (wrong song counts and mixed sources in album and artist views) · Reach R2 (anyone with an album in two sources; owner device repro) · Implemented: partly (source-scoped identity only for fully id-tagged albums) · Design fit: tension (#637 merges by name on purpose; change once in shared code for parity) · Complexity: M

Lingua principale
Kotlin
Stelle
231
Fork
28
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di timusus/Shuttle2

Tutte le issue di timusus/Shuttle2

Issue simili

Altre issue su Kotlin

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.