github vavallee/bindery v0.17.0

latest releases: v1.7.0, v1.6.0, v1.5.0...
21 days ago

Drop-folder Calibre mode removed, OpenLibrary series schema fixed, and a batch of UX and deployment polish.

Removed

  • Calibre drop-folder mode (#207) — the drop-folder integration has been removed entirely. It depended on the Calibre GUI application's auto-add watcher, which never fires in containerised / headless deployments. Books silently timed out with no feedback. The calibredb mode achieves the same result — mirroring every successful import into Calibre — without any of these constraints: it only requires that Bindery and Calibre share the library directory via a volume mount, which is already required for the library import/sync feature. Existing calibre.mode = drop_folder settings are treated as off; operators should switch to calibredb mode. The calibre.drop_folder_path setting and the /api/v1/calibre/test-paths endpoint are gone.

Fixed

  • OpenLibrary object-typed series entries (#206, closes #201) — some OpenLibrary work records encode series as [{"key": "...", "title": "..."}] (object array) rather than ["..."] (string array). Bindery previously crashed with an unmarshal error on these records, silently skipping all books for authors like Pierce Brown, J.K. Rowling, and Cornelia Funke. A new flexStringSlice decoder accepts both forms transparently.
  • Calibre settings save errors (#202, closes #175) — validation errors on PUT /api/v1/setting/calibre.* were returned as 400 but the UI silently discarded the response body; the error message now surfaces in the Settings page. Also fixes a case-sensitivity bug where NFS paths with uppercase letters were rejected.
  • Search "no indexers" message (#203) — when a search returns no results and no indexers are configured, the UI now shows "No indexers configured — add one in Settings" instead of the generic "No results" empty state.
  • Login form method (#195) — login form missing method="POST" caused browsers to silently submit via GET, leaking credentials in the URL bar and query-string logs.
  • Auth visibility refresh (#199) — auth status was not rechecked when a browser tab regained focus after a session expiry, leaving users on a page that appeared authenticated but returned 401 on the next action.
  • Books empty state (#197) — Books page showed a bare spinner when the library was empty; now shows instructional copy pointing to the "Add author" flow.
  • Version badge and footer links (#196) — version badge in the header now links to the corresponding GitHub release; footer links to the repo.
  • Calendar aria-labels (#198) — previous/next month buttons on the calendar lacked aria-label attributes, failing screen-reader and accessibility audits.

Changed

  • Per-page document titles (#200) — each page sets document.title to reflect the current view (e.g. "Authors — Bindery", "Settings — Bindery") for browser tab identification and history navigation.
  • Helm chart: corrected BINDERY_DOWNLOAD_PATH_REMAP (#204) — default remap was /downloads:/downloads; corrected to /downloads:/media to match the NFS-mount convention documented in the reference deployment.
  • ArgoCD reference application (#205) — updated NFS volume configuration and container entrypoints in the reference ArgoCD application manifest.

Upgrade notes

  • No schema migrations — this is a pure-logic and UI release. Drop-in binary or image replacement is safe.
  • Drop-folder users: if calibre.mode is set to drop_folder, Bindery will treat it as off on startup. Switch to calibredb mode in Settings → Calibre to restore automatic mirroring. The calibre.library_path and calibre.binary_path settings are unchanged.

Don't miss a new bindery release

NewReleases is sending notifications on new releases.