-
635afe2d1e
chore(updater): manifest for v0.14.0
updater
JellyTau CI
2026-09-25 10:07:48 +00:00
-
4b4e1735da
docs: publish site from
a67452bc
gitea-pages
gitea-actions
2026-09-25 09:10:29 +00:00
-
a67452bc80
chore(release): v0.14.0
master
v0.14.0
dtourolle
2026-09-25 04:19:06 -04:00
-
1677f5f299
refactor(player): delete the webview video path; mpv selects its own tracks
dtourolle
2026-09-24 23:11:17 -04:00
-
bb3ab1edd7
feat(windows): mpv draws Windows video into the app window
dtourolle
2026-09-24 22:42:42 -04:00
-
4daf172834
feat(windows): mpv plays audio on Windows, with libmpv shipped in the installer
dtourolle
2026-09-24 22:25:31 -04:00
-
9d9d81bef3
fix(player): mpv draws all Linux video, and no longer runs text from a URL
dtourolle
2026-09-24 20:38:32 -04:00
-
fd1277746d
chore(release): v0.13.3
v0.13.3
dtourolle
2026-09-24 07:40:35 -04:00
-
d7136aef48
fix(library): resuming the app no longer blanks the page on screen
dtourolle
2026-09-24 07:40:14 -04:00
-
73fd8a1dfe
chore(release): v0.13.2
v0.13.2
dtourolle
2026-09-24 04:47:07 +02:00
-
a676f4aba8
perf(series): the episode list no longer waits on the server
dtourolle
2026-09-24 04:45:44 +02:00
-
c0545a245f
perf(db): one logical container per item, indexed; no whole-table reads
dtourolle
2026-09-24 04:45:44 +02:00
-
e21ddae737
chore(release): v0.13.1
v0.13.1
dtourolle
2026-09-24 03:59:10 +02:00
-
21f24dd998
perf(db): reads no longer wait behind writes; pages answer from cache
dtourolle
2026-09-24 03:58:04 +02:00
-
1fb5f070c8
fix(player): return from background audio onto the episode it advanced to
dtourolle
2026-09-24 03:45:59 +02:00
-
f6efa7208a
perf(series): list a series' episodes with one concurrent season walk
dtourolle
2026-09-24 03:22:31 +02:00
-
9dd44eeada
chore(release): v0.13.0
v0.13.0
dtourolle
2026-09-22 22:23:00 -04:00
-
5259b47cf3
fix(offline): offline mode no longer needs the network
dtourolle
2026-09-22 22:22:14 -04:00
-
bed1030443
feat(android): play the original file — decode Dolby/DTS audio with FFmpeg
dtourolle
2026-09-22 22:22:05 -04:00
-
bb7d5dc01a
fix(offline): one server-only rule for both library views
dtourolle
2026-09-22 21:29:38 -04:00
-
a90de67c54
fix(ui): stack episode title under the thumbnail on narrow rows
dtourolle
2026-09-22 21:27:38 -04:00
-
b98cbfe28a
fix(offline): keep the offline banner off the full-screen player
dtourolle
2026-09-22 21:08:03 -04:00
-
0f928798d7
docs(specs): download the original and fix the audio on device
dtourolle
2026-09-22 21:00:32 -04:00
-
ff21c4cd44
chore(release): v0.12.2
v0.12.2

dtourolleandClaude Opus 5
2026-09-21 11:19:32 +02:00
-
b3228cb4f4
feat(downloads): estimate a transcode's size so the progress bar moves

dtourolleandClaude Opus 5
2026-09-21 11:18:29 +02:00
-
e271874b1d
fix(downloads): replace the 5-minute total request deadline with a stall timeout

dtourolleandClaude Opus 5
2026-09-21 11:18:20 +02:00
-
24d85f3738
chore(release): v0.12.1
v0.12.1
dtourolle
2026-09-20 20:56:05 +02:00
-
1093c5bad8
fix(deps): update rustls to 0.23.45 for RUSTSEC-2026-0285
dtourolle
2026-09-20 20:53:45 +02:00
-
ed26eb881a
chore(release): v0.12.0
v0.12.0

dtourolleandClaude Opus 5
2026-09-19 12:23:41 +02:00
-
6c188a2b44
feat(login): show the backend's server-version verdict, and drop a dead route builder

dtourolleandClaude Opus 5
2026-09-08 20:10:06 +02:00
-
9e2278080d
feat(storage): remember which server generation wrote the cached catalog

dtourolleandClaude Opus 5
2026-09-08 20:09:53 +02:00
-
33e1403981
test(repository): run the online repository against a real HTTP server

dtourolleandClaude Opus 5
2026-09-08 20:09:53 +02:00
-
9bb5b44d0f
fix(auth): use the authentication spellings Jellyfin 12.0 leaves enabled

