Release v1.3.0: Multi-source downloads, audio analyzer resilience, mobile improvements
Major Features: - Multi-source download system (Soulseek/Lidarr with fallback) - Configurable enrichment speed control (1-5x) - Mobile touch drag support for seek sliders - iOS PWA media controls (Control Center, Lock Screen) - Artist name alias resolution via Last.fm - Circuit breaker pattern for audio analysis Critical Fixes: - Audio analyzer stability (non-ASCII, BrokenProcessPool, OOM) - Discovery system race conditions and import failures - Radio decade categorization using originalYear - LastFM API response normalization - Mood bucket infinite loop prevention Security: - Bull Board admin authentication - Lidarr webhook signature verification - JWT token expiration and refresh - Encryption key validation on startup Closes #2, #6, #9, #13, #21, #26, #31, #34, #35, #37, #40, #43
This commit is contained in:
5
frontend/app/queue/loading.tsx
Normal file
5
frontend/app/queue/loading.tsx
Normal file
@@ -0,0 +1,5 @@
|
||||
import { LoadingScreen } from "@/components/ui/LoadingScreen";
|
||||
|
||||
export default function Loading() {
|
||||
return <LoadingScreen />;
|
||||
}
|
||||
@@ -150,7 +150,8 @@ export default function QueuePage() {
|
||||
</div>
|
||||
<div className="flex-1 min-w-0">
|
||||
<h3 className="text-sm font-medium text-purple-400 truncate">
|
||||
{currentTrack.title}
|
||||
{currentTrack.displayTitle ??
|
||||
currentTrack.title}
|
||||
</h3>
|
||||
<p className="text-sm text-gray-400 truncate">
|
||||
{currentTrack.artist?.name}
|
||||
@@ -218,7 +219,8 @@ export default function QueuePage() {
|
||||
{/* Track Info */}
|
||||
<div className="flex-1 min-w-0">
|
||||
<h3 className="text-sm font-medium text-white truncate">
|
||||
{track.title}
|
||||
{track.displayTitle ??
|
||||
track.title}
|
||||
</h3>
|
||||
<p className="text-sm text-gray-400 truncate">
|
||||
{track.artist?.name}
|
||||
|
||||
Reference in New Issue
Block a user