edde746
a0013323f2
chore(ui): enforce icon consistency
2026-07-13 23:13:53 +02:00
edde746
d5f3e581df
fix: eliminate cross-app consistency drift
2026-07-13 23:13:53 +02:00
edde746
ec249d2ed4
fix(jellyfin): repair music library browsing
...
Fixes #1557
2026-07-13 22:58:12 +02:00
edde746
d6ad6a9506
fix(settings): align mobile option typography
2026-07-13 22:14:27 +02:00
edde746
7400a10c59
fix(release): prevent published asset replacement
2026-07-13 21:48:44 +02:00
edde746
dfeffad044
fix(windows): forward touch input over video
2026-07-13 18:48:58 +02:00
github-actions[bot]
b0c2827eb4
chore: update cask to 2.9.1
2026-07-13 15:44:24 +00:00
github-actions[bot]
5267aa35ee
chore: bump version to 2.9.1
2026-07-13 15:12:14 +00:00
edde746
40792e2779
fix: restore focus and interaction behavior
2026-07-13 17:00:50 +02:00
edde746
822657972d
fix(android): enforce minSdk compatibility
2026-07-13 17:00:50 +02:00
edde746
ae71b7bc64
fix(android): guard API 29 codec query
...
close #1553
2026-07-13 17:00:49 +02:00
edde746
e15bbed554
test(servers): cover exhaustion reconnection and offline retry loop
...
Adds a production-wired exhaustion trigger hook, documents the
no-throw invariant behind the fire-and-forget verification probe, and
covers the confirmed-offline reconnect and debounce-driven recovery.
2026-07-13 12:05:23 +02:00
edde746
65e63c206e
fix(jellyfin): slim music hub row fields
...
close #1552
Latest Albums returns MusicAlbum folder dtos, where the browse count/user-data
fields each cost a recursive per-album COUNT query; request it with the slim
album fields + EnableUserData=false under a dedicated latestalbums identifier,
and drop the folder fields and Overview from the played-track rows.
2026-07-13 12:05:23 +02:00
edde746
f104b5ffae
fix(jellyfin): prevent false offline loops
2026-07-13 11:30:17 +02:00
edde746
e4db04fa62
fix: align UI focus and sheet behavior
2026-07-13 11:28:32 +02:00
edde746
e6e7d8cdfd
test: remove redundant coverage and shorten timers
2026-07-13 02:15:03 +02:00
github-actions[bot]
c4e9fa1650
chore: update cask to 2.9.0
2026-07-13 00:01:50 +00:00
edde746
8210b23d31
fix(ci): set explicit release tag
2026-07-13 01:42:41 +02:00
github-actions[bot]
bd83c10b9b
chore: bump version to 2.9.0
2026-07-12 22:11:51 +00:00
edde746
e03edad824
fix: prevent async state and platform regressions
2026-07-13 00:03:52 +02:00
edde746
26d14f7cb0
fix(seerr): align request button focus
2026-07-12 22:19:42 +02:00
edde746
b9f828ae88
refactor(livetv): reuse standard hub cards
2026-07-12 22:11:30 +02:00
edde746
098a472670
fix(catalog): restore TV focus navigation
2026-07-12 21:42:27 +02:00
edde746
780a1ea180
fix(ci): restore analyzer and unit checks
2026-07-12 19:55:24 +02:00
edde746
917f6a2839
fix: guard lifecycle-bound state updates
2026-07-12 19:00:28 +02:00
edde746
2101f1d7f0
perf: isolate focus and media rebuilds
2026-07-12 19:00:11 +02:00
edde746
a561777456
perf: reduce state notification fan-out
2026-07-12 18:59:58 +02:00
edde746
b4575c9780
fix: preserve live TV state across refreshes
2026-07-12 18:59:42 +02:00
edde746
0ef1e773bb
fix: scope navigation callbacks to active owners
2026-07-12 18:59:27 +02:00
edde746
cd88f73f05
fix: serialize async state transitions
2026-07-12 18:59:14 +02:00
edde746
d1c4ae83eb
fix(review): resolve post-consolidation regressions
2026-07-12 17:31:16 +02:00
edde746
858952929b
fix(deps): refresh and document native dependencies
2026-07-12 17:31:16 +02:00
edde746
b676ef6c56
refactor(android): harden and share player integration
2026-07-12 17:31:15 +02:00
edde746
a9493f4f0e
fix(relay): harden lifecycle and protocol handling
2026-07-12 17:31:15 +02:00
edde746
fe8d405a56
fix(i18n): enforce complete localized coverage
2026-07-12 17:31:14 +02:00
edde746
754c54761a
refactor(downloads): consolidate task and metadata flows
2026-07-12 17:31:13 +02:00
edde746
7ecadffdb1
refactor(features): consolidate shared feature primitives
2026-07-12 17:31:13 +02:00
edde746
6506f36843
refactor(app): share client and presentation scaffolds
2026-07-12 17:31:12 +02:00
edde746
97f7508067
refactor(core): consolidate shared app foundations
2026-07-12 17:31:12 +02:00
edde746
a481fc1000
refactor(dialogs): unify text input contract
2026-07-12 08:42:26 +02:00
edde746
b7078448ea
refactor(mpv): unify property decoding
2026-07-12 08:42:26 +02:00
edde746
359a6bf02a
refactor(live-tv): split optional DVR support
2026-07-12 08:42:25 +02:00
edde746
a5449a1430
refactor(ci): matrix architecture builds
2026-07-12 08:42:25 +02:00
edde746
6182c34448
perf(playlists): bound card inflation
2026-07-12 08:42:25 +02:00
edde746
699e73bcd5
fix(downloads): propagate hierarchical watch state
2026-07-12 08:42:25 +02:00
edde746
352aa04d3e
refactor(settings): share preference binding lifecycle
2026-07-12 08:42:25 +02:00
edde746
c81a1f9a97
fix(plex): tolerate malformed activity rows
2026-07-12 08:42:25 +02:00
edde746
34be331024
refactor(media): centralize HDR classification
2026-07-12 08:42:25 +02:00
edde746
ceae98b75f
refactor(paging): share continuation loading
2026-07-12 08:42:25 +02:00
edde746
5328865639
refactor(input): share gamepad key simulation
2026-07-12 08:42:24 +02:00