Thomas Camlong
7c66c912e7
fix(custom-widgets): harden v2 authoring
2026-07-20 22:16:18 +02:00
Thomas Camlong
ee832ad3c6
fix(custom-widgets): isolate invalid preview
2026-07-20 19:19:02 +02:00
Thomas Camlong
c1fca4c5a2
fix(custom-widgets): keep URL errors inline
2026-07-20 19:11:58 +02:00
Thomas Camlong
80d364c050
fix(custom-widgets): isolate invalid definitions
2026-07-20 18:32:48 +02:00
Thomas Camlong
211e059521
fix(custom-widgets): simplify error sharing
2026-07-20 18:11:10 +02:00
Thomas Camlong
b509679274
fix(custom-widgets): surface save validation errors
2026-07-20 18:06:34 +02:00
Thomas Camlong
091eca3192
fix(custom-widgets): stabilize authoring flows
2026-07-20 17:55:57 +02:00
Thomas Camlong
e4388b0712
fix(custom-widgets): configure secrets during import
2026-07-20 17:21:51 +02:00
Thomas Camlong
a26846fa31
fix(custom-widgets): require explicit request bindings
2026-07-20 17:02:59 +02:00
Thomas Camlong
4c69ad90df
fix(custom-widgets): restore bundled authoring
2026-07-20 16:48:00 +02:00
Thomas Camlong
aebc7016b1
chore(custom-widgets): merge v2
2026-07-20 14:29:49 +02:00
Thomas Camlong
f9863b8402
fix(custom-widgets): refine v2 authoring
2026-07-20 14:14:53 +02:00
Thomas
60cbd7bb7a
Merge branch 'dev' into v2
2026-07-18 23:00:30 +02:00
Thomas Camlong
eae48f50fd
feat(custom-widgets): complete JSX v2
2026-07-18 15:33:25 +02:00
Junker der Provinz
bc018e1fe0
fix(docker): disable the broken full-screen toggle on the container table ( #6374 )
2026-07-17 14:43:37 +02:00
Thomas
5e39c8813a
feat(preferences): add enableRightClickOnWidgets user preference ( #6298 )
2026-07-17 14:42:19 +02:00
Thomas
c0f1d6624c
fix(custom-widgets): fix v2 editor crash and definition-not-found race ( #6377 )
2026-07-17 14:39:29 +02:00
Thomas Camlong
eb71f936c6
fix(custom-widgets): remove stale form helpers
2026-07-16 14:13:39 +02:00
ajnart
51d8a3cc53
style: auto-fix lint and format
2026-07-15 13:54:18 +00:00
Thomas Camlong
a11583feb1
Revert "style: format all files and remove coverage report step"
...
This reverts commit 446931bc0a .
2026-07-15 15:44:49 +02:00
Thomas Camlong
446931bc0a
style: format all files and remove coverage report step
2026-07-15 15:42:13 +02:00
Thomas Camlong
a2e3c5d3bc
style: fix formatting in v2 files
2026-07-15 15:34:15 +02:00
Thomas Camlong
e0de370340
Merge branch 'dev' into v2
2026-07-15 15:17:18 +02:00
Thomas
3b2fc2527e
feat(custom-widgets): Full Mantine v9 + SubFetch support for custom JSX ( #6304 )
2026-07-15 14:06:02 +02:00
Thomas and homarr-renovate[bot]
0a0b3a12c9
bring dev changes to v2 ( #6353 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-07-15 12:16:16 +02:00
Thomas Camlong
8a7c4875bf
Revert "chore(merge): resolve v2 conflicts"
...
This reverts commit 377f2f6a20 , reversing
changes made to 7e4cb0201b .
2026-07-15 12:12:33 +02:00
Thomas Camlong
377f2f6a20
chore(merge): resolve v2 conflicts
2026-07-15 12:09:51 +02:00
Thomas and copilot-swe-agent[bot]
c69e33ac8c
feat: community workshop for custom widgets and CSS ( #5984 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
2026-07-15 11:53:15 +02:00
Thomas
7e4cb0201b
fix(widgets): add refetchInterval to WidgetDefinition for per-widget polling ( #6352 )
2026-07-15 11:52:35 +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
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
Nam Nguyen and Thomas
7d93df04dd
fix: add utf8 email validation support ( #6239 )
...
Co-authored-by: Thomas <thomas@ajnart.fr >
2026-07-10 17:28:22 +02:00
Thomas
718f095cb7
fix: prevent stale persisted query cache from blocking widget data ( #6273 )
2026-07-10 17:19:24 +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 and ajnart
260b167134
fix: context menu refresh stays open with loading spinner, cache age reacts to refetch
...
* fix: context menu refresh stays open with loading spinner, cache age reacts to refetch
* style: auto-fix lint and format
* refactor: pass isFetching as prop to WidgetCacheAge to avoid duplicate useIsFetching
---------
Co-authored-by: ajnart <ajnart@users.noreply.github.com >
2026-07-07 18:39:34 +02:00
Thomas
1297e6c2ac
fix(query-cache): guard against undefined from superjson.parse on legacy cache entries ( #6228 )
2026-07-07 11:28:13 +02:00
Thomas
fc2c251557
feat(demo): allow mutations in demo mode via DEMO_READ_ONLY flag ( #6224 )
2026-07-07 10:01:36 +02:00
Thomas and Releases Homarr
a9ed95856a
fix(layout): raise AppShellHeader z-index above Indicator dots ( #6218 )
...
Co-authored-by: Releases Homarr <175486441+homarr-releases[bot]@users.noreply.github.com>
2026-07-06 10:13:54 +02:00
Thomas and homarr-renovate[bot]
4d42eb65e4
chore(deps): mega dependency update ( #6212 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-07-06 10:05:51 +02:00
Thomas
a382c75968
fix: unblock query cache mutations in demo mode and add cache buster ( #6176 )
2026-07-04 10:47:09 +02:00
Bergasha
b663dae409
fix (Calendar Widget): Add superjson serialization to query cache persister ( #6172 )
2026-07-04 08:57:49 +02:00
Thomas
f19033e0d5
feat: simplify caching — TanStack Query as single source of truth ( #6075 )
2026-07-03 16:33:03 +02: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
Thomas and github-actions[bot]
7e58858353
feat(widgets): right-click context menu with auto-generated toggle actions ( #6126 )
...
* docs(helm): Update Helm chart documentation
* feat(widgets): add right-click context menu with auto-generated toggle actions
- Add WidgetContextMenu component using Mantine 9.3 Menu.ContextMenu
- Extend WidgetDefinition with contextActions API for widget-specific actions
- Auto-generate context menu toggle items for switch-type widget options
- Add 'Search' context action to media-requests widgets (list + stats)
- Keep existing dots-button menu for discoverability in edit mode
- Add widgetStateRef to WidgetComponentProps for client-side-only state
- Add skipContextMenu opt-out on switch option definitions
* style: auto-fix lint and format
* fix(widgets): address CodeRabbit review — badge in context menu target, edit-only pending gate
- Move title badge inside WidgetContextMenu wrapper so right-clicking the title overlay also triggers the context menu
- Remove full-menu hide during integration loading; only disable 'Edit' action while isPending
- Add isPending to allActions useMemo dependency array
* style: auto-fix lint and format
* fix(widgets): gate context menu behind authenticated session
- Only show right-click context menu for logged-in users
- Unauthenticated users see plain children without menu wrapper
- Matches existing BoardItemMenu session gating pattern
* style: auto-fix lint and format
* chore: revert unrelated sitemap change from auto-fix
* style: auto-fix lint and format
* fix(context-menu): persist widget option changes to server
Toggle switches and edit modal changes from the context menu now call
saveBoard mutation to persist to DB. Previously only the client cache
was updated, losing changes on reload. Removes unnecessary invalidation
that caused cascading refetch loops.
* style: auto-fix lint and format
* fix: use explicit React type imports instead of global namespace
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-30 18:10:08 +02:00
Thomas Camlong
77884a3179
feat: add per-widget secret storage for release provider authentication
...
Adds encrypted token storage per release widget so users can authenticate
with GitHub, GitLab, Docker Hub, etc. without needing full integration setup.
- New `widget_secret` table (all 3 DB drivers) keyed by (itemId, kind)
- tRPC router with setSecret/deleteSecret/getConfiguredKinds (board modify access required)
- Releases router injects decrypted tokens into provider requests (board view access required)
- Tokens only used for repos matching widget's stored configuration (prevents proxy abuse)
- Provider auth: GitHub (Octokit auth), GitLab (PRIVATE-TOKEN), Docker Hub (Bearer),
GHCR (registry token), npm (Bearer), Codeberg (token header)
- UI: "Provider Tokens" section in widget editor with PasswordInput per provider
2026-06-27 10:57:13 +02:00