Fixed
- Calibre import: Language unknown on all books (#314) —
books_languages_linkwas never queried, so every imported book showed "Language unknown" and editions were hardcoded to"eng". The reader now reads the primary ISO 639-2 language code from Calibre's languages table (falls back gracefully for pre-0.7 Calibre libraries that predate the table). Language is applied to both the book row and the edition. - Calibre import: Author ratings missing after first Refresh Metadata (#314) —
relinkCalibreAuthorfetched the full OL author but only copied image/description/sort name.ratings_countandaverage_ratingare now copied as well. - Calibre import: Duplicate book rows after Refresh Metadata (#314) —
FetchAuthorBooksskipped title-matched books with a barecontinue, leaving calibre-imported stubs (syntheticcalibre:book:NForeignID, no language) un-upgraded when OpenLibrary returned the same title. Calibre stubs are now updated in-place with the real OL ForeignID and language instead of being silently skipped, preventing a second OL row from being created alongside them.