chore(release): v0.13.1
🏗️ Build and Test JellyTau / Run Tests (push) Skipped
🏗️ Build and Test JellyTau / Android Compile Check (push) Skipped
🏗️ Build and Test JellyTau / Supply Chain (push) Successful in 3m56s
📱 Test APK / Build test APK (push) Canceled after 9m51s
Publish Documentation / Build & publish docs to gitea-pages (push) Canceled after 0s
Traceability Validation / Check Requirement Traces (push) Successful in 13s
Build & Release / Run Tests (push) Successful in 10m30s
Build & Release / Build Linux (push) Successful in 14m30s
Build & Release / Build Windows (push) Successful in 10m56s
Build & Release / Build Android (push) Successful in 20m10s
Build & Release / Create Release (push) Successful in 33s

Pages answer from the cache again: database reads no longer wait behind
writes, the listing query uses its indexes, and a cache answer races the
server instead of waiting it out. Plus the series page's single season
walk and the background-audio return fix.
This commit is contained in:
2026-09-24 03:59:10 +02:00
parent 21f24dd998
commit e21ddae737
6 changed files with 2890 additions and 2562 deletions
+30
View File
@@ -9,6 +9,36 @@ generated trace matrix lives in [docs/traceability.md](docs/traceability.md).
For how long each fixed defect had been shipping before it was found, see
[docs/defect-windows.md](docs/defect-windows.md).
## v0.13.1
Pages answer from the cache again. Found on a Fairphone, where opening a
series took one to ten seconds even though everything on it was already cached.
### ⚡ Performance
- **Series and library pages load from the cache.** Frasier's season and
episode lists now appear in 34133 ms on a Fairphone 5; they took 6001030 ms
each, waiting on the server. Three causes stacked up. Every database read
waited behind every write, because one connection served the whole app. The
listing query scanned the entire cached catalogue whatever page it was for.
And a cache answer that took longer than 100 ms was ignored until the server
replied. Reads now have their own connections, the query uses its indexes
(about 50× faster on a 100k-item cache), and the cache and the server race:
whichever answers first with something to show wins. (DR-012, DR-013)
- **A series page walks its seasons once, in parallel.** It used to walk all of
them twice, one after another. (DR-295)
### 🐛 Fixes
- **Coming back from background audio opens the right episode.** If an episode
ended while the app was in the background, returning to it reloaded the
*previous* episode at the new one's position. (DR-296)
- **Offline changes keep their own identity.** Two favourites or progress
updates queued at the same moment could be handed each other's queue entry,
so syncing one marked the other as done. (DR-014)
- **Catalog caching no longer switches off data-integrity checks for the rest
of the app** while it saves a page. (DR-012)
## v0.13.0
Android plays and downloads the original file, and offline mode works without