Skip to content

Improve personalization for DailyMix and YourMix playlists#294

Merged
theovilardo merged 2 commits intomasterfrom
codex/improve-dailymix-and-yourmix-generation
Oct 24, 2025
Merged

Improve personalization for DailyMix and YourMix playlists#294
theovilardo merged 2 commits intomasterfrom
codex/improve-dailymix-and-yourmix-generation

Conversation

@theovilardo
Copy link
Copy Markdown
Owner

Summary

  • replace the DailyMix scoring storage with rich engagement stats that capture play count, duration, recency, and legacy data
  • rank songs using play history, favorites, artist/genre affinity, and novelty to build smarter DailyMix and YourMix lineups
  • expose the generated YourMix from the view model so the home screen can show curated selections instead of simple fallbacks

Testing

  • ./gradlew :app:compileDebugKotlin (fails: SDK location not found in CI environment)

https://chatgpt.com/codex/tasks/task_e_68fafc689e10832fb9f8ad94290554ba

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +38 to +41
val legacyType = object : com.google.gson.reflect.TypeToken<MutableMap<String, Int>>() {}.type
val legacyMap: MutableMap<String, Int> = gson.fromJson(jsonText, legacyType) ?: mutableMapOf()
legacyMap.mapValuesTo(mutableMapOf()) { (playCount) ->
SongEngagementStats(playCount = playCount)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P0 Badge Fix legacy engagement migration lambda type

When converting legacy song_scores.json data, the lambda passed to legacyMap.mapValuesTo takes a Map.Entry but assigns it directly to SongEngagementStats(playCount = playCount). Because playCount here is the entire entry, not the integer value, this code will not compile (MutableMap.MutableEntry<String, Int> cannot be assigned to an Int). Destructure the entry ({ (_, count) -> … }) or use it.value so the builder receives the actual play count.

Useful? React with 👍 / 👎.

@theovilardo theovilardo merged commit d1bda56 into master Oct 24, 2025
@lostf1sh lostf1sh deleted the codex/improve-dailymix-and-yourmix-generation branch January 16, 2026 20:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant