-
4996727ca9
merge: enforce CI gates the contributor rules already required (D1, A3, A4, D2)
dtourolle
2026-08-16 23:00:58 +02:00
-
-
e3cdb12967
merge: traceability matrix repair (A1, A2, A4)
dtourolle
2026-08-16 23:00:35 +02:00
-
-
-
-
2d21f092d5
fix(android): stop the webview undoing the network security config
dtourolle
2026-08-16 22:59:47 +02:00
-
-
-
ebf9a99b80
docs(traces): tag the twelve "Done but untraced" requirements, and stop the matrix over-reporting
dtourolle
2026-08-16 22:58:55 +02:00
-
-
38dd1129e5
feat(security): set a restrictive CSP and scope the asset protocol to thumbnails
dtourolle
2026-08-16 22:58:53 +02:00
-
-
-
4c9361d020
fix(android): stop backing up credentials no key can ever open
dtourolle
2026-08-16 22:56:32 +02:00
-
-
-
b9dab56379
ci: enforce the checks the contributor rules already required
dtourolle
2026-08-16 22:51:44 +02:00
-
-
73641e192c
chore(release): 0.7.0
v0.7.0
dtourolle
2026-08-16 22:28:05 +02:00
-
be907b4945
fix(home): stop Next Up repeating Continue Watching
dtourolle
2026-08-16 22:18:06 +02:00
-
3b9a8ad695
test(player): pin the native-video default and the opt-out that must survive it
dtourolle
2026-08-16 22:16:39 +02:00
-
ab95f5013d
feat(player): make native Android video the default
dtourolle
2026-08-16 22:14:43 +02:00
-
5e8efa252e
fix(player): restart the native renderer when returning from background audio
dtourolle
2026-08-16 22:10:14 +02:00
-
1285908733
fix(android): paint the letterbox bars, so stale pixels stop surviving in them
dtourolle
2026-08-16 21:51:14 +02:00
-
8e98e1c37a
test(player): answer the commands the tap-surface tests actually render
v0.6.0
fix/android-native-video-visible
dtourolle
2026-08-16 21:20:55 +02:00
-
440d7a01a9
chore(release): 0.6.0
dtourolle
2026-08-16 21:14:08 +02:00
-
dccb5f53dd
fix(android): stop the rotation cross-fade replaying the old video frame
android-native-video-2026-08-16
dtourolle
2026-08-16 18:46:15 +02:00
-
c142568230
fix(player): make transport reach the player that is actually rendering
dtourolle
2026-08-16 18:03:22 +02:00
-
95129d04a3
fix(player): make Android native video actually visible, and usable
dtourolle
2026-08-16 15:11:55 +02:00
-
f0f98feae8
fix(player): strip the burn-in the server puts back into its own transcode URL
dtourolle
2026-08-16 14:56:40 +02:00
-
d9e1e256e9
fix(auth): trim the username before authenticating
dtourolle
2026-08-16 11:31:34 +02:00
-
42868fc2e6
feat(login): reveal-password toggle, and stop the keyboard editing credentials
dtourolle
2026-08-16 11:31:27 +02:00
-
c0c6c5023e
fix(player): resume a transcoded video by seeking, not by asking for a stream that starts mid-item
dtourolle
2026-08-16 11:08:42 +02:00
-
521acc75fd
build(android): add a side-by-side release build for validating R8
dtourolle
2026-08-16 10:42:59 +02:00
-
886cbcb29a
docs(changelog): backfill every release, and date each fixed defect
dtourolle
2026-08-16 10:40:33 +02:00
-
2cc39cd7fd
build(android): install the debug build alongside release as its own app
dtourolle
2026-08-16 10:36:48 +02:00
-
e457a9884c
chore(release): 0.5.5
dtourolle
2026-08-16 10:23:38 +02:00
-
de1c13e72f
fix(player,reporting): report real positions, and count an audio-only episode as watched
dtourolle
2026-08-16 10:23:00 +02:00
-
5096c01960
fix(player): restore the subtitle sidecar work dropped by the previous commit
dtourolle
2026-08-16 10:20:22 +02:00
-
2d67b0e4f5
fix(player): give every transcode its own play session, and stop the one it replaces
dtourolle
2026-08-16 09:47:27 +02:00
-
13264e225b
fix(player): never let the server burn a subtitle in, and never offer one we cannot draw
dtourolle
2026-08-16 09:47:09 +02:00
-
041969f446
fix(player): stop the server burning subtitles into the picture
dtourolle
2026-08-16 09:23:39 +02:00
-
1a9805f0f3
fix(downloads): queue the whole album, and make every queued track findable offline
dtourolle
2026-08-16 09:20:32 +02:00
-
82b6982d68
fix(player): use a speedometer icon for the streaming quality selector
dtourolle
2026-08-16 08:25:43 +02:00
-
3363ff7f08
Merge branch 'master' into worktree-mosaic-library
dtourolle
2026-08-16 00:51:46 +02:00
-
-
9858b7cb92
chore(release): 0.5.4
v0.5.4
dtourolle
2026-08-16 00:46:17 +02:00
-
f46d7bf676
fix(player): make native Android video opt-in again — it shipped as audio with no picture
dtourolle
2026-08-16 00:42:56 +02:00
-
74bffea650
Merge branch 'fix/autoplay-issues'
dtourolle
2026-08-16 00:14:25 +02:00
-
-
7e1f0e0547
Merge branch 'master' into worktree-mosaic-library
dtourolle
2026-08-16 00:06:15 +02:00
-
-
-
-
99ceeadb83
docs: regenerate the traceability matrix
v0.5.3
dtourolle
2026-08-16 00:04:58 +02:00
-
e015c4c9b1
Merge branch 'master' into worktree-mosaic-library
dtourolle
2026-08-16 00:04:26 +02:00
-
-
7387f35c7e
docs(player): correct the stale "native video defaults to off" comments
dtourolle
2026-08-16 00:00:10 +02:00
-
-
0861523015
feat(library,home): lay libraries out as a mosaic, with favourites per category
dtourolle
2026-08-15 23:57:09 +02:00
-
ac4fccd499
fix(downloads,playback): re-encode undecodable audio and carry the media source through
dtourolle
2026-08-15 23:54:00 +02:00
-
a5535f2941
fix(downloads): stop libraries mixing, make pause/resume real, reap partials, end bitrate corruption
dtourolle
2026-08-15 23:52:02 +02:00
-
-
d49d027020
docs(player): allocate UR-074/DR-162 for the streaming bitrate cap
dtourolle
2026-08-15 16:39:53 +02:00
-
9c352fdb77
Merge branch 'fix/android-versioncode-floor'
dtourolle
2026-08-15 16:35:27 +02:00
-
-
dda2ff86a3
feat(player): cap streaming bandwidth with a user-chosen bitrate ceiling
dtourolle
2026-08-15 16:34:56 +02:00
-
8ad3dc5c4f
fix(android): raise the versionCode floor so 0.5.x can install over v0.5.2
dtourolle
2026-08-15 16:31:38 +02:00
-
9f5f57cba4
fix(ui,player): scroll restore, immersive fullscreen, watched toggle, handoff timeline, PiP
dtourolle
2026-08-15 16:26:31 +02:00
-
-
50934e2ac6
ci(android): ship Gradle in the builder image instead of downloading it
v0.5.2

