library: the same album in two sources merges into one album
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 22/100
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.Albumand 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
- Ngôn ngữ chính
- Kotlin
- Star
- 231
- Fork
- 28
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của timusus/Shuttle2
-
support/scripts/asc: S2 bundle id resolves to the Podcasts app (bundleId filter is a prefix match)Đang mởbug next-release
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
bug design impact:U1 later P3 reach:R2 size:S
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
enhancement impact:U1 later P3 reach:R2 size:S
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
impact:U1 owner reach:R1 size:S
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
idea
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
Tất cả issue của timusus/Shuttle2
Issue tương tự
-
[Submission] 悠悠有品Đang mởsubmit-adaption submit-adaption-pre
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 75/100
BetterAndroid/android-notification-icon-project#763 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
simplex-chat/simplex-chat#7755 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
afk-ok area:data-quality importer size:S
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
enorm-labs/event-junkie#3586 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
scarif-labs/horus#61 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 87/100
damontecres/Wholphin#2093 ·
Maintainer thường phản hồi trong vòng 1 ngày