Update ghcr.io/new-usemame/calibre-web-nextgen Docker tag to v4.1.41 #165

Open
renovate-bot wants to merge 1 commit from renovate/ghcr.io-new-usemame-calibre-web-nextgen-4.x into trunk
Collaborator

This PR contains the following updates:

Package Update Change
ghcr.io/new-usemame/calibre-web-nextgen (source) patch v4.1.39v4.1.41

Release Notes

new-usemame/Calibre-Web-NextGen (ghcr.io/new-usemame/calibre-web-nextgen)

v4.1.41

Compare Source

Added
  • Kobo hardware experiments can now record the complete Reading Services
    exchange instead of relying on request-line access logs.
    Operators can use
    a deliberately explicit private-data environment gate to capture the device
    request, the actual filtered request sent to Kobo, Kobo's raw response, and
    the final byte stream returned to the device for checkforchanges and
    annotation GET/PATCH calls. Credentials are redacted, records never enter
    ordinary logs or support bundles, and local retention is capped.
Changed
  • Contributors no longer have to edit the same changelog insertion point in
    every pull request.
    Each change now carries an isolated changelog.d
    fragment, and release preparation assembles the fragments deterministically.
Fixed
  • A series added or changed in the library now reaches the Kobo copy of the
    book.
    Download-time metadata embedding was removing the EPUB 3 collection
    metadata Kobo firmware reads, even when the stored KEPUB had already been
    corrected. The served KEPUB now carries the current series and index while
    retaining its cover marker, modified timestamp, refinements, and unrelated
    collections. Reported by @​bjekel
    (#​1372).

  • The small edit pencil under each book cover no longer looks like a dark
    sticker on the light, sepia and high-contrast themes.
    It was drawn with the
    palette reserved for controls that sit on top of cover artwork — deliberately
    opaque and the same colour whatever theme you use, so it stays readable over any
    image. Since it moved out from over the cover and onto the card itself, that made
    it a near-black disc with a white outline on a pale card. It now uses the same
    quiet surface colours as every other control on the card, in every theme.

  • Pull requests opened before a release no longer fail their changelog CI
    check after that release is tagged.
    The guard now considers only releases
    contained in the branch under test, while retaining the committed release
    ledger as a strict fallback when Git tag reachability is unavailable.

  • Cover thumbnails load faster, and the gap widens the bigger your library
    gets.
    Every cover request searched the whole thumbnail table instead of
    going straight to the row it wanted, and the book grid asked for each cover
    twice — once for the WebP version and once for the JPEG. Both are fixed, so a
    page of covers now costs a fraction of the database work it used to. Reported
    by @​ericsilberberg on Discord, who was running NextGen and stock Calibre-Web
    side by side and noticed pages populating more slowly here
    (#​1571).

  • A comic dropped into the ingest folder now keeps the title, series, issue
    number, author and language its ComicInfo.xml already carries.
    Auto-ingest
    ran a bare calibredb add for comic files, which does not read that embedded
    metadata, so a .cbz/.cbr tagged by ComicTagger, Kapowarr, Mylar3 or a
    well-tagged scene release landed as <filename> by Unknown — the same
    guesswork an untagged file gets. Uploading the identical file by hand through
    the web UI already read it correctly; ingest now does too. A comic with no
    embedded tags is unaffected. Contributed by
    @​rfsbraz
    (#​1690,
    #​1691).

  • Kobo annotation uploads are no longer acknowledged when their JSON shape
    prevents CWNG from addressing the uploaded annotations.
    Non-empty
    non-object bodies and non-empty non-list annotation batches now receive a
    temporary failure so the device retains the delta for retry, while legitimate
    empty sync and delete-carrying batches continue normally. Operators running
    the explicit private
    Reading Services diagnostic can also capture the body of a pre-authentication
    401 refusal in a separate, tightly bounded unauthenticated store. Repeated
    attempts for the same unresolved upload now share one protected recovery
    record, preventing one retrying device from exhausting the instance-wide
    spool and denying recovery staging to other users.

  • Kobo annotation recovery copies could be deleted by maintenance meant for a
    different folder.
    The background job that expires old recovery records
    looked up which folder to clean when it eventually ran, rather than when it
    was scheduled, so a change in between could point it somewhere else. It now
    carries its target with it.

  • A highlight that fails to save no longer looks saved. If the database
    rejected the write, the web reader still showed the highlight as created and
    a delete still reported success — the change was gone but nothing said so.
    Those paths now report the failure, and KOReader is told its push did not
    land instead of being acknowledged.

  • Slow storage no longer discards Kobo annotation recovery bodies. If a
    durable spool write outlasts the request deadline, it now finishes in the
    background, and one following PATCH can also be admitted instead of being
    rejected merely because the first write is still completing.

  • A Kobo annotation upload now has a bounded local recovery record even if
    local processing throws before it can persist the delta.
    Before parsing or
    dispatch, CWNG fsyncs the exact raw PATCH body and its new directory entries.
    Blocking storage work runs off the gevent hub behind a 100 ms request
    deadline; on timeout or any storage failure, the PATCH continues without a
    new record. Unresolved records are never evicted to admit a newer body, and
    transactional replacement restores the previous record set if a new write
    fails. Private retention remains bounded even when no new PATCH arrives. The
    device still receives the same explicit failure it does today when nothing
    was stored — recovery is in addition to that refusal, not a replacement for
    it.

  • Bulk actions now report partial failures truthfully. Delete, read/unread,
    add-to-shelf, and metadata updates count each request separately; failed books
    are reported instead of being included in a false success total, and only
    confirmed deletions are removed from the library cache.

  • Restoring a Kobo backup no longer drops the annotations from most of your
    books.
    The recovery importer only understood the chapter identifier that a
    Kobo writes for books whose EPUB keeps its package file at the top level. For
    every other book — the common case — it counted the annotations as
    unreadable and skipped them, so a restore that reported success could bring
    back a fraction of what the backup held. Those annotations now import.

  • Kobo PATCH recovery no longer commits a record after retention scheduling
    has already failed.
    Timer admission now happens before the durable spool
    transaction, so a maintenance setup failure leaves the established recovery
    record set unchanged and the annotation PATCH still fails open.

  • Test-suite reliability: concurrent test processes no longer fight over the
    same lock file.
    Several maintenance scripts guard themselves with a
    one-at-a-time lock in the system temp directory, which is correct when the app
    runs but meant any second process on the machine — a parallel test worker, a
    second test run, or the app itself — could make unrelated tests report
    failures. Each test process now gets its own temp directory.

v4.1.40

Compare Source

Added
  • The desktop sidebar now leaves more room for books without taking navigation
    away.
    On mouse-and-keyboard desktops it stays as a narrow icon rail, then
    expands over the page when you hover over it or focus it with the keyboard.
    Touch devices and smaller screens keep the existing menu drawer. Proposed and
    contributed by @​chloeroform (#​1019,
    #​1652).
Fixed
  • After opening a sidebar destination, the expanded desktop navigation could
    stay over the new page and block its left-side controls simply because the
    pointer was still resting over the item that was clicked.
    The rail now
    stays collapsed while the pointer travels out toward the page; deliberately
    returning to the rail or focusing it with the keyboard still expands it
    without shifting the page content.

  • The Discover strip no longer changes its books when you return to the
    browser tab.
    The earlier app-wide fix stopped most cached pages from
    refreshing on focus, but Discover's random-book request had its own rule and
    still fetched a fresh set. It now keeps the same picks until you deliberately
    shuffle or reload them. Reported by
    @​TangentFoxy and fixed by
    @​chloeroform (#​1628,
    #​1653).

  • A book now takes you back to the list you opened it from instead of
    dropping you at the library root.
    The back link returns to the same author,
    series, tag, publisher, language, rating, format, shelf, magic shelf, or
    discovery view (Hot, Discover, Top rated, Favourites, or Archived), so a
    filtered view no longer has to be rebuilt by hand. A library search also
    returns with its ?q= query intact. Advanced search is an honest exception:
    /search returns to the search page with an empty form, not the previous
    criteria or results, because that page keeps its criteria in component state
    and puts nothing in the URL. The destination survives a reload of the book
    page, but the list's loaded pages and scroll position do not, so it returns at
    the top; a book opened from a deep link with no recorded origin still falls
    back to the library root as before. Opening a book from somewhere that is not
    a list — a notice banner on another page, for example — or going straight
    from one book to another shows “← Library”, because there is no list behind
    it. Reported by @​Arjan61 in #​666.

  • Smart shelves and other library activity now keep recording statistics when
    source-tree and container installs launch outside the application directory.

    Those launches could not find the CWA settings database module, which filled
    the log with No module named 'scripts' errors and silently dropped activity
    records for smart shelves, searches, shelves, OPDS, Kobo sync, and related
    actions. Reported in
    #​1755.

  • Profile pictures and update reminders now follow the configured data
    directory instead of assuming every install uses /config.
    Source and
    bare-metal installs could otherwise read or write the container paths, making
    a saved profile picture disappear from one interface or preventing it from
    updating, and making the once-a-day update reminder forget its state. Both
    files now live wherever the installation's configuration actually lives.
    Reported by @​Thovi98 and fixed by
    @​chloeroform (#​1556,
    #​1678).

  • A Kobo can no longer erase a book's local highlights when its Calibre-Web
    session expires or an admin has just disabled Kobo sync.
    Those transition
    windows, plus alternate spellings of Kobo's checkforchanges request, could
    bypass the owned-book filter and tell the device to replace its complete
    local highlight set from the cloud response. Every equivalent request now
    reaches the same ownership containment; owned books receive an empty change
    list, while Kobo-store content continues to proxy normally.

  • Merging duplicate books no longer discards the newest copy of a highlight
    or note when both books carry the same annotation.
    The merge always dropped
    the annotation attached to the book being removed, even when that copy held a
    later edit than the one on the book being kept. It now compares the available
    edit times and revision, then preserves the newest complete version and its
    sync state.

  • Deleting KOReader highlights from a heavily annotated book is no longer
    slower the more highlights that book holds.
    Removing a handful of
    highlights made the server load every live KOReader highlight in that book
    first, so the work grew with the size of your collection rather than with the
    number of deletions. The server now looks up only the highlights actually
    being removed, in bounded groups. Which highlights get deleted is unchanged,
    and unrelated highlights are untouched.

  • Two people could not find how to delete a book in the new UI and switched
    back to the classic view over it.
    Deletion worked, but the edit page had no
    whole-book delete control and the book page buried Delete at the end of a
    wrapping row of ordinary actions. The edit page now puts Delete book beside
    Edit metadata, and the book page gives it its own clearly labelled
    destructive section — the two places people actually look. Both remain
    permission-gated and confirm before deleting. Reported through anonymous
    feedback (#​1046,
    duplicate #​1037).

  • People who had permission to manage someone else's public smart shelf could
    not do so in the new UI.
    Its Edit, Duplicate, and Delete controls were all
    hidden unless you owned the shelf, even though the server allows admins to
    edit it, shelf editors to delete it, and any signed-in viewer to duplicate it.
    Each control now follows its own server-provided permission, matching ordinary
    shelves; Kobo sync remains available only to the shelf owner. Reported by
    @​iroQuai (#​1734,
    umbrella #​867).

  • Pages and API requests no longer fail sporadically with a dropped
    connection or socket hang up behind a reverse proxy or in a client that
    pools connections.
    The server deliberately closes every HTTP connection
    after its response; it now sends Connection: close so HTTP/1.1 clients do
    not return that closing socket to their pool and try to reuse it.

  • The dependency list on the Statistics page now tells you when something is
    actually missing.
    The list is built from the packages Calibre-Web NextGen
    declares it needs, but a few of those only apply to certain systems — one is
    Windows-only, another is for older Python versions. On everything else they
    were reported as "not installed", so the page hid every "not installed" row to
    keep them out of sight, and a dependency that was genuinely absent got hidden
    along with them. That only matters if you run from source rather than the
    Docker image, where it is possible to end up short a package after an upgrade:
    the page showed nothing wrong and the app failed later with an import error
    instead. Entries that do not apply to your system are now left out at the
    source, and anything genuinely missing is listed again. Docker users see the
    same list as before, minus two rows that never applied. Packaging work by
    @​chloeroform (#​1442).


This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/new-usemame/calibre-web-nextgen](https://github.com/linuxserver/docker-baseimage-ubuntu/packages) ([source](https://github.com/new-usemame/Calibre-Web-NextGen)) | patch | `v4.1.39` → `v4.1.41` | --- ### Release Notes <details> <summary>new-usemame/Calibre-Web-NextGen (ghcr.io/new-usemame/calibre-web-nextgen)</summary> ### [`v4.1.41`](https://github.com/new-usemame/Calibre-Web-NextGen/blob/HEAD/CHANGELOG.md#v4141---2026-08-25) [Compare Source](https://github.com/new-usemame/Calibre-Web-NextGen/compare/v4.1.40...v4.1.41) ##### Added - **Kobo hardware experiments can now record the complete Reading Services exchange instead of relying on request-line access logs.** Operators can use a deliberately explicit private-data environment gate to capture the device request, the actual filtered request sent to Kobo, Kobo's raw response, and the final byte stream returned to the device for `checkforchanges` and annotation GET/PATCH calls. Credentials are redacted, records never enter ordinary logs or support bundles, and local retention is capped. ##### Changed - **Contributors no longer have to edit the same changelog insertion point in every pull request.** Each change now carries an isolated `changelog.d` fragment, and release preparation assembles the fragments deterministically. ##### Fixed - **A series added or changed in the library now reaches the Kobo copy of the book.** Download-time metadata embedding was removing the EPUB 3 collection metadata Kobo firmware reads, even when the stored KEPUB had already been corrected. The served KEPUB now carries the current series and index while retaining its cover marker, modified timestamp, refinements, and unrelated collections. Reported by [@&#8203;bjekel](https://github.com/bjekel) ([#&#8203;1372](https://github.com/new-usemame/Calibre-Web-NextGen/issues/1372)). - **The small edit pencil under each book cover no longer looks like a dark sticker on the light, sepia and high-contrast themes.** It was drawn with the palette reserved for controls that sit *on top of* cover artwork — deliberately opaque and the same colour whatever theme you use, so it stays readable over any image. Since it moved out from over the cover and onto the card itself, that made it a near-black disc with a white outline on a pale card. It now uses the same quiet surface colours as every other control on the card, in every theme. - **Pull requests opened before a release no longer fail their changelog CI check after that release is tagged.** The guard now considers only releases contained in the branch under test, while retaining the committed release ledger as a strict fallback when Git tag reachability is unavailable. - **Cover thumbnails load faster, and the gap widens the bigger your library gets.** Every cover request searched the whole thumbnail table instead of going straight to the row it wanted, and the book grid asked for each cover twice — once for the WebP version and once for the JPEG. Both are fixed, so a page of covers now costs a fraction of the database work it used to. Reported by [@&#8203;ericsilberberg](https://github.com/ericsilberberg) on Discord, who was running NextGen and stock Calibre-Web side by side and noticed pages populating more slowly here ([#&#8203;1571](https://github.com/new-usemame/Calibre-Web-NextGen/issues/1571)). - **A comic dropped into the ingest folder now keeps the title, series, issue number, author and language its `ComicInfo.xml` already carries.** Auto-ingest ran a bare `calibredb add` for comic files, which does not read that embedded metadata, so a `.cbz`/`.cbr` tagged by ComicTagger, Kapowarr, Mylar3 or a well-tagged scene release landed as `<filename>` by `Unknown` — the same guesswork an untagged file gets. Uploading the identical file by hand through the web UI already read it correctly; ingest now does too. A comic with no embedded tags is unaffected. Contributed by [@&#8203;rfsbraz](https://github.com/rfsbraz) ([#&#8203;1690](https://github.com/new-usemame/Calibre-Web-NextGen/issues/1690), [#&#8203;1691](https://github.com/new-usemame/Calibre-Web-NextGen/pull/1691)). - **Kobo annotation uploads are no longer acknowledged when their JSON shape prevents CWNG from addressing the uploaded annotations.** Non-empty non-object bodies and non-empty non-list annotation batches now receive a temporary failure so the device retains the delta for retry, while legitimate empty sync and delete-carrying batches continue normally. Operators running the explicit private Reading Services diagnostic can also capture the body of a pre-authentication 401 refusal in a separate, tightly bounded unauthenticated store. Repeated attempts for the same unresolved upload now share one protected recovery record, preventing one retrying device from exhausting the instance-wide spool and denying recovery staging to other users. - **Kobo annotation recovery copies could be deleted by maintenance meant for a different folder.** The background job that expires old recovery records looked up which folder to clean when it eventually ran, rather than when it was scheduled, so a change in between could point it somewhere else. It now carries its target with it. - **A highlight that fails to save no longer looks saved.** If the database rejected the write, the web reader still showed the highlight as created and a delete still reported success — the change was gone but nothing said so. Those paths now report the failure, and KOReader is told its push did not land instead of being acknowledged. - **Slow storage no longer discards Kobo annotation recovery bodies.** If a durable spool write outlasts the request deadline, it now finishes in the background, and one following PATCH can also be admitted instead of being rejected merely because the first write is still completing. - **A Kobo annotation upload now has a bounded local recovery record even if local processing throws before it can persist the delta.** Before parsing or dispatch, CWNG fsyncs the exact raw PATCH body and its new directory entries. Blocking storage work runs off the gevent hub behind a 100 ms request deadline; on timeout or any storage failure, the PATCH continues without a new record. Unresolved records are never evicted to admit a newer body, and transactional replacement restores the previous record set if a new write fails. Private retention remains bounded even when no new PATCH arrives. The device still receives the same explicit failure it does today when nothing was stored — recovery is in addition to that refusal, not a replacement for it. - **Bulk actions now report partial failures truthfully.** Delete, read/unread, add-to-shelf, and metadata updates count each request separately; failed books are reported instead of being included in a false success total, and only confirmed deletions are removed from the library cache. - **Restoring a Kobo backup no longer drops the annotations from most of your books.** The recovery importer only understood the chapter identifier that a Kobo writes for books whose EPUB keeps its package file at the top level. For every other book — the common case — it counted the annotations as unreadable and skipped them, so a restore that reported success could bring back a fraction of what the backup held. Those annotations now import. - **Kobo PATCH recovery no longer commits a record after retention scheduling has already failed.** Timer admission now happens before the durable spool transaction, so a maintenance setup failure leaves the established recovery record set unchanged and the annotation PATCH still fails open. - **Test-suite reliability: concurrent test processes no longer fight over the same lock file.** Several maintenance scripts guard themselves with a one-at-a-time lock in the system temp directory, which is correct when the app runs but meant any second process on the machine — a parallel test worker, a second test run, or the app itself — could make unrelated tests report failures. Each test process now gets its own temp directory. ### [`v4.1.40`](https://github.com/new-usemame/Calibre-Web-NextGen/blob/HEAD/CHANGELOG.md#v4140---2026-08-23) [Compare Source](https://github.com/new-usemame/Calibre-Web-NextGen/compare/v4.1.39...v4.1.40) ##### Added - **The desktop sidebar now leaves more room for books without taking navigation away.** On mouse-and-keyboard desktops it stays as a narrow icon rail, then expands over the page when you hover over it or focus it with the keyboard. Touch devices and smaller screens keep the existing menu drawer. Proposed and contributed by [@&#8203;chloeroform](https://github.com/chloeroform) ([#&#8203;1019](https://github.com/new-usemame/Calibre-Web-NextGen/issues/1019), [#&#8203;1652](https://github.com/new-usemame/Calibre-Web-NextGen/pull/1652)). ##### Fixed - **After opening a sidebar destination, the expanded desktop navigation could stay over the new page and block its left-side controls simply because the pointer was still resting over the item that was clicked.** The rail now stays collapsed while the pointer travels out toward the page; deliberately returning to the rail or focusing it with the keyboard still expands it without shifting the page content. - **The Discover strip no longer changes its books when you return to the browser tab.** The earlier app-wide fix stopped most cached pages from refreshing on focus, but Discover's random-book request had its own rule and still fetched a fresh set. It now keeps the same picks until you deliberately shuffle or reload them. Reported by [@&#8203;TangentFoxy](https://github.com/TangentFoxy) and fixed by [@&#8203;chloeroform](https://github.com/chloeroform) ([#&#8203;1628](https://github.com/new-usemame/Calibre-Web-NextGen/issues/1628), [#&#8203;1653](https://github.com/new-usemame/Calibre-Web-NextGen/pull/1653)). - **A book now takes you back to the list you opened it from instead of dropping you at the library root.** The back link returns to the same author, series, tag, publisher, language, rating, format, shelf, magic shelf, or discovery view (Hot, Discover, Top rated, Favourites, or Archived), so a filtered view no longer has to be rebuilt by hand. A library search also returns with its `?q=` query intact. Advanced search is an honest exception: `/search` returns to the search page with an empty form, not the previous criteria or results, because that page keeps its criteria in component state and puts nothing in the URL. The destination survives a reload of the book page, but the list's loaded pages and scroll position do not, so it returns at the top; a book opened from a deep link with no recorded origin still falls back to the library root as before. Opening a book from somewhere that is not a list — a notice banner on another page, for example — or going straight from one book to another shows “← Library”, because there is no list behind it. Reported by [@&#8203;Arjan61](https://github.com/Arjan61) in [#&#8203;666](https://github.com/new-usemame/Calibre-Web-NextGen/issues/666). - **Smart shelves and other library activity now keep recording statistics when source-tree and container installs launch outside the application directory.** Those launches could not find the CWA settings database module, which filled the log with `No module named 'scripts'` errors and silently dropped activity records for smart shelves, searches, shelves, OPDS, Kobo sync, and related actions. Reported in [#&#8203;1755](https://github.com/new-usemame/Calibre-Web-NextGen/issues/1755). - **Profile pictures and update reminders now follow the configured data directory instead of assuming every install uses `/config`.** Source and bare-metal installs could otherwise read or write the container paths, making a saved profile picture disappear from one interface or preventing it from updating, and making the once-a-day update reminder forget its state. Both files now live wherever the installation's configuration actually lives. Reported by [@&#8203;Thovi98](https://github.com/Thovi98) and fixed by [@&#8203;chloeroform](https://github.com/chloeroform) ([#&#8203;1556](https://github.com/new-usemame/Calibre-Web-NextGen/issues/1556), [#&#8203;1678](https://github.com/new-usemame/Calibre-Web-NextGen/pull/1678)). - **A Kobo can no longer erase a book's local highlights when its Calibre-Web session expires or an admin has just disabled Kobo sync.** Those transition windows, plus alternate spellings of Kobo's `checkforchanges` request, could bypass the owned-book filter and tell the device to replace its complete local highlight set from the cloud response. Every equivalent request now reaches the same ownership containment; owned books receive an empty change list, while Kobo-store content continues to proxy normally. - **Merging duplicate books no longer discards the newest copy of a highlight or note when both books carry the same annotation.** The merge always dropped the annotation attached to the book being removed, even when that copy held a later edit than the one on the book being kept. It now compares the available edit times and revision, then preserves the newest complete version and its sync state. - **Deleting KOReader highlights from a heavily annotated book is no longer slower the more highlights that book holds.** Removing a handful of highlights made the server load every live KOReader highlight in that book first, so the work grew with the size of your collection rather than with the number of deletions. The server now looks up only the highlights actually being removed, in bounded groups. Which highlights get deleted is unchanged, and unrelated highlights are untouched. - **Two people could not find how to delete a book in the new UI and switched back to the classic view over it.** Deletion worked, but the edit page had no whole-book delete control and the book page buried Delete at the end of a wrapping row of ordinary actions. The edit page now puts Delete book beside Edit metadata, and the book page gives it its own clearly labelled destructive section — the two places people actually look. Both remain permission-gated and confirm before deleting. Reported through anonymous feedback ([#&#8203;1046](https://github.com/new-usemame/Calibre-Web-NextGen/issues/1046), duplicate [#&#8203;1037](https://github.com/new-usemame/Calibre-Web-NextGen/issues/1037)). - **People who had permission to manage someone else's public smart shelf could not do so in the new UI.** Its Edit, Duplicate, and Delete controls were all hidden unless you owned the shelf, even though the server allows admins to edit it, shelf editors to delete it, and any signed-in viewer to duplicate it. Each control now follows its own server-provided permission, matching ordinary shelves; Kobo sync remains available only to the shelf owner. Reported by [@&#8203;iroQuai](https://github.com/iroQuai) ([#&#8203;1734](https://github.com/new-usemame/Calibre-Web-NextGen/issues/1734), umbrella [#&#8203;867](https://github.com/new-usemame/Calibre-Web-NextGen/issues/867)). - **Pages and API requests no longer fail sporadically with a dropped connection or `socket hang up` behind a reverse proxy or in a client that pools connections.** The server deliberately closes every HTTP connection after its response; it now sends `Connection: close` so HTTP/1.1 clients do not return that closing socket to their pool and try to reuse it. - **The dependency list on the Statistics page now tells you when something is actually missing.** The list is built from the packages Calibre-Web NextGen declares it needs, but a few of those only apply to certain systems — one is Windows-only, another is for older Python versions. On everything else they were reported as "not installed", so the page hid every "not installed" row to keep them out of sight, and a dependency that was genuinely absent got hidden along with them. That only matters if you run from source rather than the Docker image, where it is possible to end up short a package after an upgrade: the page showed nothing wrong and the app failed later with an import error instead. Entries that do not apply to your system are now left out at the source, and anything genuinely missing is listed again. Docker users see the same list as before, minus two rows that never applied. Packaging work by [@&#8203;chloeroform](https://github.com/chloeroform) ([#&#8203;1442](https://github.com/new-usemame/Calibre-Web-NextGen/issues/1442)). </details> --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC42LjAiLCJ1cGRhdGVkSW5WZXIiOiI0NC42LjAiLCJ0YXJnZXRCcmFuY2giOiJ0cnVuayIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->
renovate-bot force-pushed renovate/ghcr.io-new-usemame-calibre-web-nextgen-4.x from 815491e5b1 to a7cd02e0d3 2026-08-26 08:00:51 -04:00 Compare
renovate-bot changed title from Update ghcr.io/new-usemame/calibre-web-nextgen Docker tag to v4.1.40 to Update ghcr.io/new-usemame/calibre-web-nextgen Docker tag to v4.1.41 2026-08-26 08:00:54 -04:00
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/ghcr.io-new-usemame-calibre-web-nextgen-4.x:renovate/ghcr.io-new-usemame-calibre-web-nextgen-4.x
git switch renovate/ghcr.io-new-usemame-calibre-web-nextgen-4.x

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch trunk
git merge --no-ff renovate/ghcr.io-new-usemame-calibre-web-nextgen-4.x
git switch renovate/ghcr.io-new-usemame-calibre-web-nextgen-4.x
git rebase trunk
git switch trunk
git merge --ff-only renovate/ghcr.io-new-usemame-calibre-web-nextgen-4.x
git switch renovate/ghcr.io-new-usemame-calibre-web-nextgen-4.x
git rebase trunk
git switch trunk
git merge --no-ff renovate/ghcr.io-new-usemame-calibre-web-nextgen-4.x
git switch trunk
git merge --squash renovate/ghcr.io-new-usemame-calibre-web-nextgen-4.x
git switch trunk
git merge --ff-only renovate/ghcr.io-new-usemame-calibre-web-nextgen-4.x
git switch trunk
git merge renovate/ghcr.io-new-usemame-calibre-web-nextgen-4.x
git push origin trunk
Sign in to join this conversation.
No description provided.