Broque Thomas
4a73ef6d24
Optimize enhanced view performance with event delegation and scoped DOM queries
2026-03-14 18:36:05 -07:00
Broque Thomas
7db1545208
Optimize enhanced view performance with event delegation and scoped DOM queries
2026-03-14 18:00:20 -07:00
Broque Thomas
7e19e66ef3
Add quality enhance button to upgrade existing library tracks & Add iTunes fallback to Quality Enhance endpoint for full metadata source parity
2026-03-14 17:09:08 -07:00
Broque Thomas
3bbbfb125e
Add $albumtype template variable with smart EP/Single/Album detection
2026-03-14 12:40:25 -07:00
Broque Thomas
761052145f
Add select all checkbox to watchlist modal for bulk removal
2026-03-14 12:25:58 -07:00
Broque Thomas
fc90ed68a3
Fix debug info copy button failing over HTTP in Docker
2026-03-14 11:37:44 -07:00
Broque Thomas
fead6db379
Fix docs sidebar navigation scroll targeting with lazy-loaded images
2026-03-14 11:16:26 -07:00
Broque Thomas
719980cf5a
Hide sync sidebar by default, only show during active sync
2026-03-14 09:56:48 -07:00
Broque Thomas
945f86c643
Library Repair Worker: multi-job background maintenance daemon with 10 jobs, findings system, and management modal
2026-03-14 09:09:18 -07:00
Broque Thomas
6de3ab7cef
Add universal metadata cache for Spotify & iTunes API responses with browsable dashboard tool
2026-03-14 01:26:45 -07:00
Broque Thomas
c54e52e18d
Add Spotify Library discovery section, instrumental filter, custom exclusion terms & album download modal fixes
2026-03-14 00:21:44 -07:00
Broque Thomas
a5e72cff05
Add instrumental filter & custom exclusion terms to watchlist content filters
2026-03-13 23:09:12 -07:00
Broque Thomas
32f1cc946c
Improve watchlist cross-provider matching accuracy and add manual artist linking UI
2026-03-13 22:28:13 -07:00
Broque Thomas
0e89155c15
Add watchlist settings gear button to artist detail and artist card pages
2026-03-13 22:07:54 -07:00
Broque Thomas
e1a5bf678a
Add library issue reporting system with actionable detail modal
2026-03-13 21:14:57 -07:00
Broque Thomas
57a8bdd107
Add album file reorganization to Enhanced Library Manager
2026-03-13 18:43:54 -07:00
Broque Thomas
d4eadef374
Add interactive REST API docs with full endpoint tester and complete metadata serialization
2026-03-13 17:45:01 -07:00
Broque Thomas
4dfefc70df
Polish settings page styling — premium header, toggle switches, refined inputs
2026-03-13 16:29:02 -07:00
Broque Thomas
f9bdabc0e4
Add particle background toggle & optimize accent color caching
2026-03-13 16:05:22 -07:00
Broque Thomas
2c6f2adce1
Redesign watchlist modal with polished cards, gradient overlays, and rate limit modal
2026-03-13 15:55:26 -07:00
Broque Thomas
a557074d3c
Add Spotify rate limit modal with live countdown and ban duration escalation
2026-03-13 15:36:24 -07:00
Broque Thomas
daa55d208e
fix issue where album info was not displayed for discover items.
2026-03-13 14:16:20 -07:00
Broque Thomas
02c1da76ba
update recent updates and fix spotify worker rate limit button
2026-03-13 14:08:30 -07:00
Broque Thomas
7da7f3b112
Cache similar artist metadata at scan time to eliminate redundant Spotify API calls
2026-03-13 13:35:54 -07:00
Broque Thomas
5ee9390c05
Add album art to discovery pool by extracting image URLs from match data
2026-03-13 12:40:30 -07:00
Broque Thomas
55186c6a51
Add Deezer playlist sync tab with discovery, fix modal, and cache persistence
2026-03-13 12:29:49 -07:00
Broque Thomas
f9d80606e3
Expand debug info with library stats, service status, config, and configurable log output
2026-03-13 08:47:04 -07:00
Broque Thomas
fc05412a13
update docs page
2026-03-13 08:35:28 -07:00
Broque Thomas
470b8dca7e
fix spotify active animation color
2026-03-12 21:41:01 -07:00
Broque Thomas
7d092e8b53
css fixes
2026-03-12 17:30:14 -07:00
Broque Thomas
e8df863205
enhanced library write all modal and confirmation dialog
2026-03-12 16:57:38 -07:00
Broque Thomas
6c4de45b32
fix acoustID match issue and css changes
2026-03-12 16:43:22 -07:00
Broque Thomas
ded906bef4
Fix false positive track matching & tag writing visibility for library files
2026-03-12 16:08:44 -07:00
Broque Thomas
a3bf858558
Seamless Spotify rate limit UX — replace intrusive modal with ambient indicators
2026-03-12 12:45:59 -07:00
Broque Thomas
9557e6bdd3
Fix sync stuck at 80% — serialize datetime in SyncResult for WebSocket emit
2026-03-12 08:52:08 -07:00
Broque Thomas
49d1cb595f
Update Help & Docs — add Qobuz everywhere, Tidal/Qobuz enrichment workers, fix Metadata Updater descriptions
2026-03-12 08:39:27 -07:00
Broque Thomas
a8de75ce26
Fix watchlist badge — source-aware ID selection and hide when no usable ID
2026-03-11 23:08:36 -07:00
Broque Thomas
d401dc8af1
Two-column badge layout for artist cards with 7+ service matches
2026-03-11 23:01:47 -07:00
Broque Thomas
691e026208
Fix Tidal API search — correct endpoint casing, JSON:API Accept header, and best-match selection
2026-03-11 22:51:51 -07:00
Broque Thomas
ecfa30c918
Fix Tidal V2 search endpoint, duration parsing, and library badge display
2026-03-11 22:08:25 -07:00
Broque Thomas
cc35864e7d
Tidal & Qobuz Enrichment Workers - Bug Fixes & Rate Limiting
2026-03-11 21:49:31 -07:00
Broque Thomas
35d6068f99
fix worker logos
2026-03-11 21:39:25 -07:00
Broque Thomas
ac2c710a1e
Tidal & Qobuz Background Enrichment Workers
2026-03-11 21:26:20 -07:00
Broque Thomas
589d5bed79
settings page changes
2026-03-11 19:09:52 -07:00
Broque Thomas
e748434500
arrange settings page
2026-03-11 19:05:42 -07:00
Broque Thomas
f41db1bb27
reorganize settings page
2026-03-11 18:53:57 -07:00
Broque Thomas
0d547255d9
Move Soulseek settings to Download Source section & conditional source visibility
2026-03-11 18:33:11 -07:00
Broque Thomas
70c32aa640
Hybrid Mode Redesign
2026-03-11 18:10:35 -07:00
Broque Thomas
fb04d0f4bc
Full qobuz support
2026-03-11 17:43:27 -07:00
Broque Thomas
f4d8280642
css & error notification fixes
2026-03-11 14:56:45 -07:00
Broque Thomas
636af1f2f8
Fix docs scroll spy jumping to wrong section due to duplicate element ID
2026-03-11 10:48:18 -07:00
Broque Thomas
0aa8950436
fix build a playlist functionality and update the ui
2026-03-11 07:52:58 -07:00
Broque Thomas
e5450d9f89
Help Docs Overhaul & Settings Fixes
2026-03-10 23:50:21 -07:00
Broque Thomas
c06fd044a1
Profile Permissions & Page Access Control
2026-03-10 23:23:43 -07:00
Broque Thomas
a159ac3fd6
Fix activity feed blinking and show live relative timestamps
2026-03-10 20:34:57 -07:00
Broque Thomas
9bee72503f
Unify dashboard button styles and enhance activity log
2026-03-10 20:24:33 -07:00
Broque Thomas
44f4e1ccbf
Fix artists page particle lag and bright flash on page transitions
2026-03-10 19:51:15 -07:00
Broque Thomas
f91626ef18
Per-Page Particle Animations
2026-03-10 19:46:31 -07:00
Broque Thomas
40521fa499
Sidebar audio visualizer with 5 reactive styles and settings toggle
2026-03-10 16:56:47 -07:00
Broque Thomas
a682f814f7
Sidebar SVG icons, larger page header icons, and accent-colored nav
2026-03-10 16:18:07 -07:00
Broque Thomas
6b1d069be0
Add ambient accent-colored aura animation to sidebar
2026-03-10 16:01:09 -07:00
Broque Thomas
bb0599c585
update docs
2026-03-10 15:46:03 -07:00
Broque Thomas
cc85188d52
Add media server setup, processing settings, text import, automation history, and streaming details
2026-03-10 15:35:18 -07:00
Broque Thomas
9a1c3b4124
Fix watchlist badge positioning and mobile card sizing
2026-03-10 15:24:33 -07:00
Broque Thomas
bc41afe83b
Fill content gaps, fix sidebar scroll spy bug, add LRC lyrics
2026-03-10 15:10:15 -07:00
Broque Thomas
1b0fca9009
Service Badges, Page Headers, Docs Page, and Bug Fixe
2026-03-10 14:47:11 -07:00
Broque Thomas
51b5469e85
Add page icons & gradient shimmer to all page headers
2026-03-10 13:12:50 -07:00
Broque Thomas
927fe6338e
Fix Spotify badge icon & compact card badge layout for overflow
2026-03-10 12:54:18 -07:00
Broque Thomas
87d567151e
iTunes storefront fallback with configurable country setting
2026-03-10 12:13:21 -07:00
Broque Thomas
e8ddbe3709
Reset all Genius matches to fix blind-fallback search bug & fix css issues
2026-03-10 10:57:50 -07:00
Broque Thomas
c96159d0fc
fix download modal progress bar height. fix text in wishlist/watchlist buttons appearing outside container
2026-03-10 10:51:36 -07:00
Broque Thomas
f26f6f8266
Last.fm & Genius full worker parity, clickable service badges, and playlist folder race condition fix
2026-03-10 10:35:55 -07:00
Broque Thomas
92ba36a9ba
Add no-auth state to Last.fm and Genius dashboard buttons with greyed-out UI and settings guidance
2026-03-10 09:20:16 -07:00
Broque Thomas
dc7140c459
Add Last.fm and Genius to on-demand enrichment, settings reload, and enrich dropdown parity
2026-03-10 09:12:36 -07:00
Broque Thomas
f8d23ec37c
Add Last.fm and Genius API clients with settings integration
2026-03-09 22:35:10 -07:00
Broque Thomas
1bd66cf5b4
fix issue where artists would appear as objects.
2026-03-09 22:11:00 -07:00
Broque Thomas
e71ae7a5f7
Import file tab on sync page to create mirrored playlists from CSV/TXT files
2026-03-09 22:03:13 -07:00
Broque Thomas
aa93458ed3
Configurable ListenBrainz API endpoint for self-hosted instances
2026-03-09 20:52:33 -07:00
Broque Thomas
bbccd3524f
Explicit content filter with configurable toggle to skip explicit tracks during downloads
2026-03-09 20:39:40 -07:00
Broque Thomas
1b42b88c31
css changes
2026-03-09 18:15:42 -07:00
Broque Thomas
b9d5d4e277
update page icons
2026-03-09 18:06:44 -07:00
Broque Thomas
6f5ef73e86
add static images
2026-03-09 17:35:46 -07:00
Broque Thomas
d1890c768c
cleanup staging folder same as download folder
2026-03-09 17:10:35 -07:00
Broque Thomas
07a79e7af6
Full Cleanup automation: combined housekeeping sweep for quarantine, downloads, staging, and search history
2026-03-09 16:39:29 -07:00
Broque Thomas
eac97a6c2b
Smart Spotify rate limit detection with global ban, auto-suppression, and frontend modal
2026-03-09 16:05:33 -07:00
Broque Thomas
cc4502e5f8
Add server sync option to enhanced library write-tags flow
2026-03-09 14:17:56 -07:00
Broque Thomas
7411bd1eab
Clarify update notification for Docker users that image will follow
2026-03-09 13:15:03 -07:00
Broque Thomas
b3d607752b
Add version tracking to database backup manager & Fix radio mode next track closing modal and losing playback state
2026-03-09 13:10:25 -07:00
Broque Thomas
ea1441d09d
"Write Tags to File" in the Enhanced Library Manager
2026-03-09 11:17:01 -07:00
Broque Thomas
5f58432ca4
Redesigned media player with expanded Now Playing modal and smart radio
2026-03-09 10:13:42 -07:00
Broque Thomas
5b79ca1e88
redesign the media player in sidebar
2026-03-09 08:02:05 -07:00
Broque Thomas
7c50f350c0
Add a library management interface to the artist detail page with inline metadata editing, per-service manual matching, bulk operations, and full track/album management.
2026-03-08 23:37:02 -07:00
Broque Thomas
5f94352b40
Add cancellation support to all discovery workers
2026-03-08 18:12:37 -07:00
Broque Thomas
41edb31e07
Replace sidebar donation dropdown with support modal
2026-03-08 17:33:20 -07:00
Broque Thomas
18b2766b01
Fix discovery fix button not working for mirrored playlists
2026-03-08 16:20:05 -07:00
Broque Thomas
5daa8c0596
Add rich stats to automation run history
2026-03-08 12:20:50 -07:00
Broque Thomas
f9e8c8dadd
Add themed confirm dialog modal replacing all native browser confirms
2026-03-08 11:16:11 -07:00
Broque Thomas
266d044797
Add Backup Manager dashboard tool card with list, download, restore & delete
2026-03-08 10:46:03 -07:00
Broque Thomas
2ef0c75a25
Fix sync completion not reaching UI after WebSocket reconnect
2026-03-07 22:53:15 -08:00
Broque Thomas
ddd7f2d9b5
Persist mirrored playlist discovery results & retry failed
2026-03-07 17:28:17 -08:00
Broque Thomas
e62f4b0203
update front end when discovery is running
2026-03-07 16:01:58 -08:00
Broque Thomas
e11ee8622e
Fix discovery modal persistence, artist dict handling, and rate limiter scope
2026-03-07 13:05:49 -08:00
Broque Thomas
05b5c376e9
update automation status ever 1s
2026-03-07 11:49:15 -08:00
Broque Thomas
d97b3d1846
Fix automation timezone bug
2026-03-07 11:42:44 -08:00
Broque Thomas
918dbad88f
reorganize automations page.
2026-03-07 11:27:53 -08:00
Broque Thomas
b34e348937
keep a history of automation runs
2026-03-07 09:39:08 -08:00
Broque Thomas
b90c270d54
Add Download Now button to wishlist modal and library page download bubbles
2026-03-07 00:11:15 -08:00
Broque Thomas
41e895d254
Batch watchlist status checks to eliminate rate limit errors
2026-03-06 23:41:01 -08:00
Broque Thomas
5f14f027d6
glow effect on active automations
2026-03-06 21:09:24 -08:00
Broque Thomas
156c37d907
Replace hardcoded post-download chain with system automations
2026-03-06 19:48:48 -08:00
Broque Thomas
8b6a2c0adc
allow multiple notification calls per automation as well as a new signal fire utility
2026-03-06 18:10:15 -08:00
Broque Thomas
dd5f2f07e9
detail modal for each action and trgiger
2026-03-06 16:43:24 -08:00
Broque Thomas
7647ac22ed
Add Discovery Pool dashboard tool card and revamp modal with premium category-card design
2026-03-06 11:59:45 -08:00
Broque Thomas
d264ec70f3
Add sync match cache and fix discovery clear to purge cache
2026-03-06 09:41:44 -08:00
Broque Thomas
7485ba8aa2
fix issue with tracking auto sync playlist node
2026-03-06 08:01:17 -08:00
Broque Thomas
9f416475e2
Live automation progress tracking with real-time output panels
2026-03-05 20:39:26 -08:00
Broque Thomas
d57b48a62a
Playlist discovery pipeline with official metadata enforcement for automated sync
2026-03-05 18:32:18 -08:00
Broque Thomas
4bd3e776bd
css changes
2026-03-05 16:57:14 -08:00
Broque Thomas
f99f873d60
Replace hardcoded wishlist/watchlist timers with system automations + add Pushbullet & Telegram notifications
2026-03-05 16:50:09 -08:00
Broque Thomas
da707dcf0a
Full automation engine expansion with scheduling, triggers, actions, and UI polish
2026-03-05 15:13:32 -08:00
Broque Thomas
75f9b7364a
User configurable youtube rate limiting and optional cookies for bot detection
2026-03-05 10:50:06 -08:00
Broque Thomas
60f93d5858
hydrabase changes
2026-03-04 19:48:12 -08:00
Broque Thomas
b30e1f60bd
Add Mirrored Playlists — persistent cross-service playlist archive
...
Automatically mirrors every parsed playlist (Spotify, Tidal, YouTube, Beatport) to a local database so they're always accessible — even if a service subscription lapses or the browser closes.
- New "Mirrored" tab on the Sync page with source-branded cards showing discovery/download status
- Auto-mirrors on successful parse (upsert — re-parsing updates the existing mirror, no duplicates)
- Click any mirrored playlist to browse its full track list, then run it through the discovery pipeline
- Cards dynamically reflect live state: Discovering → Discovered → Downloading → Downloaded
- Download modal rehydrates after page refresh — click a "Downloading..." card to resume viewing progress
- All phase transitions (start, complete, cancel, error, modal close) keep card and backend state in sync
- Profile-scoped via profile_id, consistent with other features
2026-03-04 18:27:18 -08:00
Broque Thomas
b2fa222228
fix hydrabse album.tracks
2026-03-04 15:12:03 -08:00
Broque Thomas
6bbd52fda7
update notification
2026-03-04 15:01:54 -08:00
Broque Thomas
114af496c7
Track version
2026-03-04 11:32:40 -08:00
Broque Thomas
2d6c55e294
Fix chromaprint crash on surround audio and Spotify worker status display
2026-03-04 11:00:34 -08:00
Broque Thomas
4fee005dee
Add multi-profile support with Netflix-style profile picker
...
Allow multiple users to share a single SoulSync instance with isolated personal data. Each profile gets its own watchlist, wishlist, discovery pool, similar artists, and bubble snapshots — while sharing the same music library, database, and service credentials.
- Netflix-style profile picker on startup when multiple profiles exist
- Optional PIN protection per profile; admin PIN required when >1 profiles
- Admin-only profile management (create, edit, rename, delete)
- Profile avatar images via URL with colored-initial fallback
- Zero-downtime SQLite migration — all existing data maps to auto-created
admin profile
- Single-user installs see no changes — profile system is invisible until
a second profile is created
- WebSocket count emitters scoped to profile rooms (watchlist/wishlist)
- Background scanners (watchlist, wishlist, discovery) iterate all profiles
2026-03-04 10:46:08 -08:00
Broque Thomas
84de4ad16b
Redesign watchlist modal with enriched artist detail view
2026-03-03 20:26:21 -08:00
Broque Thomas
d06b7e5a25
Update style.css
2026-03-03 19:00:50 -08:00
Broque Thomas
0f428dc45c
Add WebSocket real-time updates with automatic HTTP polling fallback
...
Migrates 38 HTTP polling loops to WebSocket push events across 6 phases: service status, dashboard stats, enrichment workers, tool progress, sync/discovery progress, and scan status. All original HTTP polling is preserved as automatic fallback — if WebSocket is unavailable or disconnects, the app seamlessly reverts to its previous behavior. Includes 162 tests verifying event delivery, data shape, and HTTP parity. Also fixes a copy-paste bug in Beatport sync error cleanup.
2026-03-03 18:26:29 -08:00
Broque Thomas
53d841c3dc
Update style.css
2026-03-03 12:43:02 -08:00
Broque Thomas
d9aa8303a7
Add SoulSync REST API (v1) with API key authentication
...
Adds a full public REST API at /api/v1/ with 32 endpoints covering library, search, downloads, wishlist, watchlist, playlists, system status, and settings. Includes API key authentication (Bearer token), per-endpoint rate limiting, and consistent JSON response format. API keys can be generated and managed from the Settings page. No changes to existing functionality — the API delegates to the same backend services the web UI uses.
2026-03-03 09:49:00 -08:00
Broque Thomas
df33adf6a7
include 'add to watchlist' button to each artist in library.
2026-03-02 10:04:10 -08:00
Broque Thomas
b558dff138
add all recommended to watchlist.
2026-03-02 09:24:37 -08:00
Broque Thomas
1f73ba4f94
view recommended artists.
2026-03-02 09:12:35 -08:00
Broque Thomas
8f2dd66aee
add a 'watch all' button on hero slider to quickly add all artists in slider.
2026-03-02 08:40:22 -08:00
Broque Thomas
c279f2e4fa
Design retag layout
2026-03-01 22:52:27 -08:00
Broque Thomas
3dad2eae38
watchlist redesign
2026-03-01 20:35:49 -08:00
Broque Thomas
046233817d
Update style.css
2026-03-01 19:47:56 -08:00
Broque Thomas
6d3f43a385
Update style.css
2026-03-01 19:30:50 -08:00
Broque Thomas
71fe5b83eb
css changes
2026-03-01 15:34:51 -08:00
Broque Thomas
4fba18b25e
Feat: Custom accent colors.
2026-03-01 15:29:37 -08:00
Broque Thomas
1964659c8b
css changes
2026-03-01 14:55:45 -08:00
Broque Thomas
1aa6cdc9b6
Rebuild the import feature and move it to its own page.
2026-03-01 14:18:55 -08:00
Broque Thomas
c2119d4ecf
Update style.css
2026-03-01 11:16:47 -08:00
Broque Thomas
afa495756f
Version 1.7 update
2026-02-28 21:58:13 -08:00
Broque Thomas
acfc26a4bd
Add Tidal as a download source with full pipeline integration
...
Adds Tidal as a third download source alongside Soulseek and YouTube. Uses the tidalapi library with device-flow authentication to search and download tracks in configurable quality (Low/High/Lossless/HiRes) with automatic fallback. Integrates into the download orchestrator for all modes (Tidal Only, Hybrid with fallback chain), the transfer monitor, post-processing pipeline, and file finder. Frontend includes download settings with quality selector, device auth flow, and dynamic sidebar/dashboard labels that reflect the active download source. No breaking changes for existing users.
2026-02-28 21:47:19 -08:00
Broque Thomas
49c769ff5c
Fix Hydrabase endpoint gaps, M3U default, and soul_id mapping
...
Filled all missing Hydrabase fallthrough gates across 6 endpoints (artist album tracks, iTunes album, discover album, Spotify track, both similar artists), added track_number/disc_number to Track dataclass, fixed get_album_tracks to send soul_id instead of text query, mapped soul_id field from Hydrabase responses across all search methods, updated 7 frontend call sites to pass album name/artist params, and fixed M3U export defaulting to enabled when users never turned it on.
2026-02-28 18:25:55 -08:00
Broque Thomas
698b1fa4f3
clear current downloads
2026-02-27 11:18:13 -08:00