Skip to content

v1.10.0

Choose a tag to compare

@SiDtheTurtle SiDtheTurtle released this 30 Aug 21:39
· 1 commit to main since this release
40d5449

Features

  • Full offline image cache + pre-sized covers (#80). SleeveNotes now works fully offline for images: after one healthy visit, every cover in the grid, table, and detail view is cached and available with no network — only the full-size lightbox still needs a connection. On each page load the frontend hands the service worker a manifest of every image so the cache fills itself in the background (per-URL, no all-or-nothing). This is backed by two smaller derivatives generated for every cover at download time — 400px for tiles/detail/carousel, 150px for table thumbnails — so offline pages pull far less data. Existing images are backfilled once on startup and can be rebuilt on demand via Settings → Data → Rebuild Thumbnails.
  • Lightbox navigation & set-cover (#78). The full-size image lightbox now has prev/next arrows to page through a release's images, plus a set-cover action so you can promote any image to the cover without leaving the lightbox.
  • Wishlist detail navigation (#83). The wishlist detail modal gets the same prev/next arrows the collection detail modal already had — step through wishlist items in place.
  • Section is remembered across refresh (#79). Reloading the page now keeps you on Collection or Wishlist (stored in sessionStorage). Opening a fresh tab still starts on Collection.
  • Close modals with ESC (#92). Pressing ESC dismisses any open modal dialog.
  • Site footer (#90). A footer links out to the project's GitHub repo.

Fixes

  • Valuation is read-only in the edit form (#86). The Discogs-sourced valuation field can no longer be hand-edited; it's populated on fetch/refresh only.
  • Wishlist tiles respond on first tap (#98). Wishlist tiles now show the selection overlay on the first tap, matching collection tiles.
  • Compose project name pinned to sleevenotes (#88). See upgrade note below.

⚠️ Upgrade note — Docker Compose project name (#88)

compose.yml now pins name: sleevenotes. Previously the project name was inferred from the deployment directory's name, which meant a second Compose stack in the same directory running docker compose up --remove-orphans could delete the SleeveNotes container.

Potential impact depends on where you deploy from:

  • You deploy from a directory called sleevenotes / a repo clone (SleeveNotes/): no action needed — the pinned name already matches the inferred one.
  • You deploy from a differently-named directory (e.g. ~/docker/vinyl/): on your first docker compose up after upgrading, the project name changes and you may hit:
    • A one-time container name conflict (the old container still carries the old project label). Resolve with:
      docker rm -f sleevenotes && docker compose up -d
      
      No data is lost — the sleevenotes_data volume is re-attached by its explicit name.
    • A harmless cosmetic warning on every subsequent up: "volume sleevenotes_data was created by a different Compose project". The volume and its data are fine. To silence it, either declare the volume as external: true in your local compose.yml, or create a fresh volume under the new project name and copy the data across.

Internal

  • API regression test suite — 65 tests (#89). First slice of the automated regression suite (#81); covers the API surface. Full functional/UI regression coverage remains to be built, so #81 stays open.

What's Changed

Full Changelog: v1.9.2...v1.10.0