Repository navigation
Conversation
…he library A Repair button on the book page and "Repair Selected" in the library open the Repair dialog. For each book: its ASIN and Region, and Find Match, the same Find Match as Library Import, opened on the book's title, author and region. Picking a result takes its ASIN and the region it was found in. An ASIN typed by hand is checked in its region with the same search before it is saved. Every region is offered, ordered by the book's current region, the configured one and US, then alphabetically. Repairing saves the ASIN as the primary one with its region (identifiers of the old match are dropped, manual ones kept), rescans the metadata from it, then offers to Organize the repaired books. Revert per book. Find Match now also takes a plain target (name, query, author, region) instead of a Library Import row; Library Import still passes its row and keeps waiting for its searches before importing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 21, 2026
"Repair Selected (n)" in the library, like "Delete Selected (n)". The library button and the Repair button on the book page are orange (the warning color), like the problems Repair fixes, with dark text and icon to stay readable. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Yoldark34
force-pushed
the
repair/issues-page
branch
from
October 21, 2026 09:20
1e467a5 to
e1c999d
Compare
The book page's icon buttons get their colors from the shared button styles, which force every nav icon button that isn't primary or danger to grey. A warning variant (orange, dark icon) joins primary and danger there, and the Repair button uses it. The dialog's info line, selection count and results inherited the page's dark text color: they now use the same styles as the Organize dialog. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Yoldark34
force-pushed
the
repair/issues-page
branch
from
October 21, 2026 09:35
e1c999d to
7d10c51
Compare
…whole row Each book has Title and Author fields again, prefilled with its title and first author. Find Match (or Enter in either field) searches what they hold, in the selected region; Revert restores them with the ASIN and region. ASIN, Region, Title, Author and Find Match share the whole row (two columns on narrow screens). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Yoldark34
force-pushed
the
repair/issues-page
branch
from
October 21, 2026 09:41
7d10c51 to
7d9462b
Compare
Repair: ASIN, Title, Author, Region, then Find Match. Find Match (shared with Library Import): each field has its name above it (Title or ASIN, Author, Region) instead of a placeholder only, in that order; the spinner sits next to the "Title or ASIN" name while a search runs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Yoldark34
force-pushed
the
repair/issues-page
branch
from
October 21, 2026 09:57
7d9462b to
135408e
Compare
Another title, author or region describes another record, so the ASIN that was there no longer matches: it is emptied until Find Match picks the book again (or its ASIN is typed), and the dialog says so in its note. An empty ASIN gets its own hint, and Repair waits for one. A record picked in Find Match keeps its ASIN and region. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An Issues page under System, always in the menu; its orange count is the
books with a real issue (ignored books never count). GET /library/issues
lists books with no title, no ASIN, an ASIN that isn't one, or an ASIN
without its region, with a Repair button per row and "Repair Selected Books
(n)" for the selection. With nothing left to repair, one row says so.
A book's problems can be ignored (with confirmation). A "Show ignored books
(n)" switch lists them (the choice is kept in the browser); they can be
un-ignored, and repairing one asks whether it stays ignored. Stored in a new
table, AudiobookIssueIgnores (migration AddAudiobookIssueIgnores).
The Repair dialog shows each book's current problems in orange
(GET /library/issues/{id}) and refreshes the Issues count after a repair.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Yoldark34
force-pushed
the
repair/issues-page
branch
from
October 21, 2026 11:04
135408e to
c3a5626
Compare
Contributor
Author
|
Closing this draft: the direction changed. The Repair work moved on with more involved improvements and fixes (#1054 now uses a book card shared with Find Match, and #1086 shares Add New's search), and this page was built on the earlier design. The Issues screen is still a natural step of #1080 and will come back when its time comes, once its groundwork exists (#1076, #1078). Keeping this branch updated and mergeable in the meantime isn't productive, so the Issues screen will be rewritten from scratch then. I'm keeping this branch locally as a reference for that rewrite. |
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.
Change
Issues page (under System, always in the menu; its orange count is the books with a real issue, and ignored books never count)
GET /library/issueslists the books with no title, no ASIN, an ASIN that isn't one, or an ASIN without its region. Each row has a Repair button, and "Repair Selected Books (n)" repairs the selection.AudiobookIssueIgnores(migrationAddAudiobookIssueIgnores).Repair dialog: each book's current problems show in orange (
GET /library/issues/{id}), and the Issues count is refreshed after a repair.With the other PRs
GetAsinIdentifiersGroupedByAudiobookIdAsync); whichever goes second drops its copy. Its reason codes (missing_title,missing_asin,invalid_asin,missing_region, plusmissing_author) are the ones this page uses; once both exist, this page should use [Step][#1080] Library: a temporary "Broken books" group, with the server's reasons #1082's rules on the server, so a book is broken for the same reasons in both places.Rollback
This PR has a migration. The rollback branch is one commit that reverts the PR, keeps its migration and adds a forward
DropAudiobookIssueIgnoresmigration, so a database that ran it moves forward to a clean schema. The currentrollback/repair-bookscovers the old, larger #1054. It will be rebuilt on this PR before it leaves draft.Tests
Backend:
LibraryIssueServiceTestsand the migration history: 3770 passed. Frontend: Issues page, issues store, and the Repair dialog's problem pills: 702 passed.dotnet format, type-check, eslint and prettier are clean.Captures
The Issues page:

Repair from the Issues page:

Ignoring a book's issues:

Showing ignored books (this capture shows the earlier checkbox, now a switch):

Issues in the main menu, ignored books not counted:

🤖 Generated with Claude Code