github Listenarrs/Listenarr v1.0.8-canary
Canary 1.0.8

pre-releaseone day ago

Summary

The backend already models books that belong to multiple series (AudiobookSeriesMembership join with IsPrimary/SortOrder, populated by Audible/Audnexus), but the UI and one list query still treated each book as single-series. As a result a book that's in two or more series only showed under its provider-chosen primary, and the per-book "Primary" series toggle silently reverted on save.

This PR makes a book appear under every series it belongs to and makes the Primary selection actually stick — which also makes {Series} folder naming follow the chosen series.

Motivating example: a series catalogued in both publication order and chronological order (e.g. Jack Ryan) previously split across two half-empty series with no way to pick the canonical one.

Closes #658.

Changes

Added

  • Books appear under all their series: the library "Series" grouping and the series collection view list a book under each of its series memberships (not just the primary), showing the correct position number for that series. Book cards and detail modals list every series the book belongs to.
  • Series memberships in the library list payload: LibraryAudiobookListItem now carries SeriesMemberships, batch-loaded in LibraryListService via a new GetAllSeriesMembershipsGroupedByAudiobookIdAsync repository query (mirrors the existing file-summary batching — no per-row Include, no change to the shared GetAllAsync).

Fixed

  • "Primary" series toggle now persists: the edit dialog's save payload built isPrimary: Boolean(membership.isPrimary || index === 0), which re-flagged the first series as primary alongside the user's pick; the backend keeps the first primary it finds, so the choice reverted to the provider default. The payload now sends only the user's selection.
  • Metadata rescan keeps the chosen primary: a manual "Rescan Metadata" replaced memberships with provide...

Automated Canary build

Don't miss a new Listenarr release

NewReleases is sending notifications on new releases.