Skip to content

Releases: ListenUpApp/ListenUp

v0.8.6

Choose a tag to compare

@github-actions github-actions released this 09 Aug 02:48

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

Choose a tag to compare

@github-actions github-actions released this 07 Aug 18:47

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

Choose a tag to compare

@github-actions github-actions released this 05 Aug 01:34

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

Choose a tag to compare

@github-actions github-actions released this 01 Aug 02:39

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

Choose a tag to compare

@github-actions github-actions released this 31 Jul 22:23

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

Choose a tag to compare

@github-actions github-actions released this 31 Jul 17:36

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

Choose a tag to compare

@github-actions github-actions released this 26 Jul 14:05

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...
Read more

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 28 Mar 01:29
1f25d83
🐛 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

Choose a tag to compare

@github-actions github-actions released this 19 Feb 16:42
🐛 Fix ABS upload phase showing Analyzing before upload completes

v0.5.1

Choose a tag to compare

@simonhull simonhull released this 17 Feb 21:10

Bug Fix

  • Declare foregroundServiceType="dataSync" on WorkManager's SystemForegroundService in manifest — fixes crash when ABS upload worker starts foreground service