Thomas Camlong
965d130ce7
fix(clock): defer live time until mount
2026-08-13 19:51:25 +02:00
Thomas Camlong
a87a16edb1
fix(e2e): stabilize initial board hydration
2026-08-13 19:51:25 +02:00
Thomas Camlong
1493252e28
fix(clock): suppress live timestamp hydration noise
2026-08-13 19:51:25 +02:00
Thomas Camlong
572bc71396
fix(ci): refresh v2 generated artifacts
2026-08-13 19:51:08 +02:00
Thomas
400127b45c
fix: harden v2 custom widgets and Workshop ( #6480 )
2026-08-13 19:50:46 +02:00
Thomas
3aa14e22ed
fix(custom-widgets): address v2 merge review ( #6446 )
2026-08-13 19:49:25 +02:00
Thomas
acdfcbb18e
feat(custom-widgets): complete Custom JSX v2 ( #6390 )
2026-08-13 19:48:57 +02:00
Thomas
3a1245cbc5
fix(custom-widgets): fix v2 editor crash and definition-not-found race ( #6377 )
2026-08-13 19:47:16 +02:00
Thomas
83e3b22f9a
feat(custom-widgets): Full Mantine v9 + SubFetch support for custom JSX ( #6304 )
2026-08-13 19:45:44 +02:00
Thomas
527e911eef
fix(beszel): let Recharts own tooltip lifecycle ( #6560 )
2026-08-11 15:35:17 +02:00
Thomas
ff2cdecc86
feat: rewrite image picker ( #6556 )
...
* feat: rewrite image picker
* style: auto-fix lint and format
* fix: address image picker review
* fix: preserve unicode icon searches
* test: stabilize custom widget login
* fix: suggest image searches only on create
2026-08-11 14:49:52 +02: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
b32ad82850
perf: cut cold route compilation and unblock preview images ( #6441 )
2026-08-07 20:24:26 +02:00
Thomas
76ddfceb13
fix: restore auto-refresh for docker and notifications widgets ( #6511 )
2026-08-03 17:07: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
61128ddcc8
fix(navidrome): clean up audio stats integration ( #6493 )
2026-07-31 14:20:51 +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
Thomas
3419805a49
fix(beszel): restore balanced grid layout for Beszel System Grid widget ( #6389 )
2026-07-28 21:49:04 +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
9cabb42edb
fix(widgets): add 350ms hover delay before opening calendar day popover ( #6431 )
2026-07-23 01:54:23 +02:00
Thomas
bfba3c9215
fix(releases): avoid unnecessary GitHub pagination for LinuxServer updates ( #6444 )
2026-07-23 00:20:54 +02:00
Bergasha
7184bc09c1
feat(clock widget): Adds animated weather and temp ( #6372 )
2026-07-23 00:04:32 +02:00
Thomas
8e7fa782b3
feat(weather): add humidity display ( #6429 )
2026-07-21 16:36:03 +02:00
Thomas
97652802f0
feat(immich): show random photos without album ( #6424 )
2026-07-21 16:10:45 +02:00
Thomas
1706289124
fix(media-server): guard against undefined playback from stale cached data ( #6433 )
2026-07-21 16:01:37 +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
8528d5068b
feat(media-requests): filter requests list by status and time window ( #6320 )
2026-07-15 16:27:24 +02:00
Thomas
7e4cb0201b
fix(widgets): add refetchInterval to WidgetDefinition for per-widget polling ( #6352 )
2026-07-15 11:52:35 +02:00
Bergasha
807e5eb2a9
feat(docker-widget): replace footer timestamp text with compact refresh button ( #6307 )
2026-07-12 14:51:56 +02:00
Thomas
8e8c29979f
fix(system-disks): format absolute storage values with shared byte helper ( #6299 )
2026-07-12 14:50:58 +02:00
Artur
d44bc06a93
feat(notebook): support text direction controls ( #6293 )
2026-07-12 07:58:02 +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
718f095cb7
fix: prevent stale persisted query cache from blocking widget data ( #6273 )
2026-07-10 17:19:24 +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
0e513fffd5
feat(widgets): add per-filesystem storage chart to Beszel system stats ( #6209 )
2026-07-10 17:08:22 +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
Josh Preston
65ba866239
feat: add Synology integration support for health/system monitoring ( #6121 )
2026-07-09 18:23:21 +02:00
Thomas
885be1b9a1
fix(widget-secrets): add missing widget_secret migration and add error notifications ( #6192 )
...
* fix(widget-secrets): add missing widget_secret migration and add error notifications
The widget_secret table was defined in all three Drizzle schema files but
no SQL migration was ever generated to create it, causing setSecret to
fail with 'no such table: widget_secret' in production (drizzle-kit push
in development hid the problem).
- Add migration SQL for sqlite (0040), mysql (0042), postgresql (0008)
- Update journal entries for all three dialects
- Add onError handlers to setSecret/deleteSecret mutations so errors
are shown as red notifications instead of silently swallowed
Fixes #6186
* fix(widget-secrets): add missing drizzle snapshots for merge-url and widget_secret migrations
The merge_custom_widget_url migration (0039/0041/0007) was committed
without a corresponding snapshot, breaking drizzle-kit generate for
all future migrations. This adds:
- 0039/0041/0007 snapshots reflecting the merge-url changes
(base_url+endpoint -> url, add enabled column)
- 0040/0042/0008 snapshots reflecting the widget_secret table
All snapshot chains now match journal entries (41/43/9 entries each).
2026-07-04 17:57:40 +02:00
Thomas
f19033e0d5
feat: simplify caching — TanStack Query as single source of truth ( #6075 )
2026-07-03 16:33:03 +02:00
Thomas
a5ec880eec
fix(immich): v3 API compatibility — use searchAssets for album assets, drop deviceAssetId ( #5977 )
2026-07-03 15:59:08 +02:00
ajnart
0425bec2ca
style: auto-fix lint and format
2026-07-01 13:00:06 +00:00
Thomas Camlong
06da6191cc
Merge origin/dev into feat/widget-only-integration-refactor
...
Resolve integration.ts conflict (keep widget-only documentationUrl: null, take defaultUrl from dev) and regenerate pnpm-lock.yaml.
2026-07-01 14:57:00 +02:00
Thomas
f9da71a19b
fix: quick wins — calendar, about, glances, admin UX, releases, iframe, notes ( #6116 )
2026-07-01 13:57:39 +02:00
ajnart
d670b69396
fix(timetable): restore station search by removing disabled query guard
...
The refactor from integration-based to option-based config changed the
useQuery enabled condition from 'integrationIds.length > 0' (always true
when an integration was linked) to 'query.length > 0'. The combination
of the debounced search value and the enabled toggle inside the nested
useOptions callback caused the query to never fire, making stations
unsearchable in the edit form.
Removing the enabled guard lets the query always run. The 300ms debounce
already prevents excessive requests.
2026-06-30 18:40:27 +02:00