dtourolleandClaude Opus 5
2026-09-08 20:09:34 +02:00
-
8027fd5fac
feat(repository): a route table and resolved server capabilities

dtourolleandClaude Opus 5
2026-09-08 20:09:34 +02:00
-
f0c33a52c2
chore(repository): delete online_integration_test.rs, which never compiled

dtourolleandClaude Opus 5
2026-09-08 20:09:11 +02:00
-
b1844f673e
docs(specs): Jellyfin server version compatibility, and what research found

dtourolleandClaude Opus 5
2026-09-08 20:09:11 +02:00
-
4bce81a800
chore(release): v0.11.6
v0.11.6
dtourolle
2026-09-07 22:29:40 +02:00
-
65d3d912f7
fix(player): declare and enforce a lock hierarchy for PlayerController
dtourolle
2026-09-07 20:34:26 +02:00
-
192a8b3c67
fix(credentials): persist the fallback key instead of deriving an unstable one
dtourolle
2026-09-07 20:30:18 +02:00
-
747ec0161c
fix(download): stop an empty download completing and then hanging the player
dtourolle
2026-09-07 20:25:53 +02:00
-
bc92eb4dea
fix(repository): stop a slow cache read surfacing as a network error offline
dtourolle
2026-09-07 20:23:35 +02:00
-
c72ca86865
fix(storage): stop a panic poisoning the connection mutex for the whole session
dtourolle
2026-09-07 20:18:46 +02:00
-
f9e1a8e69a
fix(android): contain panics at the JNI boundary instead of aborting the process
dtourolle
2026-09-07 20:17:09 +02:00
-
d4f80a4afa
fix(storage): make each migration atomic so a partial failure can't brick the app
dtourolle
2026-09-07 20:13:46 +02:00
-
7b738002a0
fix(ci): move MIGRATION_025 above the test module
dtourolle
2026-09-07 21:13:44 +02:00
-
c41b8ec896
fix(library): record which library a cached item came from
dtourolle
2026-09-07 19:41:40 +02:00
-
dea78b89b9
test(library): pin collections, both as a library and as an item
dtourolle
2026-09-07 00:27:51 +02:00
-
368935e6f4
fix(library): scope a library listing to that library
dtourolle
2026-09-07 00:11:20 +02:00
-
c44070e720
fix(ci): don't use bash-only syntax in the APK workflow
latest
dtourolle
2026-09-05 16:25:29 +02:00
-
8ecf74a2af
fix(ci): let the Android build scripts respect a caller-set ANDROID_HOME
dtourolle
2026-09-05 14:33:33 +02:00
-
5fb9c1ff3b
ci: publish a rolling
latest APK on every push to master
dtourolle
2026-09-05 13:42:33 +02:00
-
b5a3a3b427
fix(ci): make the test-APK dispatch inputs work and stop it always publishing
dtourolle
2026-09-03 20:19:59 +02:00
-
10d77f1380
ci: publish a test APK as a pre-release for outside testers
feat/multi-user-profiles
dtourolle
2026-08-30 20:06:40 +02:00
-
03c0b5cd17
ci: build a test APK from any branch on demand
dtourolle
2026-08-30 19:48:59 +02:00
-
27a995f877
feat(profiles): manage PINs from settings
dtourolle
2026-08-30 19:42:35 +02:00
-
f902caa07f
feat(profiles): switch profile from the account menu
dtourolle
2026-08-30 19:38:53 +02:00
-
fb3d0014ef
fix(profiles): keep the picker chrome-free
dtourolle
2026-08-30 19:30:51 +02:00
-
da762da55d
feat(profiles): multi-user profiles with PIN switching
dtourolle
2026-08-30 19:03:59 +02:00
-
8a04a6fad0
chore(release): v0.11.5
v0.11.5
dtourolle
2026-08-27 17:58:06 +02:00
-
c0399e4ebd
fix(player): stop PiP dropping the video and restarting the audio behind it
dtourolle
2026-08-27 17:56:52 +02:00
-
66e7889030
chore(release): v0.11.4
v0.11.4
dtourolle
2026-08-26 19:42:54 +02:00
-
d25f6be697
fix(catalog): group Recently Added tracks into albums in the client
dtourolle
2026-08-26 19:37:26 +02:00
-
079153d9d5
fix(library): stop offering the episode you just finished as "up next"
dtourolle
2026-08-26 18:56:16 +02:00
-
1ba836928f
fix(android): keep the debug applicationId out of Tauri's reach
dtourolle
2026-08-25 23:48:24 +02:00
-
bbccc8567c
fix(player): play on past the end of a season
dtourolle
2026-08-25 23:48:15 +02:00
-
ad05dcd484
chore(release): bump version to v0.11.3
v0.11.3
dtourolle
2026-08-25 22:47:40 +02:00
-
8a2b484e36
fix(library): keep the A-Z jump strip above the mini player
dtourolle
2026-08-25 22:47:08 +02:00
-
1d6487774c
fix(android): subtitles on the picture, not on a black bar
dtourolle
2026-08-25 20:12:50 +02:00
-
1aec38b760
chore(release): bump version to v0.11.2
v0.11.2
dtourolle
2026-08-23 22:00:44 +02:00
-
0187ee179e
fix(android): draw the subtitles the player already decodes
dtourolle
2026-08-23 20:20:01 +02:00
-
a94632461b
chore(release): bump version to v0.11.1
v0.11.1
dtourolle
2026-08-23 19:18:21 +02:00
-
64de22bd51
fix(player): change the audio track, and load subtitles at all
dtourolle
2026-08-23 19:15:05 +02:00
-
231ffae626
fix(library): podcasts list newest episode first
dtourolle
2026-08-23 18:38:24 +02:00
-
2ff07bfa49
fix(player): one menu at a time, and inside the screen it opens on
dtourolle
2026-08-23 17:53:16 +02:00
-
e579d4bff2
docs(changelog): the two review fixes users would notice
v0.11.0
dtourolle
2026-08-23 11:53:40 +02:00
-
bb14c66e71
fix(player): three defects from review, and one duplicate removed
dtourolle
2026-08-23 11:50:47 +02:00
-
7660cf219b
docs(specs): restore the stream-selection spec dropped by the squash
dtourolle
2026-08-23 11:08:36 +02:00
-
fd8273824a
test(player): drive an engine that answers badly
dtourolle
2026-08-23 10:54:49 +02:00
-
11d9d760d8
feat(player): native video on Linux, and one contract for every player (v0.11.0)
dtourolle
2026-08-23 10:51:45 +02:00
-
40d358ab52
docs: a verification plan for the native player
worktree-linux-native-video
dtourolle
2026-08-23 10:39:37 +02:00
-
7e23da46e2
fix(player): a junk duration from an engine must not panic the backend
dtourolle
2026-08-23 10:13:43 +02:00
-
e5b7003489
fix(player): a duration of zero is not a duration
dtourolle
2026-08-23 09:13:21 +02:00
-
5b5162dd1e
fix(player): closing the player stops every renderer, not the believed one
dtourolle
2026-08-23 09:02:30 +02:00
-
888f0a2a5d
docs(specs): the background-audio handoff is an unconfirmed state swap
dtourolle
2026-08-23 08:58:25 +02:00
-
7d60f7ed9c
fix(android): a Linux gate that outlived its caller broke the build
dtourolle
2026-08-23 08:46:01 +02:00
-
d952a2ae55
fix(player): ExoPlayer can seek a transcode in place; mpv cannot
dtourolle
2026-08-23 08:33:23 +02:00
-
954546434a
docs(specs): record what shipped, and where the design bent
dtourolle
2026-08-22 22:23:20 +02:00
-
9d6b4f819c
chore(player): a script for the conformance suite
dtourolle
2026-08-22 22:23:20 +02:00
-
6b3d853442
feat(player): seek strategy follows what the engine says it can do
dtourolle
2026-08-22 22:21:42 +02:00
-
5fcf58fa78
feat(player): the controller talks to one contract
dtourolle
2026-08-22 22:12:51 +02:00
-
20e683d705
feat(android): conformance on a device, and a start position for ExoPlayer
dtourolle
2026-08-22 21:32:59 +02:00
-
8904acb5f7
feat(player): run the old backend through the new contract
dtourolle
2026-08-22 21:23:39 +02:00
-
a3190cd52b
feat(player): MpvPlayer, and a runner that verifies it without the app
dtourolle
2026-08-22 21:18:10 +02:00
-
f4892f4cb2
feat(player): FakePlayer and the conformance suite
dtourolle
2026-08-22 21:18:10 +02:00
-
3b91922cca
feat(player): the MediaPlayer contract
dtourolle
2026-08-22 21:17:50 +02:00
-
f388777185
docs(specs): one player contract, three interchangeable engines
dtourolle
2026-08-22 21:17:50 +02:00
-
14b6a8609d
fix(player): three defects native video exposed, and the logs to see them
dtourolle
2026-08-22 21:17:29 +02:00
-
d3ecd8ee91
feat(video): mpv plays video on Linux, composited under the webview
dtourolle
2026-08-22 14:22:58 +02:00
-
2f637d4775
feat(video): let mpv decode video at all, behind one shared flag
dtourolle
2026-08-22 13:44:43 +02:00
-
45144cb6b0
feat(video): render mpv behind the webview, and collapse duplicated helpers
dtourolle
2026-08-22 11:51:16 +02:00