dtourolleandClaude Opus 5
2026-08-13 07:47:43 +02:00
-
8fbc080733
Merge branch 'fix/android-resume-position'
v0.5.1

dtourolleandClaude Opus 5
2026-08-12 22:14:44 +02:00
-
-
ba5fd55204
fix(sync): mirror the server's watch position so resume crosses devices (DR-155)

dtourolleandClaude Opus 5
2026-08-12 22:14:20 +02:00
-
fec4b7ae8c
Merge branch 'fix/download-bitrate-param' into HEAD
dtourolle
2026-08-12 20:11:12 +02:00
-
-
2ca2174cea
fix(player): return volume control to the local speaker when a remote session stops

dtourolleandClaude Opus 5
2026-08-12 20:09:17 +02:00
-
0ca2857c3a
fix(catalog): show a new album once in Recently Added, not once per track

dtourolleandClaude Opus 5
2026-08-12 20:07:57 +02:00
-
1f32e4040b
Merge branch 'fix/home-library-card-heights' from origin

dtourolleandClaude Opus 5
2026-08-12 19:21:18 +02:00
-
-
e4632bb2b2
fix(sync): queue a watch position the server could not be told about (DR-154)

dtourolleandClaude Opus 5
2026-08-12 19:18:11 +02:00
-
2d50744320
fix(player): resume at saved position on the Android native path

