• v0.5.3 99ceeadb83

    v0.5.3
    🏗️ Build and Test JellyTau / Run Tests (push) Failing after 5m7s
    🏗️ Build and Test JellyTau / Android Compile Check (push) Skipped
    Publish Documentation / Build & publish docs to gitea-pages (push) Successful in 5m26s
    Traceability Validation / Check Requirement Traces (push) Successful in 18s
    Build & Release / Run Tests (push) Failing after 5m5s
    Build & Release / Build Linux (push) Skipped
    Build & Release / Build Windows (push) Skipped
    Build & Release / Build Android (push) Skipped
    Build & Release / Create Release (push) Skipped

    dtourolle released this 2026-08-15 22:30:00 +00:00 | 140 commits to master since this release

    Bug-fix release, plus a user-set streaming bandwidth ceiling.

    New

    • Streaming bandwidth cap: choose a ceiling once and every video honours it,
      live TV included, surviving a restart; a single video can be moved to another
      ceiling from the player, resuming where it was (UR-074).
    • Mark as watched — or unwatched — for an episode, season, series or movie, from
      where it is shown. Works offline; a season or series covers its episodes
      (UR-073).

    Fixed

    • Downloads no longer mix media: opening a downloaded library listed every
      downloaded item on the server, films under Music and albums under TV.
    • Pause and resume work. Neither did anything before: no cancellation existed in
      the download stack, so a paused download ran on and overwrote its own row, and
      a resumed one sat until something unrelated pumped the queue.
    • Downloads at a chosen bitrate are no longer corrupted by their own retries. A
      transcode ignores Range and answers 200 with the whole stream; the worker
      appended it to what was already on disk, so each retry concatenated another
      full copy.
    • Partial files are reaped. The worker wrote movie.part while every cleanup
      path deleted movie.mp4.part, so cancelled and failed downloads leaked their
      partials indefinitely.
    • Background-audio handoff no longer loses time. The handoff plays a stream
      whose zero is the point the screen was locked, and that offset was applied
      only where a position was displayed — so progress reported to Jellyfin, and
      the position the app resumed from, were short by however far in you locked it.
    • Full-screen video on Android hides the system bars. requestFullscreen() cannot
      reach the Activity window from inside a WebView, so the control did nothing
      while the bars stayed over the video.
    • Picture-in-picture works. It required a native video surface that the shipping
      configuration never had, so the button could not work however it was pressed.
    • Pages no longer inherit the previous page's scroll position, and Back returns
      to where you were.
    • Season headers no longer overlap their buttons on narrow screens.
    • Favourites is a labelled destination in the library grid rather than an
      unlabelled icon.
    • Android versionCode: v0.5.2 shipped 5002, but the stamping formula produced
      1503 for 0.5.3 — lower, so Android refused the update as a downgrade. Every
      0.5.x release built from it was un-installable for anyone on v0.5.2.

    Note

    • Native Android video decoding is now the default (it backs picture-in-picture).
      It can be turned off in Settings › Native Video if video or seeking misbehaves.
    Downloads