-
JellyTau v0.2.7
Publish Documentation / Build & publish docs to gitea-pages (push) Successful in 5m20sTraceability Validation / Check Requirement Traces (push) Successful in 16sBuild & Release / Run Tests (push) Failing after 7m23sBuild & Release / Build Linux (push) Has been skippedBuild & Release / Build Windows (push) Has been skippedBuild & Release / Build Android (push) Has been skippedBuild & Release / Create Release (push) Has been skippedreleased this
2026-07-30 14:14:16 +00:00 | 186 commits to master since this releaseFixes a family of Android video-player bugs that all shared one root
cause: multiple layers competing to decide play/pause.Player
- Tap gestures act immediately instead of deferring the first tap behind
a 300ms timer. A first tap toggles play/pause; a second tap seeks
(+30s right / -10s left) and re-toggles, so a double tap preserves the
play state. The old timer raced the compatibility click Android's
WebView synthesizes after a touch, producing a pause/unpause loop. - The compatibility click is now suppressed on every click target
layered over the video, not just the - Taps on the controls bar drive their own buttons and no longer also
fire container gestures, which had cancelled each other out and left
the bottom play/pause button dead. - The play overlay still participates in tap gestures, so double-tap
seeking keeps working while paused. - Transport authority (play/pause/toggle) moved into Rust for
webview-rendered media: the controller tracks the state the element
reports and drives it via ControlCommand, instead of the frontend
reading el.paused off the DOM. - Seek targets clamp strictly inside the media, so a skip near the end
cannot request an HLS segment past the end of the file. - An interrupted play() during HLS stall recovery is no longer reported
as a player error.
Testing
- Adds VideoPlayer.tapSurface.test.ts, which renders the real component
and dispatches real touch/click events. The previous pure-unit tests
over the gesture helpers passed throughout every one of the bugs
above, because each helper behaved as specified — the faults were in
the composition, i.e. which element receives a tap after a re-render.
Build
- scripts/build-android.sh gains --device/--abi to build only the
connected device's architecture instead of all four.
Downloads
- Tap gestures act immediately instead of deferring the first tap behind