Thomas Camlong
ca6a019c1e
test(v2): stabilize production E2E flows
2026-08-09 00:10:49 +02:00
Thomas Camlong
dd63d5600b
merge dev into v2
2026-08-08 19:54:57 +02:00
Thomas
b32ad82850
perf: cut cold route compilation and unblock preview images ( #6441 )
2026-08-07 20:24:26 +02:00
homarr-crowdin[bot]
85fcea3837
chore(lang): updated translations from crowdin ( #6500 )
2026-08-07 18:22:43 +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
homarr-crowdin[bot]
fcc5130068
chore(lang): update translations from crowdin ( #6457 )
2026-07-31 23:50:10 +02:00
Thomas
61128ddcc8
fix(navidrome): clean up audio stats integration ( #6493 )
2026-07-31 14:20:51 +02:00
Thomas
557ebe0a2f
fix: harden v2 custom widgets and Workshop ( #6480 )
2026-07-31 13:28:53 +02:00
Thomas
906c9f11fa
feat(widgets): rework downloads widget with mantine-datatable ( #6430 )
2026-07-28 21:50:09 +02:00
homarr-crowdin[bot]
387db030cd
chore(lang): updated translations from crowdin ( #6283 )
2026-07-23 09:14:14 +02:00
Thomas
4f6e335f72
fix(custom-widgets): address final v2 review feedback ( #6451 )
2026-07-23 02:11:32 +02:00
Thomas
df967751f6
fix(custom-widgets): address v2 merge review ( #6446 )
2026-07-23 01:55:15 +02:00
Bergasha
7184bc09c1
feat(clock widget): Adds animated weather and temp ( #6372 )
2026-07-23 00:04:32 +02:00
Thomas
6aceb2fd1f
feat(custom-widgets): complete Custom JSX v2 ( #6390 )
2026-07-22 20:47:19 +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
60cbd7bb7a
Merge branch 'dev' into v2
2026-07-18 23:00:30 +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
106c3bfa90
Merge branch 'dev' into v2
2026-07-16 10:21:40 +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 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
7887ce12c0
fix(integrations): resolve intermittent Seerr/Overseerr crashes and add query status to context menu ( #6347 )
2026-07-15 11:41:18 +02:00
Bergasha
807e5eb2a9
feat(docker-widget): replace footer timestamp text with compact refresh button ( #6307 )
2026-07-12 14:51:56 +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
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
homarr-crowdin[bot]
713fcd6f3f
chore(lang): updated translations from crowdin ( #6240 )
2026-07-10 17:30:10 +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
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
homarr-crowdin[bot]
0e365ed53c
chore(lang): updated translations from crowdin
...
* chore(lang): update translations from crowdin
* chore(lang): update translations from crowdin
---------
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2026-07-06 02:04:20 +00:00
homarr-crowdin[bot]
5b91687912
chore(lang): updated translations from crowdin
...
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2026-07-05 01:57:18 +00:00
homarr-crowdin[bot]
7635031fdf
chore(lang): updated translations from crowdin ( #6143 )
2026-07-04 08:58:20 +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
2c1a5c92e8
chore(i18n): revert non-English translations to dev
...
Keep translation changes in en.json only; Crowdin handles other locales.
2026-07-01 17:25:43 +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 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
homarr-crowdin[bot]
8cac0b11c1
chore(lang): updated translations from crowdin ( #6061 )
2026-06-30 14:02:29 +02:00
Bergasha
076526293d
feat(docker-widget): add per-column visibility toggle ( #6093 )
...
* Add 'Columns to show' label in Docker stats
* feat: Add column translation keys for Docker widget
* feat: Enhance table with column visibility state
Added column visibility state management for the table.
* Add 'noColumns' error message to en.json
2026-06-27 22:44:39 +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