Fixed
- Manual series mutations require admin role (#468) — Authenticated non-admin users can no longer create, update, monitor, delete, fill, or link series to Hardcover. Read-only series endpoints remain available to authenticated users.
- Library file matching now respects media type (#488, #454) —
FindExistingnow picks the right library root based on the book'smedia_typeinstead of always walkingBINDERY_LIBRARY_DIRfirst. Audiobook book rows are matched againstBINDERY_AUDIOBOOK_DIR(with fallback toBINDERY_LIBRARY_DIRwhen the audiobook root is unset), ebook rows are matched againstBINDERY_LIBRARY_DIR, and dual-format / unspecified rows preserve the prior behaviour of walking both roots with the ebook library first. Previously a same-titled ebook inlibraryDircould be mis-attributed to an audiobook entry on rescan, and authors filtered to "audiobooks only" still had file lookups walk the ebook root. - Edition dedup now strips subtitles (#458) — Author sync no longer creates duplicate rows when OpenLibrary returns the same work twice with different subtitle handling — typically the audiobook drops the post-colon subtitle while the ebook keeps it (e.g. Carl's Doomsday Scenario vs. Carl's Doomsday Scenario: Dungeon Crawler Carl, Book 2).
NormalizeTitleForDedupnow drops a: subtitletail when the colon is followed by whitespace, so both editions collapse to the same key and the existing v1.3.1 dual-format upgrade path is taken instead of inserting a duplicate. - Series title inputs now have an API length limit (#469) — Manual series creation and title updates now reject titles longer than 500 bytes before writing to SQLite, preventing oversized titles from being stored through the HTTP API.
- Hardcover GraphQL success responses are bounded (#470) — Successful Hardcover responses are now read through an 8 MiB cap so a misbehaving upstream cannot force unbounded memory growth before JSON parsing.
- Add-author search no longer hides valid author results when the query matches a book title — Results whose name exactly matches a known book title and whose disambiguation points to that book's real author are now placed behind a reveal button rather than silently dropped.