soulsync/webui/static
BoulderBadgeDad 9c91ba29bf Discover: listening-driven recommendations + mix (#913), Fresh Tape fix
#913 was silently producing 0 recs: similar_artists.source_artist_id is a SOURCE id (Spotify/etc.), but the scan keyed id->name by internal artists.id (resolved nothing), and the consensus ranker was fed the name-collapsed get_top_similar_artists (consensus could never fire). Fixed + elevated:

- id->name keyed by source-id columns; raw per-seed edges (real consensus); similarity_rank threaded into the score; recency-weighted seeds (recent plays boost lifetime favs)
- new 'Based On Your Listening' artist row (/api/discover/listening-recommendations) with 'because you listen to X' explanations
- new 'Your Listening Mix' track row: each rec's top tracks via a guarded, name-resolved Spotify/Deezer fetch (falls back to the discovery pool), stored as full render dicts so the row can't shrink on pool rotation
- pure tested core: similarity_from_rank, build_recency_weighted_seeds, to_mix_track, names_match (+ rank-aware grouping)

Fresh Tape (5-10 tracks): future-dated albums sorted to the top of get_discovery_recent_albums and ate the 50-album budget before the is_future_release skip ran. Add exclude_future_years + fetch a generous budget; downstream caps unchanged. Regression tested.

Also drop the per-track block 'X' from the compact playlist rows (wrong spot). Plan/audit in DISCOVER_BEST_IN_CLASS_PLAN.md.
2026-06-25 10:15:20 -07:00
..
docs
vendor
amazon.svg
api-monitor.js Watchlist: per-artist 'auto-download' toggle (follow-only) — off = discover/surface releases but skip the wishlist add; default on 2026-06-13 08:07:20 -07:00
artists.png
audiodb.png
auto-sync.js Mirrored playlists: custom name alias (overrides display + sync name, survives upstream refresh) — card rename button like the source-ref editor 2026-06-13 00:23:56 -07:00
automation.png
basic-search-v2.css
beatport-ui.js
blocklist.js
core.js Remove old auto-acting Quality Scanner tool (replaced by Quality Upgrade Finder job) 2026-06-13 12:14:45 -07:00
dashboard.png
discover-section-controller.js
discover.js Discover: listening-driven recommendations + mix (#913), Fresh Tape fix 2026-06-25 10:15:20 -07:00
discover.png
docs-images-needed.md
docs.js #893: support M3U/M3U8 in playlist import-from-file 2026-06-21 19:43:59 -07:00
downloads.js merge: pull upstream/main (2.7.4) into feature/best-quality-search-mode 2026-06-19 16:54:51 +02:00
enrichment-manager.js
enrichment.js fix(repair-jobs): boolean settings saved as string 'true'/'false' by UI dropdown 2026-06-24 15:59:25 +02:00
explorer.png
favicon.png
help.png
helper.js Merge pull request #896 from nick2000713/feature/best-quality-search-mode 2026-06-24 20:27:38 -07:00
hydrabase.png
import.png
init.js perf(dashboard): auto-enable performance mode on weak hardware (device-scoped) 2026-06-22 15:12:25 -07:00
library.js #916: align missing-track title match with the Reorganize matcher 2026-06-23 15:58:36 -07:00
library.png
manifest.json
media-player.js
mobile.css
my-accounts.js
origin-history.js
pages-extra.js Merge pull request #896 from nick2000713/feature/best-quality-search-mode 2026-06-24 20:27:38 -07:00
particles.js perf(dashboard): cache particle glow sprites instead of per-frame gradients 2026-06-22 15:23:16 -07:00
placeholder-album.png
pwa-icon-192.png
pwa-icon-512.png
search.js
search.png
service-switch.js
settings.js feat(ui): add a Custom… option for manual lossy bitrate entry 2026-06-24 23:30:27 +02:00
settings.png
setup-wizard.css
setup-wizard.js
shared-helpers.js webui: sync organize-by-playlist toggles + stop dashboard poller 401-spam while locked 2026-06-12 13:28:24 -07:00
shell-bridge.js
stats-automations.js Music automations page: hide video-owned automations 2026-06-25 10:15:00 -07:00
style.css Merge pull request #896 from nick2000713/feature/best-quality-search-mode 2026-06-24 20:27:38 -07:00
sw.js
sync-lastfm.js
sync-listenbrainz.js
sync-services.js #867 UX: open Tidal discovery modal in 'discovering' phase so the empty/loading modal isn't interactable 2026-06-13 11:03:40 -07:00
sync-soulsync-discovery.js
sync-spotify.js
sync.png
track-detail.js
trans.png
trans2.png
watchlist-history.js
whisoul.png
wishlist-tools.js feat(quarantine): consolidate quarantine view into downloads page filter 2026-06-24 15:14:54 +02:00
worker-orbs.js