Thomas
8d8dec5749
feat(widgets): consolidate integration metadata + shared response caching ( #6691 )
2026-08-30 18:38:07 +02:00
Thomas
a56ec5d06a
feat: support every widget in the demo dashboard ( #6696 )
2026-08-26 08:44:55 +02:00
Bergasha
b8bc304c5c
fix(mediaServer): use proportional column widths, populate Emby playback/transcoding metadata
...
The User and Status columns used hardcoded pixel widths with table-layout:
fixed, so they stayed narrow regardless of how wide the widget actually
rendered - text truncated even with plenty of unused space in the
"currently playing" column. Switch both to percentages so they scale with
the widget.
Emby's integration also hardcoded playback/metadata to null for every
session, so the widget's existing progress bar, resolution, and bitrate
display never had anything to show. Port the same TranscodingInfo/
MediaStreams parsing Jellyfin already does (same underlying /Sessions API
shape) so Emby sessions get real position/duration, resolution, bitrate,
and transcode-status data. Also fix ticksToMs treating a position of
exactly 0 as missing, and share the one implementation between the two
integrations instead of duplicating it.
2026-08-24 11:16:20 +10:00
Bergasha
76ba13fbad
Address Codex review feedback on PR #6627
...
- Classify IPv4/IPv6 link-local addresses (169.254.0.0/16, fe80::/10) as
LAN in Jellyfin location parsing - they can't traverse a router, so a
false WAN reading was possible for common autoconfig/link-local sessions.
- Fix portrait video resolution mislabeling - a 1080x1920 clip was
classified off its long-axis height (1920) and showed as 1440p. Classify
by the short axis instead so orientation doesn't flip the result.
- Raise the compact-mode status column breakpoint from 420 to 540px - at
420 the fixed-width user (200px) and status (190px) columns left almost
no room for the currentlyPlaying column, the widget's primary content.
- Document the new resolution indicator in the media-server widget docs.
2026-08-19 16:45:09 +10:00
Bergasha
90fa9e8741
Added tests for the LAN/WAN parsing and fixed IPv4-mapped IPv6 addresses being misclassified as WAN - a dual-stack server can report a LAN client as ::ffff:192.168.x.x, which the private-range check was missing since it only matched literal IPv6 ranges
2026-08-19 13:52:14 +10:00
Bergasha
acc97da84b
Added LAN/WAN detection to Jellyfin, matching what Plex already reports - Jellyfin's sessions endpoint only gives a client IP (RemoteEndPoint), so classify it against the standard private IP ranges ourselves
2026-08-19 13:32:40 +10:00
Bergasha
c7563f2c39
Fixed Jellyfin bitrate showing null on direct play - the sessions endpoint only reliably fills in MediaSources bitrate while transcoding, so sum the individual media streams' own bitrates as a fallback
2026-08-19 13:32:28 +10:00
Bergasha
df300919fc
Gated season/episode fields on episode type - was showing S/E labels on movies and music too, using the episode number as season
2026-08-19 13:31:27 +10:00
Bergasha and Thomas
ebdfeb724b
fix(media widget): text size fix and added season + Episode info ( #6605 )
...
Co-authored-by: Thomas <thomas@ajnart.fr >
2026-08-18 09:44:12 +02:00
Thomas
e842177d9b
feat: port release-v2 experience improvements from #6582 (audited subset) ( #6609 )
2026-08-18 09:40:02 +02:00
ajnart
dcef36ffa7
perf: optimize widget integration requests
2026-08-14 11:32:11 +02:00
ajnart
8eb6735387
perf: reduce widget and runtime overhead
2026-08-14 11:32:11 +02:00
ajnart
bd4bbcaca2
chore: reconcile widget layer after stack rebase
2026-08-14 11:07:09 +02:00
Thomas Camlong
cb7b49b3e7
fix focus scroll layering
2026-08-14 11:07:08 +02:00
Thomas Camlong
f5cced4080
fix widget focus interactions
2026-08-14 11:07:08 +02:00
Thomas Camlong
a38e731209
fix: address widget review feedback
2026-08-14 11:07:08 +02:00
Thomas Camlong
a2763d1f6f
feat: modernize dashboard widgets
2026-08-14 11:07:07 +02:00
ajnart
0482c040ec
chore: reconcile v2 after stack rebase
2026-08-13 19:59:46 +02:00
ajnart
6d3f7e3e36
test: wait for Home Assistant API readiness
2026-08-13 19:51:44 +02:00
Thomas Camlong
f0963405ca
test(integrations): wait for Home Assistant restart
2026-08-13 19:47:16 +02:00
Thomas Camlong
84fcf02729
test(integrations): allow recurring calendar setup
2026-08-13 19:47:06 +02:00
Thomas Camlong
f4a6f37415
style: fix formatting in v2 files
2026-08-13 19:46:00 +02:00
Sven
742bde1d27
fix(synology): support vol_info in storage_v2 responses ( #6554 )
2026-08-11 08:59:28 +00:00
Timon and Thomas
98bb1aecf8
feat(integrations): add What's Up Docker (WUD) integration and widget ( #6523 )
...
Co-authored-by: Thomas <thomas@ajnart.fr >
2026-08-10 08:42:23 +00:00
Thomas
55214ccbc5
fix(integrations): throw on total item-info failure to preserve stale-cache fallback ( #6522 )
2026-08-06 21:42:46 +02:00
Bergasha
49314533bf
feat(Media player widget): expands on Direct Play and Transcoding badges ( #6489 )
2026-08-01 23:21:13 +02:00
Thomas
27ca058088
feat(widgets): persist Beszel and Docker table layouts ( #6490 )
2026-08-01 23:20:09 +02:00
Thomas
ade640dcea
test(navidrome): complete cleanup review ( #6494 )
...
* test(navidrome): hoist album fixture helper
* test(navidrome): address coderabbit cleanup feedback
2026-07-31 14:39:11 +02:00
Thomas
61128ddcc8
fix(navidrome): clean up audio stats integration ( #6493 )
2026-07-31 14:20:51 +02:00
Thomas
6a3cee8107
fix(navidrome): complete media server session data ( #6492 )
2026-07-31 13:53:06 +02:00
Matt Van Horn
06d9c07d22
feat: expose Navidrome as a media-server (now-playing) integration ( #6070 )
2026-07-31 13:30:44 +02:00
Thomas
906c9f11fa
feat(widgets): rework downloads widget with mantine-datatable ( #6430 )
2026-07-28 21:50:09 +02:00
Tim Moore and Tim Moore
91a6b19ba1
fix(beszel): expire stored sessions so the integration recovers from token expiry ( #6476 )
...
Co-authored-by: Tim Moore <tim.moore@ingenuity.com.au >
2026-07-28 14:55:33 +02:00
Thomas
14c3fa2e76
fix(beszel): prevent live subscription memory growth ( #6448 )
...
* fix(beszel): bound live stats subscriptions
* fix(beszel): avoid blocking subscription teardown
* fix(import): map new clock options
2026-07-23 02:03:08 +02:00
Thomas
97652802f0
feat(immich): show random photos without album ( #6424 )
2026-07-21 16:10:45 +02:00
Thomas
0015a6d88d
fix(immich): use thumbnail endpoint instead of original for album carousel ( #6396 )
...
* fix(immich): use thumbnail endpoint instead of original for album carousel
Switches from /api/assets/:id/original to /api/assets/:id/thumbnail to fix
HEIC image incompatibility (thumbnails are always JPEG), reduce bandwidth,
and improve loading speed.
Closes #6388
* working on immich
* Improve image proxy error handling
* fix(image-proxy): use trusted fetch response type
* docs(immich): require Asset View permission
2026-07-20 14:53:27 +02:00
Bergasha
5144e14da4
fix(media-server): populate playback progress, transcode status, and network location for streams ( #6315 )
2026-07-15 16:27:58 +02:00
Thomas
7887ce12c0
fix(integrations): resolve intermittent Seerr/Overseerr crashes and add query status to context menu ( #6347 )
2026-07-15 11:41:18 +02:00
Thomas
03f68a0421
fix(qbittorrent): sort torrents by progress so active items appear before limit cutoff ( #6297 )
2026-07-12 14:56:24 +02:00
Thomas
8e8c29979f
fix(system-disks): format absolute storage values with shared byte helper ( #6299 )
2026-07-12 14:50:58 +02:00
Thomas
576856d634
fix(beszel): add reliable live stats and filesystem UI ( #6289 )
2026-07-11 17:55:04 +02:00
Thomas
13c9e5e181
fix(release): repair v1.70.0 quality failures ( #6279 )
...
* fix(release): repair v1.70.0 quality failures
* style: auto-fix lint and format
2026-07-10 21:59:57 +02:00
Josh Preston and Thomas
33395ae226
feat(integrations): add PatchMon integration and widget ( #6119 )
...
Co-authored-by: Thomas <thomas@ajnart.fr >
2026-07-10 17:48:43 +02:00
Anil K Tiwari and Thomas
9fb2e37605
feat(widgets): add missing & queued media widget for Radarr and Sonarr ( #6078 )
...
Co-authored-by: Thomas <thomas@ajnart.fr >
2026-07-10 17:31:08 +02:00
Felix-Ayush and Thomas
2c5368dd4e
feat: add Bazarr integration and subtitle status widget ( #6156 )
...
Co-authored-by: Thomas <thomas@ajnart.fr >
2026-07-10 17:29:10 +02:00
Thomas
24c5d04bfa
fix(beszel): disable request handler cache for stats to make live mode work ( #6244 )
2026-07-10 17:16:23 +02:00
Thomas
2ada1aa249
fix(qbittorrent): handle v5 stopped torrent states for pause functionality ( #6211 )
2026-07-10 16:55:20 +02:00
Nerdy Technician and Thomas
9864fed775
feat: Add Traefik Integration with dedicated widget and Add optional Icons for Gotify/Notifcation Widget (ONLY GOTIFY) ( #6206 )
...
Co-authored-by: Thomas <thomas@ajnart.fr >
2026-07-10 16:49:24 +02:00
Thomas
bcd36b1b27
fix(integrations): sort media requests by last modified instead of creation date ( #6264 )
2026-07-10 16:46:33 +02:00
Josh Preston
65ba866239
feat: add Synology integration support for health/system monitoring ( #6121 )
2026-07-09 18:23:21 +02:00