Repository navigation
Conversation
This was referenced Oct 21, 2026
A quality-of-life shortcut until the Issues page, not the Issues page. The library list gives each book its brokenReasons: why Audible, the only metadata source today, can't be asked for it (missing_title, missing_author, missing_asin, invalid_asin, missing_region), read from its main ASIN identifier and that identifier's region; empty when the book is fine. The rules live on the server (BrokenBookRules); the Issues page will use the same codes, and later any book not matched to a metadata provider will count. The codes form a dictionary on each side (BrokenBookReasons on the server, the labels in utils/brokenBookReasons.ts on the front end); a backend test fails when the two differ. The group menu ends with "Broken books": the Books list narrowed to the books with reasons, each shown as an orange tag on the card or row. The address and the saved choice use group=broken; with no broken book left, the page says so and offers all books; the group menu stays available when the filtered list is empty. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Yoldark34
force-pushed
the
library/broken-books
branch
from
October 23, 2026 12:52
c4cb042 to
7855b9c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Question for maintainers: keep this band-aid, or wait for the Issues page?
This is a temporary quality-of-life shortcut, not the Issues page. It lets users find their broken books now, with the server's rules, while the Issues page waits for its groundwork: the backend search (#1076) and the backend tasks (#1078).
Would you rather:
Either is fine with me. It's one self-contained commit.
Change
Server: why a book is broken
BrokenBookRules(application layer) gives the reasons, one code per problem:missing_title,missing_author,missing_asin,invalid_asin,missing_region. The Issues page will use the same codes.GET /library) gives each book itsbrokenReasons, empty when the book is fine. They're read from its main ASIN identifier and that identifier's region, with one query for the whole library (GetAsinIdentifiersGroupedByAudiobookIdAsync). There's no migration.Front end: display only
utils/brokenBookReasons.ts). A backend test fails when the two dictionaries differ, so a code can't be added on one side only.group=broken. With no broken book left, the page says so and offers all books. The group menu stays available when the filtered list is empty.With the other PRs
AudiobooksView.vue, so whichever goes second needs a small rebase.Tests
Backend:
BrokenBookRulesTests(each reason, several at once),LibraryListServiceTests(reasons read from the main ASIN identifier, falling back to the ASIN field),BrokenBookReasonsDictionaryTests(front-end and server dictionaries match). 3783 passed. Front end: the group (last in the menu, filtering, address, saved choice, tags only in this group, empty state). 676 passed.dotnet format, type-check, eslint and prettier are clean.Captures
Taken on a fresh instance running this branch, with one book whose ASIN has no region.
The group menu, "Broken books" last:

The "Broken books" group, with each book's reasons:

🤖 Generated with Claude Code