diff --git a/webui/index.html b/webui/index.html index 4652f7e6..3f8832d5 100644 --- a/webui/index.html +++ b/webui/index.html @@ -874,7 +874,12 @@ YouTube - + + Beatport diff --git a/webui/static/helper.js b/webui/static/helper.js index dcdc1eaa..25ed624b 100644 --- a/webui/static/helper.js +++ b/webui/static/helper.js @@ -3453,6 +3453,7 @@ const WHATS_NEW = { { title: 'Search Endpoints Lifted to core/search', desc: 'internal — moved /api/search and /api/enhanced-search/* logic into core/search/ (cache, sources, library_check, stream, basic, orchestrator). 612 fewer lines in web_server.py, 94 new tests. no behavior change.' }, { title: 'Automation Endpoints Lifted to core/automation', desc: 'internal — moved /api/automations/* CRUD + run + history routes, progress tracking helpers, and signal collection into core/automation/ (api, progress, signals). 383 fewer lines in web_server.py, 72 new tests. action handler registration stays put — those closures are tangled with feature implementations.' }, { title: 'Clean Up slskd Dedup Orphans After Import', desc: 'slskd appends "_" to a download when the destination file already exists (e.g. retried partials, the same track in multiple playlists). the canonical file imported fine but the timestamp-suffixed siblings sat in the downloads folder forever. now they get pruned right after each successful import.', page: 'downloads' }, + { title: 'Beatport Tab Hidden Temporarily', desc: 'beatport rolled out cloudflare turnstile on every public page, so the scraper that powered the beatport tab now hits a bot challenge instead of html. their official oauth api is locked behind partner registration that isn\'t open to the public. hid the tab on sync until we find a workaround — backend endpoints are still in code so revival is a one-line html change.', page: 'sync' }, ], '2.4.0': [ // --- April 26, 2026 — Search & Artists unification + reorganize queue ---