Skip to content

[SeerrNG #628] fix: narrations, verified request availability and a Lumen bug pass - #16

Closed
ncbudd wants to merge 1 commit into
mainfrom
seerrng-628
Closed

ncbudd wants to merge 1 commit into
mainfrom
seerrng-628

Conversation

@ncbudd

@ncbudd ncbudd commented Nov 9, 2026

Copy link
Copy Markdown
Owner

Mirror of snapetech-org/seerrng#628 (the Lumen part; the one server change, server/lib/editionCompare, lives upstream only).

Fixes from a full test pass on a live install after upgrading to 3.72.25 (SeerrNG + Lumen companion) and ChaptarrNG 0.9.986. Every control in Lumen was exercised at desktop and Firefox phone sizes against the real server (writes intercepted), plus a code-level bug hunt. Each fix has a browser or unit test that fails on current main.

Narrations (ChaptarrNG 0.9.986 has the data; it wasn't reaching Lumen)

  • Lumen sent an edition request SeerrNG always answers empty. compareBookEditions only looks editions up when it also has a title or identity (server/lib/editionCompare/index.ts term && (title || identity || foreignBookId)), and Lumen sent only term=work:N, so book pages had no narrations to choose from. Lumen now also sends foreignBookId=hc:N.
  • The library catalog was never used (server/lib/editionCompare/index.ts): Chaptarr lookups qualify the work id (hc:427578) while the stored book keeps the bare form (427578), so localBook.foreignBookId === match.foreignBookId never matched and the comparison fell back to the lookup (fewer editions, no owned flags). Now compared through getKnownBookIdentityAliases. New vitest case; server typecheck clean.

Request lists showing available titles as missing

  • 3.72.25 verifies at most 32 title variants per response against the viewer's own media-server access (MAX_MEDIA_AVAILABILITY_CHECKS_PER_RESPONSE) and masks the rest. Lumen asked for 40–100 requests at a time, so on the live server 198 of 427 available titles showed as not available. Lumen now fetches request lists in pages of 15 and joins them.

Other Lumen fixes

  • Coming soon stayed on "Loading…" forever when both lists failed; Search said "No matches" when its lookups failed. Both now show the error with Retry.
  • A book lookup that failed for a passing reason (429/503) said "No ebook edition found"; only a 404 does now. Movie, series and book pages that fail to load offer Retry.
  • A double click on a poster's Request sent two requests (the second came back as an error). Card request buttons share a busy guard.
  • Cancel on your own request could be sent twice (second gave "not found"); it's guarded and the row goes away at once.
  • Music/Comics/Games/etc. spun forever if /settings/public failed after start; they now show the error with Retry.
  • The admin request sheet kept Request disabled when no Radarr/Sonarr server of that kind exists; an empty server list now counts as ready ("SeerrNG uses its defaults").
  • Discover rows (and the popular titles hero) that failed only said so until a reload; they now offer Retry.
  • Requesting from a book page left book cards elsewhere showing Request for up to a minute; the cached book states are dropped after the request, as poster requests already do.

Tests

Lumen browser suite: 571 passed, 13 existing viewport skips. server/lib/editionCompare: 19 passed; server typecheck clean; Prettier clean. Also verified on the live install after deploying: request lists show real availability (no masked titles in any page), book pages list narrations again (e.g. Wool: four English recordings, the owned one marked), and the narrator request sends the matching Chaptarr edition.

Related, separate: #624 (sign-out error), #626 (Listen in Audiobookshelf), #627 (Requests rows before slow lookups), #625 (owned books missing from the library list).

@ncbudd ncbudd closed this Nov 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant