zachary and Claude Opus 5
e1fe0f8709
fix(integrations): end the health window on the last measured hour
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-13 16:21:46 +02:00
zachary and Claude Opus 5
d5d7a8ae8d
feat(integrations): fill the recent hours from the 5-minute ISP metrics
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-13 15:52:05 +02:00
zachary
122e6e03f9
Revert "fix(integrations): label sites with the console name Site Manager shows"
...
This reverts commit 12db2c0677 .
2026-09-13 04:34:13 +02:00
zachary and Claude Opus 5
12db2c0677
fix(integrations): label sites with the console name Site Manager shows
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-13 04:29:45 +02:00
zachary and Claude Opus 5
31994c7e1c
docs(integrations): say what a null SD-WAN status does not tell us
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-13 04:22:01 +02:00
zachary and Claude Opus 5
5adb8e93eb
fix(integrations): treat an unstated console update state as unknown
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-13 04:18:51 +02:00
zachary and Claude Opus 5
ac51887601
fix(integrations): type the Site Manager transport boundary and guard it
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-10 10:48:30 +02:00
zachary and Claude Opus 5
436b057cfe
feat(integrations): add UnifiSiteManagerIntegration
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-10 10:39:02 +02:00
zachary and Claude Opus 5
df5e5fe6f5
feat(integrations): add UniFi Site Manager cloud client
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-10 10:30:01 +02:00
zachary and Claude Opus 5
52b8385adb
feat(integrations): add UniFi Site Manager schemas and pure mappers
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-10 10:24:50 +02:00
zachary and Claude Opus 5
96f6d28de0
fix(integrations): keep unifi-os-types client-safe
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-09 19:51:27 +02:00
zachary and Claude Opus 5
7f07bf44b6
fix: address final review — cloud TLS, MAC guard, honest ISP metrics
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-09 02:56:15 +02:00
zachary and Claude Opus 5
57286d83d2
fix(integrations): make client/device counts nullable and test real degradation
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-08 15:21:32 +02:00
zachary and Claude Opus 5
b486196f2d
feat(integrations): add UnifiOsIntegration with optional cloud enrichment
...
Introduces UnifiOsIntegration, orchestrating UnifiOsApi (local) and
UnifiSmApi (optional cloud) to build the UnifiOsSummary. Local endpoint
calls degrade independently via Promise.allSettled; the cloud client is
never instantiated without a configured siteManagerApiKey secret.
Registers the unifiOs kind in the integration creator, index, and types
barrels, resolving the previously-failing typecheck.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-08 15:12:58 +02:00
zachary and Claude Opus 5
cc9fbd4264
fix(integrations): select newest ISP metric period explicitly
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-08 15:08:09 +02:00
zachary and Claude Opus 5
46dd7c7887
fix(integrations): type unifi-os test fetch mocks for tsc
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-08 15:03:47 +02:00
zachary and Claude Opus 5
822e095b13
feat(integrations): add optional UniFi Site Manager client with 5min cache
...
Task 4 of the UniFi OS integration: an optional cloud client for
Ubiquiti's Site Manager API that enriches the local console with ISP
latency data. Instantiated only when a cloud API key is configured
(Task 5). Every failure path (bad key, non-ok status, parse error,
unmatched gateway MAC) returns null rather than throwing, since the
cloud is a pure enrichment. Metrics are cached 5 minutes, keyed by
gateway MAC, to respect the ~27 min publication lag and avoid rate
limiting; the query window is 3 hours because a 15-minute window
returns an empty array on the real API.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-08 14:53:46 +02:00
zachary and Claude Opus 5
9c00cd14ff
feat(integrations): add UniFi OS local API client
...
Implements HTTP client for UniFi OS console integration API with support for
fetching site information, client counts, device statistics, and VPN server
configs. Includes pagination handling with filter-based fallback when client
count exceeds API limit.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-08 14:48:23 +02:00
zachary and Claude Opus 5
01e7d150d1
fix(integrations): make unifi-os test invocation-independent with vi.hoisted()
...
Guarded environment validation with SKIP_ENV_VALIDATION and SECRET_ENCRYPTION_KEY
set in vi.hoisted() so that tests pass both with 'pnpm test' (NODE_ENV=development)
and bare 'pnpm vitest run' (no env override).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-08 14:44:37 +02:00
zachary and Claude Opus 5
9218f208d7
feat(integrations): add UniFi OS schemas and pure mappers
...
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-08 14:41:51 +02:00
Thomas
aca3b5d861
fix: correct Unraid CPU, link context menus, and board resizing ( #6510 )
...
Fix Unraid logical CPU averaging, preserve native context menus for app and bookmark widgets in view mode, and prevent scrollbar-width GridStack resize oscillation.
2026-08-22 10:53:26 +02:00
Afonso Jorge Ramos
993a267e0c
fix(truenas): keep reporting pools without usable dataset space ( #6635 )
2026-08-20 15:37:10 +02:00
Thomas
df438b4cd2
Merge pull request #6571 from homarr-labs/feat/fix-home-assistant-actions
2026-08-16 00:23:14 +02:00
Thomas Camlong
5488bf4d18
fix(truenas): use lowercase in operator for dataset query
2026-08-15 01:33:20 +02:00
Thomas Camlong
e761c10f32
fix Home Assistant widget actions
2026-08-13 16:21:48 +02:00
ajnart
f6137b2dcc
fix(truenas): guard empty dataset percentage
2026-08-12 18:24:33 +02:00
ajnart
425dd90871
fix(truenas): report usable dataset space
2026-08-12 18:19:07 +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