"You might like" Android client row (#790 client slice) #92

Merged
bvandeusen merged 2 commits from dev into main 2026-06-11 22:36:22 -04:00
Owner

Surfaces the server's you_might_like_albums / you_might_like_artists Home
sections (shipped server-side in v2026.06.11) on the Android Home screen,
mirroring the Rediscover block.

  • HomeIndexWire: two new slices, defaulted to emptyList() (safe decode
    against older servers).
  • HomeRepository: two section constants + observeYouMightLikeAlbums/Artists
    (reusing the existing album/artist hydration helpers); refreshIndex replaces
    both sections and pre-warms their artists. No Room schema change.
  • HomeScreen: HomeSections +2 fields; the ViewModel combine is split to
    respect the coroutines 5-arity limit; a YouMightLikeBlock renders an
    albums-then-artists block below Rediscover, with a "still learning your taste"
    empty state for the cold-start/gated case.

CI-green on dev (ktlint + detekt + unit tests). Completes #790 end-to-end
(server + client). Merging to main produces the signed APK / debug artifact.

🤖 Generated with Claude Code

Surfaces the server's `you_might_like_albums` / `you_might_like_artists` Home sections (shipped server-side in v2026.06.11) on the Android Home screen, mirroring the Rediscover block. - `HomeIndexWire`: two new slices, defaulted to `emptyList()` (safe decode against older servers). - `HomeRepository`: two section constants + `observeYouMightLikeAlbums/Artists` (reusing the existing album/artist hydration helpers); `refreshIndex` replaces both sections and pre-warms their artists. No Room schema change. - `HomeScreen`: `HomeSections` +2 fields; the ViewModel `combine` is split to respect the coroutines 5-arity limit; a `YouMightLikeBlock` renders an albums-then-artists block below Rediscover, with a "still learning your taste" empty state for the cold-start/gated case. CI-green on dev (ktlint + detekt + unit tests). Completes #790 end-to-end (server + client). Merging to main produces the signed APK / debug artifact. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
bvandeusen added 2 commits 2026-06-11 22:36:16 -04:00
feat(android): "You might like" Home rows (#790 client slice)
android / Build + lint + test (push) Failing after 1m17s
abc225e12a
Surface the server's you_might_like_albums / you_might_like_artists sections
(daily-built, cold-start gated, taste-aware) on the Home screen, mirroring the
Rediscover block.

- HomeIndexWire: two new slices, defaulted to emptyList() so decode is safe
  against older servers that don't emit them (Class-B discipline).
- HomeRepository: two section constants + observeYouMightLikeAlbums/Artists
  (reusing the existing album/artist hydration helpers) + refreshIndex now
  replaces both sections and pre-warms their artists. No Room schema change —
  cached_home_index stores the section string verbatim.
- HomeScreen: HomeSections gains the two fields (+ isAllEmpty); the ViewModel
  combine is split (core 5 → +2 you-might-like → +playlists) to stay within the
  coroutines 5-arity limit; a YouMightLikeBlock + youMightLikeSection render an
  albums-then-artists block below Rediscover, with a "still learning your taste"
  empty state for the cold-start/gated case.

Server side already shipped in v2026.06.11; this makes it visible on device.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(android): suppress detekt TooManyFunctions on HomeRepository
android / Build + lint + test (push) Successful in 3m32s
c2f9bbaff4
The two new you-might-like observe accessors pushed HomeRepository from 11 to
13 functions, tripping detekt's per-class default. It's accessor density (one
observe method per Home row) on a thin pass-through repository, not complexity —
suppressed with a one-line rationale per the project convention. ktlint already
passed; this was the only detekt finding.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
bvandeusen merged commit a62f07bd3a into main 2026-06-11 22:36:22 -04:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/minstrel#92