github kushiemoon-dev/FLACidal v4.10.0
v4.10.0 - Endpoint revival backoff, self-host priority pool & cascade transparency

latest releases: v4.18.0, v4.17.2, v4.17.1...
3 months ago

This release hardens the download cascade against the ongoing degradation of public HiFi API proxies, gives you direct control over which endpoints are tried first, and makes the queue transparent about how each track was obtained.


What's new

Endpoint revival backoff (core)

Dead proxy endpoints are no longer permanently blacklisted for the session. After being marked dead, an endpoint enters a backoff queue and automatically re-enters the pool as a probation candidate; starting at 5 minutes and doubling with each failed revival, capped at 2 hours. A successful download from a probation endpoint resets its counter completely.

Additionally, a 200 OK response on metadata routes no longer marks an endpoint as healthy. Response bodies are now inspected: a reply containing "upstream api error" (the signature of a proxy whose upstream credentials are banned) triggers immediate blacklisting, so the cascade falls through to Soulseek quickly instead of stalling for 30–90 seconds.


Self-host priority endpoints (Settings → Sources)

The single custom endpoint inputs for Tidal and Qobuz have been replaced with multi-line lists (one URL per line). Entries are tried in order before the public pool. The public endpoints remain as a fallback layer; they are never removed, only deprioritised.

This is the recommended path for reliable downloads: run your own HiFi API instance with your own credentials, list it first, and let the public pool handle any gaps.

Backward compatibility: existing tidalCustomEndpoint / qobuzCustomEndpoint values are automatically treated as the first entry in the new lists. No manual migration needed.


Per-endpoint health panel (Settings → Status)

The Source Health section now shows each proxy endpoint individually:

  • State badge: live, probation, blacklisted, or dead
  • Latency: measured on the last successful request
  • Revival count: number of times this endpoint has cycled through backoff

Health is derived from in-memory pool snapshots (zero network requests), which also eliminates a crash on Linux where live HTTP probes triggered a WebKitGTK signal-handler conflict with the Go runtime.


Queue cascade badges

The download queue now shows how each track was obtained:

  • Verdict badge: Lossless, Likely upscaled, or Upscaled for Soulseek and Bandcamp downloads (sources where bit-perfect lossless cannot be guaranteed at the protocol level). Tidal, Qobuz, and Amazon downloads are not analysed; lossless by construction.
  • Cascade badge: when the primary source failed, a label such as "via Soulseek; Tidal unavailable" appears below the track, showing every source attempted before success.

Home page

  • Subtitle updated to describe the full cascade
  • Empty state now shows source chips (Tidal HiFi, Qobuz, Bandcamp, Soulseek P2P, Spotify) so supported inputs are immediately visible on first launch
  • Spotify and Bandcamp example URLs added to the placeholder typewriter

Upgrade notes

No configuration changes required. Existing single custom endpoint settings migrate automatically. If you previously set a Tidal or Qobuz custom endpoint, it will appear pre-filled in the new multi-line editor.

Full Changelog: v4.9.0...v4.10.0

Full Changelog: v4.9.0...v4.10.0

Don't miss a new FLACidal release

NewReleases is sending notifications on new releases.