Releases: ListenUpApp/ListenUp
Releases · ListenUpApp/ListenUp
Release list
v0.8.6
What's Changed
- 👷 ci: add the web seam check for :contract and :app:sharedLogic by @simonhull in #1258
- ✨ feat(webApp): back the client database with SQLite wasm over OPFS by @simonhull in #1259
- 🐛 fix(iosApp): CarPlay scene-connect crashes, stuck now-playing state, chapter-scoped mini player by @simonhull in #1261
- 🐛 fix(sharedUI): Android playback loudness + Auto covers and browse root by @simonhull in #1263
Full Changelog: v0.8.5...v0.8.6
v0.8.5
What's Changed
- 🐛 fix(sharedUI): auto-rewind seeks the transport player, not the chapter window by @simonhull in #1251
- ✨ feat(iosApp): scope now-playing to the current chapter by @simonhull in #1252
- 🐛 fix(sharedUI): five playback-recovery bugs from the invariant sweep by @simonhull in #1253
- ✨ feat(iosApp): CarPlay — scene, and continue-listening browse by @simonhull in #1254
- 🔥 chore(sharedUI): drop browse nodes for features we don't have by @simonhull in #1255
- 🐛 fix(shared): resume playback in seconds, not a minute, after a long idle by @simonhull in #1256
- 📦 chore(sharedUI): adopt Media3 1.11 by @simonhull in #1257
Full Changelog: v0.8.4...v0.8.5
v0.8.4
What's Changed
- build(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #1229
- 🐛 Quote FTS tokens so punctuated names match by @simonhull in #1230
- 🐛 fix(server): dedupe same-book credits on contributor/series merge by @simonhull in #1231
- 🐛 fix: batch — test floors, collections, metadata names, now-playing by @simonhull in #1234
- ✨ feat: merge-or-keep prompt when a rename collides with an existing author by @simonhull in #1235
- ✨ feat(shared): apply auto-rewind on in-session pause→resume by @simonhull in #1237
- ✨ feat(sharedUI): chapter-scoped system playback surfaces (Android Auto, notification, lock screen) by @simonhull in #1241
- 🐛 fix(sharedUI): activate the book when playback starts outside the app by @simonhull in #1242
- ✅ test(quality): retry poisoned victims of prior-test leaks by @simonhull in #1243
- ✨ feat(sharedUI): Android Auto browse polish — pagination, typed sign-in error, grid hints by @simonhull in #1244
- 🐛 fix(sharedUI): stop playback failures from stranding the listener by @simonhull in #1247
- 🐛 fix(sharedUI): initialize WorkManager before Koin starts by @simonhull in #1248
- ♻️ refactor(sharedUI): extract the session callback from PlaybackService by @simonhull in #1249
- ✅ test(sharedUI): backfill the tests blocking 0.8.4, and extend Kover to the client modules by @simonhull in #1250
Full Changelog: v0.8.3...v0.8.4
v0.8.3
What's Changed
- 🐛 fix(sharedUI): cast scallop shadows from a convex shape (ANR) by @simonhull in #1228
Full Changelog: v0.8.2...v0.8.3
v0.8.2
What's Changed
- 🐛 fix(server): enforce INBOX exclusivity and serialise the membership reconcile by @simonhull in #1227
Full Changelog: v0.8.1...v0.8.2
v0.8.1
What's Changed
- 🐛 fix(androidApp): keep the kotlinx.rpc surface from R8 by @simonhull in #1224
Full Changelog: v0.8.0...v0.8.1
v0.8.0
What's Changed
- W4 Item B: split BookEntity.audioFilesJson into audio_files junction by @simonhull in #253
- W6 Phase C — ProgressPuller delta-sync + transactional seams + drift #2/#3 closed by @simonhull in #254
- W6 Phase D — BookPuller D11 cleanup + BookRelationshipWriter extraction by @simonhull in #255
- W6 Phase E — SessionRepository rewrite + BookDetail/BookReaders VM boundary (Bug 1 fix) by @simonhull in #256
- W6 Phase F — SSoT + mapper test + N+1 + ownership triage + dead code + Shelf pending-op by @simonhull in #257
- W6 Phase G — Book CQS type split (BookListItem + BookDetail) by @simonhull in #258
- W7 Phase B — PlaybackPositionRepository expansion + ListeningEventRepository extraction by @simonhull in #260
- W7 Phase C1 — ProgressTracker write-path collapse + reactive SessionState by @simonhull in #261
- W7 Phase C2 — ProgressTracker read-method migration by @simonhull in #262
- W7 Phase D — Defensive cleanup by @simonhull in #263
- W7 Phase E1 — PlaybackController command-side seam by @simonhull in #264
- W7 Phase E2.1 — PlaybackManager read-side foundation by @simonhull in #265
- W7 Phase E2.2.1 — NowPlayingState sealed hierarchy + combine().stateIn migration by @simonhull in #266
- W7 Phase E2.2.2 — Playback VM relocation to shared/presentation/ + drifts #29 #31 by @simonhull in #267
- W7 Phase E2.2.3 — Playback VM consolidation by @simonhull in #268
- W7 Phase E2.2.4 — Consolidated VM integration tests + drift #34 by @simonhull in #269
- 📦 W8 Phase A — move download to shared/androidMain + hide Desktop UI by @simonhull in #270
- ♻️ W8 Phase B — repository unification + sealed BookDownloadStatus + AppResult by @simonhull in #271
- ♻️ W8 Phase C — Ktor migration of DownloadWorker by @simonhull in #272
- 🐛 W8 Phase D — Bug 4 fix (WAITING_FOR_SERVER + SSE re-enqueue) by @simonhull in #273
- W8 Phase E — Defensive cleanup (Finding 08 D6/D9/D10/D11/D12 + DAO TEXT/ordinal fix) by @simonhull in #274
- W8 Phase Z1 — sync drift sweep by @simonhull in #275
- W8 Phase Z2 — defensive sweep by @simonhull in #276
- W8 Phase Z3 — PlaybackPositionRepository BookId + AppResult retype by @simonhull in #277
- ✨ Server Phase 0 Foundations — :server module on Ktor CIO + cross-module RPC by @simonhull in #278
- ✨ W9 Phase A — mechanical Nav 3 conformance by @simonhull in #279
- Phase 1 — Auth: kotlinx.rpc contract end-to-end on Kotlin server by @simonhull in #280
- Phase 2 — Scanner: pipeline + watcher + RPC/REST/SSE by @simonhull in #281
- Phase 3a — AppError unification + Konsist rules + Phase 2 sweep by @simonhull in #282
- feat(error): Phase 3.5 — unify data-layer error contract on AppResult (Task 27d) by @simonhull in #283
- ✨ embeddedmeta Kotlin port + Analyzer enrichment by @simonhull in #284
- ✨ Phase 4 — multi-file chapter synthesis by @simonhull in #285
- ✨ RPC Exception Guard — KSP-generated Guarded decorators by @simonhull in #286
- ✨ Sync Foundation — server-side substrate for cross-domain sync by @simonhull in #287
- ✨ Client Sync Renovation — layered engine consuming Sync Foundation contract (Tags validator) by @simonhull in #288
- 🔒 Sync Engine Hardening — 7 high + selected medium fixes from PR #287 + #288 reviews (Books-A pre-phase) by @simonhull in #289
- 🐛 fix(shared): acquire PlaybackController on NowPlayingViewModel init by @simonhull in #290
- Fix Koin constructor cycle crashing app on launch by @simonhull in #291
- Fix WorkManager init-ordering crash on app launch by @simonhull in #292
- Phase 5 — Android 17 Readiness (5A + 5B + 5C) by @simonhull in #293
- Standardise composeApp tests on Kotest + fill coverage gaps by @simonhull in #294
- Bump Compose Multiplatform to 1.11.0 + dependency tidy by @simonhull in #295
- Android App Quality — Checkpoint A: startup performance by @simonhull in #296
- Android App Quality — Checkpoint B: accessibility by @simonhull in #297
- Android App Quality — Checkpoint C: Baseline Profile by @simonhull in #298
- composeApp/androidApp followup cleanup — 7 tracked items by @simonhull in #299
- ✨ Books-A — schema + persistence + RPC + sidecars + client read-path lit up by @simonhull in #300
- ⬆️ chore(deps): bump 7 dependencies by @simonhull in #301
- ♻️ refactor(shared): extract PlaybackPreparer from PlaybackManagerImpl by @simonhull in #302
- ✅ test(shared): migrate Books-domain tests to Kotest by @simonhull in #303
- ♻️ refactor: unify datetime on kotlin.time + KMP-safety guard by @simonhull in #304
- ✨ feat(server): demo server with seeded synthetic library by @simonhull in #305
- 🐛 fix: Books-A resilience addendum (6 :shared resilience gaps) by @simonhull in #306
- ♻️ Rebuild the iOS non-UI Swift layer against the current KMP contract by @simonhull in #307
- ⬆️ chore(iosApp): migrate iosApp + iosAppTests to Swift 6 strict concurrency by @simonhull in #308
- ♻️ refactor(build): decompose :shared into :contract, :sharedLogic, :sharedUI by @simonhull in #309
- ✅ test(sharedLogic): client Koin-graph e2e instantiation check by @simonhull in #310
- ✨ Scanner Polish — resilience contract, scan-warning advisory, precedence + cover-cache config by @simonhull in #311
- ✨ feat(iosApp): rebuild the audiobook Live Activity over a shared ListenUpActivityKit package by @simonhull in #312
- ♻️ refactor(iosApp): rename the iOS app and targets to ListenUp by @simonhull in #313
- 🔥 chore(sharedUI): drop redundant androidMain navigation3-viewmodel dependency by @simonhull in #314
- ✨ Books-B1 — contributors & series as syncable domains by @simonhull in #315
- ✨ Playback P1 — audio serving + per-user position sync by @simonhull in #316
- ✨ Playback P2 — listening events + materialized user stats by @simonhull in #317
- ✨ Playback P3 — stats / leaderboard / readers / per-book history UI rebuild by @simonhull in #318
- Books-B2a — Audible/iTunes metadata + cover storage + unified FTS5 search by @simonhull in #319
- Books-B2b — client metadata rewire + audit pass by @simonhull in #320
- chore: quality cleanup — SQLite WAL, sessions, logging, dead code by @simonhull in #321
- Libraries — multi-library + multi-folder substrate + scanner generalization + onboarding wizard by @simonhull in #322
- fix(shared): Continue Listening reliability — trust isFinished, SQL filter-then-limit, race elimination, loading placeholders by @simonhull in #323
- feat(server): PlaybackProgressService — listProgress, getProgressBatch, getRecentlyListened, getCompletedBooks by @simonhull in #324
- feat(server): Tags — TagService RPC + slug normalization + book_tags junction + tag FTS5 search by @simonhull in #325
- Client audit response: iOS hygiene, Android hardening, perf by @simonhull in #326
- Books-C1: book/contributor/series user-edit RPC + cover delete + ETag by @simonhull in https://github.com/ListenUpApp/L...
v0.6.0
🐛 Fix loading screen on resume and mini player visibility (#249) * 🐛 Fix mini player not showing by sharing NowPlayingViewModel instance * 🐛 Increase app resume threshold to 30 minutes and add tests * 🎨 Fix Spotless formatting in AppStartupViewModelTest
v0.5.2
🐛 Fix ABS upload phase showing Analyzing before upload completes