v1.5.1 - multiple media locations, arm64, fleet crash telemetry
The "my library does not fit under one root" release. Mostly built from your asks. (v1.5.1 includes a same-day hotfix on top of 1.5.0, details at the end.)
Multiple media locations (libraries)
The most requested feature since launch (#134). Model each media location, whether that is a second disk, a 4K share, or an anime mount, as a library with its own filesystem root, subgen prefix, and *arr path prefix.
- Settings > Libraries (also offered during onboarding): Sonarr/Radarr root folders not covered by any library surface as one-click "Add as library" suggestions, plus a manual add form with live path validation. Changes apply without a restart.
- Existing single-root installs change nothing. Zero migration, zero config edits. Internally, extra libraries qualify file keys with a stable
@<id>/head while the default library keeps today''s keys. - Mount each location in subarr AND subgen (mirrored on the *arr side). See the README section for a compose example.
Multi-arch images: linux/arm64
ghcr.io/coaxk/subarr now publishes amd64 and arm64 (#70). Pi 4/5 installs work out of the box. No more exec-format errors or building locally.
Coverage survives restarts
A transient Sonarr/Bazarr hiccup during a coverage build (the classic stack-restart timing) used to replace your snapshot with an all-"Analyzing" wall for around 10 minutes (#167). Degraded builds are now held: the last good snapshot keeps serving until your stack is actually back, with a loud log line so nothing fails silently.
Fleet crash telemetry
When a background loop fails, subarr (telemetry on, one-click opt-out) reports the exception type, module:line, and a count. That is the entire payload. Never messages, tracebacks, or paths (#157). Full detail stays local on your Health page, and the Settings transparency panel shows the exact JSON that leaves your box. The point: a release regression that slips past CI now surfaces across the fleet in hours instead of festering silently.
Fixes
- Hotfix in 1.5.1 (#193): the Overview showed sample/demo rows when there was no real activity yet. New installs saw fabricated "Recent activity" entries for files that do not exist, including an impossible "opensubs 429" failure, and CPU-only installs saw placeholder GPU numbers. Both now show honest empty states. Thanks to u0126 on r/Softwarr for the report; the rest of their dashboard (66k files discovered, 8k Bazarr-wanted) was real and working, the demo fallback was manufacturing the confusion.
- Library search results drill down on click (#187). Children of a matched show were being re-filtered into nothing.
- Coverage title/path search is a real input that filters the table (#188). It was a static placeholder.
- Dead SONARR_PATH_PREFIX / RADARR_PATH_PREFIX config removed (#133); per-library prefixes supersede them.
Transparency note
A server-side validation bug on our telemetry endpoint had been rejecting pings fleet-wide since 2026-06-08 (a numeric docker_tier against a string-only validator). Fixed server-side, no client action needed; install stats were undercounted for about 3 days. A fair preview of why this release ships crash telemetry: silent failures are the enemy, including ours.
Upgrade: docker compose pull && docker compose up -d. No migration, no config changes.
Full changelog: CHANGELOG.md
Next epic (design locked): multiple Sonarr/Radarr/Bazarr instances, see #161.