soulsync/core/personalized/generators
BoulderBadgeDad 88ff47e115 SoulSync Discovery sync tab: list all kinds + Listening Mix generator
The tab reads the v2 personalized framework (personalized_playlists), but the Discover page generates through the legacy path and nothing seeded those v2 rows -> the tab was empty. Fixes:

- New 'listening_mix' v2 generator: hands the scan's stored 'listening_recs_tracks_full' tracks to the personalized manager so the Listening Mix can mirror + Auto-Sync like every other kind (no pool hydration; can't shrink on rotation). Registered + tested.
- Sync tab now lists every registered SINGLETON kind (Listening Mix, Fresh Tape, Archives, Hidden Gems, Discovery Shuffle, Popular Picks) as a card, not just already-generated rows. Clicking 'Refresh & Mirror' runs the generator + mirrors. Variant kinds (decade/genre/daily) need a picker, so they're not auto-listed; existing variant rows still show.

Additive: new generator + frontend merge, no backend endpoint changes. End-to-end verified (refresh -> generate -> persist -> syncable tracks).
2026-06-25 11:38:41 -07:00
..
__init__.py SoulSync Discovery sync tab: list all kinds + Listening Mix generator 2026-06-25 11:38:41 -07:00
_common.py Personalized playlists (2/N): all 8 generators wired through manager 2026-05-15 17:02:08 -07:00
archives.py Personalized playlists (2/N): all 8 generators wired through manager 2026-05-15 17:02:08 -07:00
daily_mix.py Personalized playlists (2/N): all 8 generators wired through manager 2026-05-15 17:02:08 -07:00
discovery_shuffle.py Personalized playlists (2/N): all 8 generators wired through manager 2026-05-15 17:02:08 -07:00
fresh_tape.py Personalized playlists (2/N): all 8 generators wired through manager 2026-05-15 17:02:08 -07:00
genre_playlist.py Personalized playlists (2/N): all 8 generators wired through manager 2026-05-15 17:02:08 -07:00
hidden_gems.py Personalized playlists (2/N): all 8 generators wired through manager 2026-05-15 17:02:08 -07:00
listening_mix.py SoulSync Discovery sync tab: list all kinds + Listening Mix generator 2026-06-25 11:38:41 -07:00
popular_picks.py Personalized playlists (2/N): all 8 generators wired through manager 2026-05-15 17:02:08 -07:00
seasonal_mix.py Personalized playlists: ruff B905 — explicit strict= on zip() 2026-05-15 17:57:44 -07:00
time_machine.py Personalized playlists (2/N): all 8 generators wired through manager 2026-05-15 17:02:08 -07:00