feat(lucky-mix): instant mix from your preferences

Lucky Mix targets ~50 tracks in one run: pick seeds from your most-played artists/albums and 4+ rated songs, add similar tracks, then fill the mix with random library picks, skipping anything you rated 1–2.
On start it trims the old “upcoming” tail so the queue does not show stale next tracks, starts playback on the first viable seed, routes to Now Playing, and can emit structured steps to the backend debug log.
This commit is contained in:
Maxim Isaev
2026-04-23 18:42:52 +03:00
parent 694567843f
commit ab5c8e0b48
24 changed files with 797 additions and 17 deletions
+13
View File
@@ -0,0 +1,13 @@
import { create } from 'zustand';
interface LuckyMixState {
isRolling: boolean;
start: () => void;
stop: () => void;
}
export const useLuckyMixStore = create<LuckyMixState>((set) => ({
isRolling: false,
start: () => set({ isRolling: true }),
stop: () => set({ isRolling: false }),
}));