diff --git a/CHANGELOG.md b/CHANGELOG.md index 8628ba0..021d602 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -64,17 +64,37 @@ Versioning: two-part `MAJOR.MINOR` — each release bumps the minor (features an --- -## [Unreleased] +## [2.3] — 2026-09-03 -### Changed -- **APK-Release auf versionCode 3** — enthält den Alben-Tab-Fix unten und erstmals die - Artist-Seiten-/Overlay-Scrollerinnerung (die steckte bis dahin in keinem gebauten APK). +A deployment-and-delivery release: production **pulls pre-built images** instead of compiling on the +server, the **APK download works again** (it had been broken by Gitea's own link host), and the +scroll memory from 2.2 finally behaves on the Alben tab — plus it reaches an actual build. + +### Added +- **Pull-based production stack** — `docker-compose.yml` now references + `${REGISTRY}/novasonic-frontend|-backend|-scrobble:${TAG:-latest}` and builds nothing on the host: + `docker compose pull && docker compose up -d`. Building locally from the Dockerfiles moved to + `docker-compose.dev.yml` (no registry needed there). Images are pushed from the dev machine with + `npm run push-images`. A `.dockerignore` keeps the frontend build context to what `vite build` + needs, so `android/`, `backend/` and `.git` no longer travel into the image. ### Fixed -- **Alben-Tab sprang beim Zurück wieder nach oben** — ein `LaunchedEffect(albumSort)` scrollte auf - Position 0. Der feuert aber nicht nur beim Sortierwechsel, sondern auch bei jedem Neu-Composen, - also genau beim Zurückkommen aus einem Album: die gemerkte Position wurde sofort verworfen. Das - Hochscrollen sitzt jetzt in `LibraryViewModel.setAlbumSort()` und läuft nur bei echtem Wechsel. +- **APK download failed with "Keine APK hinterlegt"** — Gitea builds `browser_download_url` from its + own `ROOT_URL`, which pointed at a host the backend cannot reach (a leftover from an earlier + network). The API call succeeded, so the download button appeared, but fetching the asset ran into + the dead address and fell back silently to a local file that does not exist. Asset and redirect + URLs are now rewritten onto `GITEA_URL`; if the Gitea path still fails, a warning log and the 404 + body name both sources that were tried instead of claiming no APK exists. +- **Alben tab jumped back to the top on Back (Android)** — `LaunchedEffect(state.albumSort)` scrolled + to item 0. That effect runs on first composition too, not only on a sort change, so returning from + an album discarded the position the ViewModel had correctly kept. Scrolling to the top now happens + in `LibraryViewModel.setAlbumSort()`, on a real sort change only. + +### Changed +- **APK release at versionCode 3** — carries the Alben-tab fix above and, for the first time in a + published build, the artist-page and "Alle anzeigen" overlay scroll/search memory (2.2 shipped the + code, but the release APK predated it). Signed with the established debug key, so it installs + in place over versionCode 2 and app data survives. ---