Skip to content

Releases: SiDtheTurtle/SleeveNotes

v1.11.0

Choose a tag to compare

@SiDtheTurtle SiDtheTurtle released this 12 Sep 11:46
d623702

Added

  • Barcode search for Add Record: enter a barcode to search Discogs and pick the matching pressing, instead of needing the release ID (part 1 of #91 — camera scanner to follow in a later release)

Backend

  • New GET /api/discogs/search endpoint (?barcode=, ?q=, type=release, per_page=25)

v1.10.0

Choose a tag to compare

@SiDtheTurtle SiDtheTurtle released this 30 Aug 21:39
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

v1.9.2

Choose a tag to compare

@SiDtheTurtle SiDtheTurtle released this 28 Apr 18:03
78fa1dd
  • fix: apply clean artist names setting to wishlist views (#75)

v1.9.1

Choose a tag to compare

@SiDtheTurtle SiDtheTurtle released this 26 Apr 17:56
6de90c2
  • Fix wishlist table thumbnail column expanding too wide (#72)

v1.9.0

Choose a tag to compare

@SiDtheTurtle SiDtheTurtle released this 26 Apr 14:23
321f60e

This release adds API key authentication, configurable currency support, full backup/restore, and a handful of quality-of-life improvements.

New features

  • API key authentication — The app now supports an access key to restrict who can use the instance. Set it in Settings → Danger Zone; once set, all API requests require the key.

  • Configurable currency symbol — Currency is no longer hardcoded to £. Set any symbol in Settings → Display. The symbol is applied consistently across the KPI bar, record forms, and the Discogs sync diff view. During collection sync, if Discogs prices use a different symbol the diff highlights a currency mismatch rather than silently treating them as equal.

  • Database and image backup/restore — Settings → Data now exposes four export buttons: CSV (existing), DB snapshot, image cache ZIP, and an all-in-one archive. Restore equivalents live in Settings → Danger Zone. Handy before upgrades or migrations.

  • Sticky top bar — The toolbar and KPI bar now stay fixed at the top of the page when scrolling through long collections.

Improvements

  • Sync diff now shows richer change annotations — the original Discogs value is shown verbatim alongside the proposed SN value, making it clearer what will actually change and in which direction.
  • Green colouring removed from the Discogs column in the diff view (it implied Discogs was "more correct").

Bug fixes

  • Fixed group-by-artist header row colspan being one column short, causing a misaligned table header.

What's Changed

Full Changelog: v1.8.0...v1.9.0

v1.8.0

Choose a tag to compare

@SiDtheTurtle SiDtheTurtle released this 25 Apr 16:40
eb457f9

What's Changed

Full Changelog: v1.7.0...v1.8.0

v1.7.0

Choose a tag to compare

@SiDtheTurtle SiDtheTurtle released this 23 Apr 16:15
166d778

A better experience everywhere, including offline. The wishlist now has its own prominent place in the navigation alongside your collection, and both views support the cover art tile layout. Display settings no longer change as you toggle them — they apply when you hit Save.

SleeveNotes also works much more usefully when you're away from home. Your collection and wishlist load from cache even if the server is unreachable. You can search for records on Discogs, add them to your wishlist, and edit wishlist notes and fulfilled status — all offline. Everything syncs automatically when your server comes back online. Pull-to-refresh no longer shows a browser error page.

v1.6.2

Choose a tag to compare

@SiDtheTurtle SiDtheTurtle released this 23 Apr 13:43
3812c25

Bug Fixes

Custom cover images no longer reset after a sync or refresh (#29)

If you had set a record's cover to a non-default Discogs image, syncing your collection or fetching Discogs metadata in the edit form would silently reset it back to image 1.

All three refresh paths now consistently preserve your cover choice. The manual per-record refresh button was already correct — this release brings the collection sync background task and the Discogs metadata fetch into line.

v1.6.1

Choose a tag to compare

@SiDtheTurtle SiDtheTurtle released this 23 Apr 13:24
dec0fde

Bug Fixes

Tracklist and images now refresh for all synced records (#24)

When syncing your Discogs collection, SleeveNotes now re-fetches tracklists and cover images for all records touched by the sync — not just newly added ones.

Previously, existing records that were updated during a sync would never have their tracklist or images refreshed in the background. Since Discogs tracklists are community-maintained and get filled in after a release ships (positions, durations, track types), this meant records added before tracklist data was available would stay blank indefinitely, even after syncing.

To backfill missing tracklists on your existing collection: open Settings → Discogs → Sync Collection. All records will be queued for a background refresh automatically.

v1.6.0

Choose a tag to compare

@SiDtheTurtle SiDtheTurtle released this 23 Apr 10:36
fbcd550

Adds two-state offline detection. The app now distinguishes between no internet (Read-Only Mode) and server unreachable (Offline Mode), with appropriate banners and write actions disabled in both states. Includes GET /api/health endpoint and event-driven reachability probing with backoff polling.