Broque Thomas
ab21855af3
Enrich repair findings with album art, artist images & live job progress
...
- All 9 repair jobs now emit report_progress() for real-time card updates
(phase, log lines, per-item activity) via WebSocket repair:progress events
- Enrich finding details with album/artist thumb URLs across all repair jobs
(dead_file, duplicate, metadata_gap, album_completeness, missing_cover_art,
acoustid_scanner, track_number_repair, fake_lossless, orphan_file)
- Track number repair: return match_score from fuzzy matching, add suffix-based
DB lookup for album/artist art (handles cross-environment path mismatches)
- Fix Plex/Jellyfin relative thumb URLs in findings endpoint via fix_artist_image_url
- Labeled media cards in finding detail panels (album title + artist name under images)
- Dashboard tooltip shows current job name + per-job progress instead of stale stats
2026-03-15 14:08:26 -07:00
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
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
264e696fe3
Fix per-profile ListenBrainz playlist cache scoping and stale data recovery
2026-03-14 21:11:59 -07:00
Broque Thomas
8f0b9518bc
Add per-profile ListenBrainz support with personal settings modal
2026-03-14 20:12:19 -07:00
Broque Thomas
60261f2e91
Fix watchlist scan failing entirely when Spotify is rate limited by adding iTunes provider fallback and missing rate limit ban detection
2026-03-14 14:58:12 -07:00
Broque Thomas
cf917279c2
Harden metadata cache: prevent simplified data from overwriting full entries, fix connection leaks, and add inline TTL enforcement
2026-03-14 13:39:12 -07:00
Broque Thomas
0b8bfa1e6b
Scope automation-triggered watchlist scans to the calling profile & Fix watchlist scan silently skipping all albums due to metadata cache returning incomplete data
2026-03-14 13:23:03 -07:00
Broque Thomas
c3eecc88ad
Retry Tidal download at lower quality when hi-res returns garbage file
2026-03-14 10:54:33 -07:00
Broque Thomas
363b3d0922
Fix MusicBrainz API call in metadata gap filler job
2026-03-14 09:46:02 -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
e3fdb12d78
Preserve watchlist scan timestamps for UI display instead of wiping on lookback changes
2026-03-13 22:46:41 -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
e5a6ac7821
Strip all parentheticals in AcoustID title normalization
2026-03-13 21:28:18 -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
de2cc6db7a
Detect rate limits in methods that swallow 429 exceptions so the modal appears
2026-03-13 14:00:23 -07:00
Broque Thomas
c9549e8a9a
Fix iTunes discovery playlists: synthetic popularity, EP inclusion, and seasonal iTunes support
2026-03-13 13:52:32 -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
55186c6a51
Add Deezer playlist sync tab with discovery, fix modal, and cache persistence
2026-03-13 12:29:49 -07:00
Broque Thomas
d2a241cc04
Fix Tidal playlist sync dropping remix/version info from track titles
2026-03-12 21:12:34 -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
66e9457d0e
Stop unnecessary Spotify API call every 60s from enrichment status polling
2026-03-12 12:06:25 -07:00
Broque Thomas
822568a2d5
Fix automated scans for non-Plex servers & incremental scan performance
2026-03-12 11:17:32 -07:00
Broque Thomas
dc9a8a3845
Fix wrong track downloads when album name matches a track title in hybrid mode
2026-03-12 10:40:33 -07:00
Broque Thomas
5db10b552d
Fix Tidal/Qobuz enrichment backfill failing on dict-type copyright and isrc fields
2026-03-12 10:26:35 -07:00
Broque Thomas
f77066f9a7
Fix Spotify rate limit loop causing indefinite API call cycle during ban
2026-03-12 09:49:07 -07:00
Broque Thomas
917c25afd9
Fix Tidal OAuth — override Accept header on token requests to application/json
2026-03-12 09:35:36 -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
ac2c710a1e
Tidal & Qobuz Background Enrichment Workers
2026-03-11 21:26:20 -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
4390036556
Include Tidal version field in track names — fixes remixes all resolving to base title
2026-03-11 15:51:20 -07:00
Broque Thomas
d329dd4fe8
Fix Tidal playlist endpoints redundantly re-fetching all playlists — use direct single-playlist fetch
2026-03-11 13:50:53 -07:00
Broque Thomas
27bd896540
Use largest available Spotify album artwork instead of medium size
2026-03-11 12:59:23 -07:00
Broque Thomas
2930b5334e
Fix Tidal playlist pagination rate limiting — exponential backoff, inter-page delay, and HTTPError propagation
2026-03-11 12:49:02 -07:00
Broque Thomas
d452cd0a55
Validate Tidal downloads and clean up unplayable hi-res stubs
2026-03-11 11:59:13 -07:00
Broque Thomas
bc22bdca07
Fix infinite Spotify rate limit loop from unguarded auth probes and swallowed errors
2026-03-11 11:07:48 -07:00
Broque Thomas
bde2be1cfa
Spotify rate limit re-trigger loop caused by periodic auth probes
2026-03-11 08:28:36 -07:00
Broque Thomas
0aa8950436
fix build a playlist functionality and update the ui
2026-03-11 07:52:58 -07:00
Broque Thomas
603db69b10
Fix Genius 429 backoff by re-raising rate limit errors from _make_request
2026-03-10 15:46:37 -07:00
Broque Thomas
1b0fca9009
Service Badges, Page Headers, Docs Page, and Bug Fixe
2026-03-10 14:47:11 -07:00