chore(release): v0.12.2
🏗️ 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 27s
📱 Test APK / Build test APK (push) Successful in 32m30s
Publish Documentation / Build & publish docs to gitea-pages (push) Successful in 5m56s
Build & Release / Create Release (push) Blocked by required conditions
Traceability Validation / Check Requirement Traces (push) Successful in 13s
Build & Release / Run Tests (push) Successful in 16m28s
Build & Release / Build Linux (push) Successful in 21m48s
Build & Release / Build Windows (push) Successful in 19m42s
Build & Release / Build Android (push) In progress

Two download fixes since v0.12.1: transfers longer than five minutes were
being cut off by a total request deadline and restarted from zero, and the
progress bar read "0%" for the whole of a transcode download.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-21 11:19:32 +02:00
co-authored by Claude Opus 5
parent b3228cb4f4
commit ff21c4cd44
7 changed files with 6225 additions and 4048 deletions
+33
View File
@@ -9,6 +9,39 @@ 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.12.2
Two download fixes, found together on a tablet whose films all needed their
audio re-encoded. Downloads that took longer than five minutes were being cut
off and restarted, and the progress bar sat on "0%" for the whole of a
transcode.
### 🐛 Fixes
- **Downloads longer than five minutes no longer fail.** The download worker's
HTTP client carried a *total* request deadline of five minutes — from
connect until the last byte — so every transfer longer than that was cut off
mid-body and retried. A transcode cannot be resumed (the server ignores
`Range` and starts over), so each retry threw away what had been fetched, hit
the same deadline, and after three attempts the download failed. No feature
film at transcode speed could complete; a large direct copy limped through in
five-minute slices with a backoff between each. The deadline is now a
30-second connect timeout plus a 60-second *stall* timeout that resets on
every chunk: a dead connection is still caught, a healthy transfer can run as
long as it needs. Present since the first release. (DR-289)
### ✨ Improvements
- **The progress bar moves during a transcode download.** A transcode is
produced as it is sent, with no `Content-Length`, and the bar had nothing to
measure against — it read "0%" until the file completed. The backend now
predicts the size when it resolves the download: the source's size for
`original` (the picture is copied byte-for-byte; only the audio changes), or
bitrate × runtime for a quality preset. The bar shows the estimate as
"~42%" and caps at 99% until the last byte lands; the server's own figure is
used whenever it gives one; and when there is no prediction at all the bar
is a moving band with the bytes so far, rather than a false "0%". (DR-290)
## v0.12.1
One change: the TLS library every connection to the server goes through has a