docs(changelog): 2.3 — Pull-Stack, APK-Download-Fix, Alben-Tab-Scrollfix

Fasst die Aenderungen seit 2.2 als Release zusammen: image-basiertes
docker-compose.yml (Bauen wandert nach .dev.yml), der auf GITEA_URL
umgeschriebene APK-Asset-Download und der Alben-Tab-Fix, dazu das
veroeffentlichte versionCode 3. Am Handy bestaetigt: Update-Dialog,
In-Place-Install und die Scrollpositionen funktionieren.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
marcandClaude Opus 5 committed 2026-09-03 21:36:59 +02:00
1 parent e91708bc97
commit 9f0d4c3153
1 file changed
+28 -8
+28 -8
View File
@@ -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.
---