dtourolleandClaude Opus 5
2026-08-12 18:51:37 +02:00
-
-
adc460f35d
fix(downloads): honor the selected bitrate (videoBitRate, capital R)
fix/download-bitrate-param

dtourolleandClaude Opus 5
2026-08-12 18:44:54 +02:00
-
-
-
9d7cb085e9
fix(series): resume after the furthest-watched episode, not the first gap
fix/home-library-card-heights

dtourolleandClaude Opus 5
2026-08-12 18:23:26 +02:00
-
85bd227714
fix(home): uniform card heights in the Your Libraries row

dtourolleandClaude Opus 5
2026-08-12 18:13:27 +02:00
-
-
3619f71aba
build: make the git tag the single source of truth for the version (DR-153)
v0.5.0

dtourolleandClaude Opus 5
2026-08-11 21:21:58 +02:00
-
6e16f188dc
Merge branch 'master' into feat/android-native-video
dtourolle
2026-08-11 19:18:05 +00:00
-
-
-
-
8e081845d0
Merge pull request 'Feat/android native video' (#13) from feat/android-native-video into master
dtourolle
2026-08-11 19:03:45 +00:00
-
-
-
-
5fa74d9e34
docs: renumber to DR-150/151/152 after rebase onto master

dtourolleandClaude Opus 5
2026-08-11 20:56:23 +02:00
-
c480276a97
docs(spec): native video confirmed working on device

dtourolleandClaude Opus 5
2026-08-11 20:41:50 +02:00
-
ca490c34ec
docs(traceability): regenerate matrix for the native-video requirements

dtourolleandClaude Opus 5
2026-08-11 20:39:44 +02:00
-
e144e62b31
feat(player): render Android video natively behind a transparent webview (DR-150, DR-151, DR-152)

dtourolleandClaude Opus 5
2026-08-11 20:34:24 +02:00
-
-
07d10dfed7
docs(traceability): land the DR-149 requirement rows and settle a UT collision
v0.4.8
dtourolle
2026-08-11 20:11:22 +02:00
-
acddcdd6fa
fix(playback): force a transcode when the webview cannot decode the audio (DR-149, 0.4.8)
dtourolle
2026-08-11 20:07:11 +02:00
-
6a712c46cb
fix(player): send subtitle tracks to ExoPlayer on Android (UR-020)
dtourolle
2026-08-11 20:03:19 +02:00
-
211792947d
fix(player): render subtitle tracks on the Linux HTML5 path (UR-020)
dtourolle
2026-08-11 19:25:39 +02:00
-
2c3955914e
fix(playback): advertise only webview-decodable audio for video (DR-148, 0.4.7)
dtourolle
2026-08-11 19:13:46 +02:00
-
1b70926c36
feat(offline): play downloaded video, and drain the offline sync queue (0.4.6)
v0.4.6
dtourolle
2026-08-09 16:38:07 +02:00
-
7b531a40be
fix(player): pick a decodable track in the no-audio fallback (DR-146)
dtourolle
2026-08-09 15:07:18 +02:00
-
19bc265a8d
fix(player): do not start a video before audio focus is granted (DR-145)
dtourolle
2026-08-09 15:06:49 +02:00
-
cc7f1cece0
fix(player): play downloaded video offline (DR-133, DR-134)
dtourolle
2026-08-09 15:05:16 +02:00
-
a53042fe80
fix(playback): bound the device profile by the audio route's channels (DR-141)
dtourolle
2026-08-09 15:01:57 +02:00
-
db520c6551
fix(playback): stop pinning the video stream as the audio track (DR-140)
dtourolle
2026-08-09 14:47:03 +02:00
-
1ef6180776
chore(release): bump to 0.4.1
v0.4.1
dtourolle
2026-08-05 12:31:16 +02:00
-
878ac5fa59
fix(player): make lockscreen transport reach background audio (DR-097)
dtourolle
2026-08-05 12:26:25 +02:00
-
6aaa80ff92
chore(release): bump to 0.4.0
v0.4.0
dtourolle
2026-08-04 20:22:01 +02:00
-
f7bcfe521d
fix(favorites): save server favourites through to the cache (DR-115)
dtourolle
2026-08-04 20:20:36 +02:00
-
30dc3ba7f6
fix(player): recover a failed stream on Linux instead of stopping (DR-130)
dtourolle
2026-08-04 20:15:28 +02:00
-
32f8de5c91
fix(player): survive a flaky stream, and don't read 0:00 at EOF
dtourolle
2026-08-04 19:39:14 +02:00
-
62873cab3d
feat(search): answer search from a local index; tier downloads by lifetime
dtourolle
2026-08-04 17:35:17 +02:00
-
c55ff45692
fix(android): clear the system bars and display cutout (UR-066)
dtourolle
2026-08-04 14:45:10 +02:00
-
58f2506966
feat(series): land on the current episode, not season 1 (UR-062, UR-063, UR-064)
v0.3.0
dtourolle
2026-08-03 20:37:43 +02:00
-
a818fee297
fix(player): re-entering a video no longer opens the audio player (DR-100)
dtourolle
2026-08-03 18:12:37 +02:00
-
a26a853f01
fix(player): advance background audio-only episodes in the backend (UR-040)
v0.2.9
dtourolle
2026-08-02 18:10:18 +02:00
-
9d099268b9
fix(player): make the video seek bar work by touch (DR-099)
v0.2.8
dtourolle
2026-08-01 10:41:23 +02:00
-
e381d626c1
docs(requirements): UR-061/DR-092 no longer describe the removed deferral
v0.2.7
dtourolle
2026-07-30 16:13:29 +02:00
-
b12e99b7e1
fix(player): keep double-tap seek working over the play overlay (DR-098)
dtourolle
2026-07-30 15:44:38 +02:00
-
dc8b732465
fix(player): controls bar taps are not player gestures (DR-098)
dtourolle
2026-07-30 15:27:01 +02:00
-
b98a530f48
fix(player): guard the play overlay against the synthesized touch click
dtourolle
2026-07-30 15:10:59 +02:00
-
b565c4ae6f
fix(player): tap gestures act immediately, no deferral timer (DR-098)
dtourolle
2026-07-30 14:53:20 +02:00
-
79e10d7485
chore(release): bump to 0.2.3
dtourolle
2026-07-30 13:56:04 +02:00
-
a2dbde5492
debug(player): log pause reason and flatten the debug tick
dtourolle
2026-07-30 13:55:06 +02:00
-
75cd07a5c0
fix(player): decide transport in Rust for webview media (DR-097)
dtourolle
2026-07-30 13:54:41 +02:00
-
64d07b8940
chore(release): bump to 0.2.2
dtourolle
2026-07-30 13:17:29 +02:00