Broque Thomas
f08550140f
Add whistle logo to maintenance modal header & harden fix handlers
...
- Add whisoul.png to modal header with subtitle text and gradient background
- Responsive: smaller logo on mobile, hide subtitle
- Share _resolve_file_path in repair_worker for cross-environment path compat
- Use path resolution in orphan and duplicate file deletion
- Guard directory cleanup against removing the transfer folder itself
- Restore correct button label text on fix error recovery
2026-03-15 13:25:40 -07:00
Broque Thomas
0594673cad
Polish finding detail renderers with richer visuals
...
- Cover art findings: show artwork image thumbnail preview
- Duplicate findings: KEEP/REMOVE badges highlighting best quality copy
- Incomplete album: completion progress bar with percentage
- Fake lossless: spectral analysis bar comparing detected vs expected cutoff
- Resolved findings: show descriptive action label (e.g. "Entry Removed")
- Fix operator precedence bug in fake lossless nyquist calculation
2026-03-15 13:00:44 -07:00
Broque Thomas
7a706e8c11
Add fix actions for maintenance findings (dead files, orphans, duplicates, etc.)
...
- New fix_finding() dispatcher in repair_worker with per-type handlers:
dead_file (remove DB entry), orphan_file (delete from disk),
track_number_mismatch (update DB), missing_cover_art (apply artwork URL),
metadata_gap (apply found fields), duplicate_tracks (keep best quality)
- New POST /api/repair/findings/<id>/fix endpoint
- Frontend: contextual fix buttons per finding type, bulk "Fix Selected"
- Removed path_mismatch from fixable types (dry-run preview only)
2026-03-15 12:51:18 -07:00
Broque Thomas
61ed4086e0
Redesign maintenance findings/history tabs with dashboard & fix path resolution bugs
...
- Add findings dashboard with summary stats and per-job clickable filter chips
- Redesign findings cards with expandable detail panels and per-type renderers
- Redesign history tab with status dots, stat pills, and full timestamps
- Fix dead file cleaner false positives by using suffix-based path resolution
- Fix orphan file detector false positives by matching via path suffixes
- Add help text modal for each repair job card
- Enlarge maintenance modal (1100px wide, 90vh tall)
2026-03-15 12:20:02 -07:00
Broque Thomas
4635ea895b
include a '?' to include more details for each job.
2026-03-15 11:19:09 -07:00
Broque Thomas
dab94ce65d
update soulsync repair worker with new jobs
2026-03-15 10:18:50 -07:00
Broque Thomas
cae2bd0c62
Add granular post-processing toggles for metadata services, cover art, and lyrics
2026-03-14 22:45:50 -07:00
Broque Thomas
8f0b9518bc
Add per-profile ListenBrainz support with personal settings modal
2026-03-14 20:12:19 -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
761052145f
Add select all checkbox to watchlist modal for bulk removal
2026-03-14 12:25:58 -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
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
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
d401dc8af1
Two-column badge layout for artist cards with 7+ service matches
2026-03-11 23:01:47 -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
f4d8280642
css & error notification fixes
2026-03-11 14:56:45 -07:00
Broque Thomas
0aa8950436
fix build a playlist functionality and update the ui
2026-03-11 07:52:58 -07:00
Broque Thomas
c06fd044a1
Profile Permissions & Page Access Control
2026-03-10 23:23:43 -07:00
Broque Thomas
9bee72503f
Unify dashboard button styles and enhance activity log
2026-03-10 20:24:33 -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
9a1c3b4124
Fix watchlist badge positioning and mobile card sizing
2026-03-10 15:24:33 -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
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
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
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
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
41edb31e07
Replace sidebar donation dropdown with support modal
2026-03-08 17:33:20 -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
e11ee8622e
Fix discovery modal persistence, artist dict handling, and rate limiter scope
2026-03-07 13:05:49 -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
5f14f027d6
glow effect on active automations
2026-03-06 21:09:24 -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
9f416475e2
Live automation progress tracking with real-time output panels
2026-03-05 20:39:26 -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
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
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
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
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