github aquantumofdonuts/mixarr v1.2.0

latest releases: v2.1.1, v2.1.0, latest...
one month ago

v1.2.0 Release Notes

Docker Image:

docker pull ghcr.io/aquantumofdonuts/mixarr:latest

Docker Usage:

docker run -d \
  --name mixarr \
  -p 3443:443 \
  -v ~/mixarr-data:/data \
  -e SESSION_SECRET="$(openssl rand -hex 32)" \
  -e FRONTEND_URL="https://YOUR-SERVER-IP:3443" \
  -e BASE_URL="https://YOUR-SERVER-IP:3443" \
  ghcr.io/aquantumofdonuts/mixarr:latest

Bugfixes

  • Issue #24: Lidarr import settings are not respected
  • Issue #22: Allow renaming custom spotify playlists
  • Issue #21: Can't access the WebUI on http
  • Issue #20: slskd server ban (warning)
  • Fix modals not scrollable on small screens
  • Fix Discogs subscription error on save
  • Fix Musicbrainz subscription error on save
  • Fix subscription edit using PUT to match API route
  • Fix Spotify category preset field name mismatch
  • Fix Docker image typo (aquantumofdonums → aquantumofdonuts)
  • Expose port 3010 for direct web access in unified Docker image
  • Prevent worker auto-import in test environment
  • Pass monitorOption from Lidarr connection settings when adding artists

Security

  • Sanitize 5xx errors in production responses
  • Add session secret validation warning
  • Add auth rate limiting verification tests
  • Global rate limiting for CodeQL findings

Added - Lidarr Monitor New Items

  • Add "Monitor New Albums" dropdown to Lidarr connection settings
  • Support for None, All, New, and Existing monitor options
  • Automatically apply monitor setting when adding artists via subscriptions

Subscription System Refactoring

  • Extract SubscriptionService with TDD (business logic layer)
  • Add SubscriptionController with TDD (HTTP layer)
  • Wire CRUD routes through controller pattern
  • Extract SubscriptionFormModal component (1019 lines)
  • Extract SubscriptionCard component (204 lines)
  • Extract subscription-constants.ts (260 lines)
  • Add useCreateSubscription and useUpdateSubscription hooks
  • Reduce subscriptions/page.tsx from 1,179 to 214 lines (82% reduction)

Added - Type Safety & Code Quality

  • Add Socket.IO type definitions to eliminate as any casts
  • Add shared subscription types and result handling constants
  • Standardize error logging across all API routes
  • Consolidate LidarrConnectionConfig to single canonical type

Documentation

  • Add pre-release cleanup documentation

slskd Integration (Major Feature)

Added

  • Add slskd (Soulseek) as a new connection type with schema validation
  • SlskdService: search, downloads, connection test functionality
  • SlskdSubscriptionProcessor with peer quality scoring algorithm
  • SlskdDownload model for tracking download status and history
  • API endpoints for downloads with filtering, retry, and cancel actions
  • Webhook endpoint for download completion events
  • Polling job for download status detection (2-minute interval)
  • SlskdOrganizerService for automatic file organization
  • Rate limiting with exponential backoff to protect slskd server
  • Queue monitoring and metrics for download operations
  • Two-phase commit for transaction safety
  • 30-second timeout on all slskd API calls
  • Search polling loop until search completion
  • Peer quality scoring for better download source selection
  • Detailed API error parsing with logging

slskd UI

  • Downloads page with status filtering and actions (retry, cancel)
  • slskd search modal integrated on Search, Discovery, and Review Queue pages
  • ArtistCard integration for quick slskd search

Fixed (slskd-specific)

  • Fix slskdProcessor scope in finally block (ReferenceError)
  • Fix DB error propagation in rate limiting flag check
  • Fix memory leak in slskd worker metrics interval
  • Fix stale flag caching in subscription processor
  • Fix cross-device file moves with copy fallback (EXDEV error)
  • Fix BigInt serialization to string in JSON responses
  • Export QueueEvents cleanup for graceful shutdown

Security (slskd-specific)

  • Path traversal security fix in slskd webhook handler
  • Unicode normalization before path validation (prevent bypass attacks)

Documentation

  • Add slskd rate limiting operations guide

Upgrade Instructions

From Docker Compose

cd mixarr
git fetch --tags
git checkout v1.2.0
docker compose up -d --build

From Docker Run

docker pull ghcr.io/aquantumofdonuts/mixarr:v1.2.0
docker stop mixarr
docker rm mixarr
docker run -d \
  --name mixarr \
  -p 3443:443 \
  -v ~/mixarr-data:/data \
  -e SESSION_SECRET="your-existing-secret" \
  -e FRONTEND_URL="https://YOUR-SERVER-IP:3443" \
  -e BASE_URL="https://YOUR-SERVER-IP:3443" \
  ghcr.io/aquantumofdonuts/mixarr:v1.2.0

Full Changelog

See v1.0.0...v1.2.0

Don't miss a new mixarr release

NewReleases is sending notifications on new releases.