edde746
f602925896
fix(trakt): persist refreshed auth sessions
...
close #1347
2026-06-15 14:42:24 +02:00
edde746
1aecb9d2d2
fix(trakt): publish refreshed sessions
2026-06-15 14:42:18 +02:00
edde746
1aa06ffe90
fix(tv): restore passthrough setting visibility
2026-06-15 13:28:38 +02:00
edde746
ba22dca9e5
fix(platform): gate audio passthrough support
2026-06-15 13:28:10 +02:00
edde746
b5a9f09f12
fix(player): wait for autoplay subtitle tracks
...
close #1348
2026-06-15 13:09:09 +02:00
edde746
7195702242
fix(player): repair Plex transcode seeking
...
close #1341
2026-06-14 23:39:05 +02:00
edde746
01a5d11ef5
fix(jellyfin): use season episode endpoint
2026-06-14 18:34:12 +02:00
edde746
5e2bd4efa8
fix(video): release scrub chrome hold
...
close #1340
2026-06-14 18:34:12 +02:00
edde746
d6487e24c9
fix(tv): keep sidebar transparent
2026-06-14 14:53:56 +02:00
edde746
a861a4110f
feat(player): add mobile edge adjustments
2026-06-14 13:40:16 +02:00
edde746
edd0618e64
fix: harden playback and discover state
2026-06-14 09:44:04 +02:00
edde746
849e62df7e
fix(jellyfin): honor continue watching action
...
close #1334
2026-06-14 07:25:40 +02:00
edde746
e1c0df3bd7
fix(ci): resolve sanity check failures
2026-06-14 06:55:58 +02:00
edde746
349b5b0513
fix(tv): stop playback behind menu
2026-06-14 06:27:00 +02:00
edde746
656cf1158b
fix(libraries): restore tvOS empty tab focus
...
close #1330
2026-06-14 00:05:44 +02:00
edde746
f3cb508649
fix(player): wait for mpv subtitles after load
...
close #1331
2026-06-13 23:52:19 +02:00
edde746
9ff3099a9d
fix(player): update MPVKit and stream buffering
2026-06-13 20:51:14 +02:00
edde746
8f862d1ca0
fix(jellyfin): sort series episodes
...
close #1329
2026-06-13 17:12:48 +02:00
edde746
b56608f94f
fix(media): show source rating badges on TV
...
close #1327
2026-06-13 15:58:36 +02:00
edde746
2876e1bf78
fix(media): catch menu client and refresh failures
2026-06-13 13:25:48 +02:00
edde746
ebd850b0d5
fix(profiles): guard pin dialog route pops
2026-06-13 13:25:41 +02:00
edde746
f3f962a7c9
fix(database): swallow legacy documents lookup failures
2026-06-13 13:25:34 +02:00
edde746
75ba6b0627
fix(player): isolate dispose teardown races
2026-06-13 13:23:29 +02:00
edde746
1e40d21bd8
fix(discovery): handle udp datagram socket errors
2026-06-13 13:23:22 +02:00
edde746
4f422f1485
fix(plex): persist transcode audio stream switches
...
close #1326
2026-06-13 10:15:08 +02:00
edde746
85d9b6ebab
fix(tvos): hide unsupported playback options
2026-06-13 10:13:02 +02:00
edde746
90662e2173
fix(player): scale mpv stream ring buffer for poorly interleaved mp4/mov
2026-06-12 22:21:17 +02:00
edde746
979db254d1
perf(providers): delta-fetch newly-online servers instead of full refetch
...
Discover and libraries now fetch only the servers that came online since
the last pass and merge the results; already-loaded servers are not
refetched. Both providers also own their online-servers listener
(registered in the constructor, removed in dispose), so profile switches
no longer leak listeners that kept disposed providers refetching.
2026-06-12 17:12:18 +02:00
edde746
18ebe77806
fix(jellyfin): page show/season folder children incrementally
2026-06-12 17:12:09 +02:00
edde746
0de856e929
fix(settings): refuse overlapping runAsync at runtime
2026-06-12 17:12:03 +02:00
edde746
23a423fe85
refactor(livetv): playback session lifecycle behind LiveTvSupport
2026-06-12 16:06:12 +02:00
edde746
b2cb874b73
fix(discover): refresh content when a server comes online mid-session
2026-06-12 15:56:09 +02:00
edde746
f671f367ea
refactor(discover): DiscoverProvider owns hubs and continue-watching
2026-06-12 15:53:26 +02:00
edde746
665603b314
fix(jellyfin): bounded transient retry on hub surfaces
2026-06-12 15:33:58 +02:00
edde746
0d7dd093c4
fix(jellyfin): flip server status when all endpoints are exhausted
2026-06-12 15:26:39 +02:00
edde746
c849a213f0
refactor(net): shared FailoverHttpClient for both backends
2026-06-12 15:22:52 +02:00
edde746
49ff0854c0
refactor(profiles): profile-scoped provider subtree keyed by active profile
2026-06-12 14:44:10 +02:00
edde746
5047057521
test(cache): cover per-backend applyWatchState mutations
2026-06-12 14:35:50 +02:00
edde746
e28e2b9371
refactor(media): folder browsing via MediaServerClient interface
2026-06-12 14:33:38 +02:00
edde746
5e4449247b
fix(downloads): inject visibility-aware client resolver
2026-06-12 14:16:24 +02:00
edde746
c2fe142293
refactor(watch): WatchActions owns mark-watched orchestration and events
2026-06-12 14:09:21 +02:00
edde746
959e6e9398
refactor(watch): single watched-progress predicate
2026-06-12 13:49:46 +02:00
edde746
05251edaf3
fix(tv): close virtual keyboard when its text field unmounts
...
The keyboard is a navigator route, so a screen swapping out its form
left it floating over the new content. showTvVirtualKeyboard now
returns a route handle and the field host closes it on dispose.
2026-06-12 13:36:01 +02:00
edde746
892dfee381
fix(tv): keyboard no longer opens over jellyfin quick connect screen
...
Auto-starting quick connect from inside the probe's runAsync let the
probe's finally clear busy mid-initiate; the re-enabled form then took
focus fallback on the URL field, auto-opening the TV keyboard. Sequence
the two busy scopes and debug-assert against overlapping runAsync.
2026-06-12 13:35:55 +02:00
edde746
71b05fd4b2
fix(ui): unwatched count badge grows as pill, caps at 999+
...
close #1310
2026-06-12 09:11:56 +02:00
edde746
587609d7f6
fix(tv): hug poster with focus border and add focus glow toggle
...
close #1278
2026-06-12 08:50:29 +02:00
edde746
cceba28d0a
fix(i18n): request localized Plex labels
...
close #1311
2026-06-12 07:59:35 +02:00
edde746
03c623e8c7
perf(grids): rebuild media grids on width change, not every scroll tick
2026-06-12 07:18:34 +02:00
edde746
2b34f4a9d7
perf(tv): reduced visual-effects tier for low-end devices
2026-06-12 06:30:38 +02:00
edde746
ad3cc6b986
feat(player): language-first audio & subtitle track labels
...
close #1307
2026-06-12 04:16:39 +02:00