github cporcellijr/bookbridge v7.5.0
7.5.0

6 hours ago

Release Notes - 7.5.0

Kavita joins BookBridge as a full ebook source and reading client, library
cards can now show you the text at your current position, and the dashboard
learned to sort by when you added a book.

This release also contains a security fix that matters for multi-user
installs
. If other people have accounts on your BookBridge, read the Security
section below and upgrade promptly. If you are the only user, it is an ordinary
upgrade.

What's New

  • Kavita is a first-class ebook source and reading client. BookBridge can
    search and import Kavita EPUBs, download them to managed KOReader devices,
    match them by their KOReader hash, sync progress in both directions, manage a
    collection for shelf-watch and Storyteller workflows, proxy covers, and use
    Kavita books for Hardcover and StoryGraph metadata. Progress rides Kavita's
    native KOReader endpoint, so the same position shows up in its web reader.
    Credentials and library/collection choices are per-reader, and polling and
    shelf-watch work exactly as they do for Grimmory and BookOrbit.

  • See the text at your current position, without opening a reader. On any
    book with an ebook, Show position beside the progress bar opens a short
    excerpt with a marker where you are synced to — enough to recognise the spot.
    BookBridge uses the exact XPath or CFI when your reader saved one, maps an
    audiobook position through the stored alignment when it did not, and clearly
    labels a percentage-only estimate as approximate instead of implying precision.
    Contributed by @Kyomorie in #397 (#394).

  • Sort your library by when you added a book. The sort menu gains a Date
    Added
    option, and the arrow beside it flips newest/oldest. A series sorts by
    its most recently added book, so adding one title to an old series brings the
    whole group forward.

  • Searching for a book you have not added yet now leads somewhere. The
    library search box only ever filtered books you already sync, so typing the
    name of an unmatched book emptied the page and explained nothing. It now offers
    to look for that title in your libraries, carrying your text straight into Add
    Book.

  • The Add Book tab shows how many books are waiting in your queue, so work in
    progress is visible from anywhere.

  • Add Book and Suggestions show each edition's language as a compact badge,
    when the provider supplies it. Display only — it does not affect search or
    ranking. Contributed by @Kyomorie in #405.

  • Suggestions names the service each audiobook came from, so you can tell
    whether a proposed pair uses Audiobookshelf, Grimmory, or BookOrbit audio
    before approving it. Contributed by
    @Marcelwalter in #407.

Security

Forge and Match now confine a local ebook source to your configured library.

BookBridge did not fully verify that a selected Local File ebook stayed inside
your configured ebook directories, so a signed-in account could cause the server
to read a file from outside them.

Local sources are now restricted to BOOKS_DIR, any EXTRA_EBOOK_DIRS, and the
EPUB cache. Anything outside those roots is refused and logged.

Who should upgrade promptly: any install with accounts you would not trust
with the server's files. That is the multi-user case. On a single-user install,
or one where every account is already trusted, this granted nothing an
administrator could not already reach.

Affects 7.4.2 and earlier. Found by external security review and reported
privately. No exploitation in the wild is known.

Fixed

  • BridgeSync's Test Connection tells you when you have pointed it at the
    wrong server.
    It only checked that the address accepted your login — and any
    KoSync-compatible server does, including other reading apps. It now asks the
    server to identify itself and says plainly when the answer is not BookBridge.
    Plugin updated to 0.6.6. (#403)

  • The source badge on the Add Book page is visible, and it leads the card.
    7.4.1's fix did not go far enough; the card was still locked to a square and
    went on slicing the badge off its bottom edge. It now sizes to its content, and
    the badge naming the source sits at the top of every candidate. (#381)

  • A KoSync timing setting you change now takes effect without a restart. The
    instant-sync debounce window was read once at startup, so editing it appeared
    to save and then changed nothing. Contributed by
    @Kyomorie in #404.

Changed

  • The Settings page opens immediately again. It was reading every stored
    alignment map just to count them — well over a gigabyte on a large library
    before the page would render. It asks the database for the counts now.

  • The dashboard no longer re-checks every cover on each visit. Covers were
    served with no cache lifetime, so browsers revalidated all of them every time —
    hundreds of round trips, all answered "unchanged".

  • Storyteller edition creation is clearly separated from ordinary matching.
    Add Book and Suggestions show only Match All when the current reader has no
    Storyteller account. When Storyteller is available, the former Forge actions say
    what they do: Create Storyteller Edition & Match All and Create
    Storyteller Edition Only
    .

Upgrading

Pull the new image and restart:

docker compose pull && docker compose up -d

One database migration is included (a covering index that fixes the slow Settings
page). It applies automatically on boot — no manual step.

KOReader plugin: 7.5.0 ships BridgeSync 0.6.6. Unlike 7.4.2, the plugin
can update itself — use Check for Plugin Update in BridgeSync, or download
the zip from your BookBridge account page. If you are still on 0.6.4 or earlier,
you must re-download by hand; see the 7.4.2 notes.

Operational Notes

  • No settings changes are required. Kavita is off until you configure it.
  • Kavita needs a non-expiring auth key per reader, created in Kavita under User
    Settings -> 3rd Party Clients
    and saved under Account -> My Integrations ->
    Kavita
    . See Configuration.
  • If your ebooks live outside BOOKS_DIR, make sure those folders are listed in
    EXTRA_EBOOK_DIRS. After this release a local file outside your configured
    roots is refused rather than silently read.

Don't miss a new bookbridge release

NewReleases is sending notifications on new releases.