Thomas Camlong
8571b4dcb7
feat: add server-side TTL cache + in-flight dedup to request handler
...
10s default TTL deduplicates concurrent requests from multiple clients
polling the same integration. 83 users hitting the same widget every
30s now produce ~6 upstream calls/min instead of ~166.
2026-07-01 20:18:37 +02:00
Thomas Camlong
781378dc76
fix: address PR review findings
...
- WidgetCacheAge reads from query cache on every tick (reactive)
- Guard empty timestamps array (no -Infinity edge case)
- Docker widget: add explicit refetchInterval (not under [["widget"]])
- system-resources: split integrationIds reset into separate effect
- Remove unused React import in vpn widget
2026-07-01 15:36:00 +02:00
Thomas Camlong
445a100cd7
Merge branch 'feat/simplify-caching-tanstack-persister' of github.com:homarr-labs/homarr into feat/simplify-caching-tanstack-persister
2026-07-01 15:18:55 +02:00
Thomas Camlong
5784612d59
merge: incorporate dev and add context menu refetch
...
- Resolve dns-hole conflicts (keep simplified polling, no per-query opts)
- Calendar hover/pin UI and docker column visibility preserved
- Subscriptions from dev (docker, calendar) correctly excluded by auto-merge
- Error boundary invalidateQueries fix preserved alongside context menu
- Add "Refresh" button to widget context menu with live "Xs ago" indicator
2026-07-01 15:18:25 +02:00
homarr-renovate[bot]
aec6bb18c5
chore(deps): update dependency @scalar/api-reference-react to ^0.9.49 ( #6146 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-07-01 12:21:19 +00:00
Thomas
f9da71a19b
fix: quick wins — calendar, about, glances, admin UX, releases, iframe, notes ( #6116 )
2026-07-01 13:57:39 +02:00
homarr-renovate[bot]
b83c8b6546
chore(deps): update dependency posthog-js to ^1.393.5 ( #6135 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-30 21:53:10 +00:00
homarr-renovate[bot]
0e4189f693
chore(deps): update dependency dockerode to ^5.0.1 ( #6130 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-30 20:09:36 +00:00
homarr-renovate[bot]
1cf010e9fb
chore(deps): update node.js to v24.18.0 ( #6107 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-30 18:11:58 +00: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
9ed55d57dd
Main ( #6138 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Releases Homarr <175486441+homarr-releases[bot]@users.noreply.github.com>
2026-06-30 17:52:37 +02:00
homarr-crowdin[bot]
8cac0b11c1
chore(lang): updated translations from crowdin ( #6061 )
2026-06-30 14:02:29 +02:00
homarr-renovate[bot]
5f011e8456
chore(deps): update turbo monorepo to ^2.10.0 ( #6129 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-29 20:22:40 +00:00
homarr-renovate[bot]
9e1b529288
chore(deps): update dependency nanoid@>=4.0.0 <5.0.9 to >=5.1.16 ( #6131 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-29 20:14:32 +00:00
homarr-renovate[bot]
4ad115dd2d
chore(deps): update dependency posthog-js to ^1.393.4 ( #6127 )
...
* chore(deps): update dependency posthog-js to ^1.393.4
* style: auto-fix lint and format
---------
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-29 20:01:36 +00:00
27209a5dde
chore: add integration CODEOWNERS ( #6086 )
...
Co-authored-by: Manuel <30572287+manuel-rw@users.noreply.github.com >
Co-authored-by: Afonso Jorge Ramos <afonsojorgeramos@gmail.com >
2026-06-29 18:56:44 +02:00
Thomas
ed33748a49
Merge pull request #6118 from darbyjack/docs/warrior
2026-06-29 15:12:57 +02:00
homarr-renovate[bot]
7a21e2a9c3
chore(deps): update dependency @playwright/test to ^1.61.1 ( #6120 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-28 21:14:08 +00:00
darbyjack
f66469d797
feat(docs): addd in documentation for archiveteam warrior
2026-06-28 15:45:52 -05:00
homarr-renovate[bot]
c4a0c818d0
chore(deps): update mantine monorepo to ^9.4.0 ( #6102 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-28 19:32:49 +00:00
homarr-renovate[bot]
ef016061ae
chore(deps): update pnpm to v11.9.0 ( #6117 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-28 17:26:09 +00:00
homarr-renovate[bot]
3492700e6b
chore(deps): update dependency vite to ^8.1.0 ( #6114 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-28 14:06:36 +00:00
homarr-renovate[bot]
590d316671
chore(deps): update dependency vite@>=5.0.0 <=5.4.18 to >=8.1.0 ( #6115 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-28 14:03:05 +00:00
homarr-renovate[bot]
6e9d20e651
chore(deps): update dependency recharts to ^3.9.0 ( #6113 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-28 14:00:52 +00:00
homarr-renovate[bot]
ed829fddfa
chore(deps): update dependency posthog-js to ^1.393.0 ( #6112 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-28 13:57:57 +00:00
homarr-renovate[bot]
ed8b8a40eb
chore(deps): update dependency @vitejs/plugin-react to ^6.0.3 ( #6110 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-28 11:18:49 +00:00
homarr-renovate[bot]
7bc3bbb8c0
chore(deps): update dependency @gfazioli/mantine-onboarding-tour to ^4.0.6 ( #6109 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-28 09:03:24 +00:00
homarr-renovate[bot]
74943ef9bc
chore(deps): update dependency hono@<4.6.5 to >=4.12.27 ( #6108 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-28 05:28:04 +00:00
homarr-renovate[bot]
5dd7f839ee
chore(deps): update dependency axios@>=1.0.0 <1.8.2 to >=1.18.1 ( #6104 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-28 00:16:33 +00:00
homarr-renovate[bot]
d8c6c0f978
chore(deps): update dependency posthog-js to ^1.391.4 ( #6094 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-28 00:16:09 +00:00
homarr-renovate[bot]
75b2d1bd1b
chore(deps): update dependency oxlint to ^1.71.0 ( #6101 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-28 00:15:23 +00:00
homarr-renovate[bot]
7c12a9ce48
chore(deps): update dependency @scalar/api-reference-react to ^0.9.48 ( #6103 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-28 00:13:44 +00:00
homarr-renovate[bot]
9033acc66c
chore(deps): update dependency oxfmt to ^0.56.0 ( #6100 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-06-27 22:17:27 +00:00
Thomas
a42dc34d34
Revert "feat(config): enable pnpm global virtual store for worktree support" ( #6106 )
2026-06-27 23:37:36 +02:00
euduardo
db3d58821e
feat(widgets): show calendar events on hover with pin on click ( #2637 ) ( #6081 )
...
feat(widgets): show calendar events on hover with pin on click (#2637 )
docs(widgets): update calendar interactions section for hover behavior
2026-06-27 22:49:26 +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 and ajnart
2443f1cd3f
fix: dns-hole widgets showing stale disconnected state ( #6096 )
...
Co-authored-by: ajnart <ajnart@users.noreply.github.com >
2026-06-27 22:37:34 +02:00
Thomas
3864727502
feat(config): enable pnpm global virtual store for worktree support ( #6098 )
2026-06-27 13:23:01 +02:00
ajnart
39ffdd2830
style: auto-fix lint and format
2026-06-27 11:07:07 +00:00
Thomas Camlong
8e2cac6bf0
fix(lint): remove non-null assertion in VPN widget
2026-06-27 13:06:02 +02:00
Thomas Camlong
1cd04aaf45
fix: cache update checker responses for 30 minutes
...
GitHub API has strict rate limits; avoid hitting it on every poll.
2026-06-27 12:24:54 +02:00
ajnart
482e74f8c7
style: auto-fix lint and format
2026-06-27 10:15:09 +00:00
Thomas Camlong
12bf6ee4be
fix: address CodeRabbit review findings
...
- docker-table: inspect refetch result instead of .catch() (TQ v5 compat)
- rssFeed: sort all entries by date before slicing to max posts
- toValidDate: reject null/boolean inputs before Date construction
- system-resources: reset chart history when integrationIds changes
- settleIntegrationQueries: wrap fn in async boundary for safe allSettled
2026-06-27 12:13:52 +02:00
Thomas Camlong
45c58c967e
revert: re-apply all deletions and request handler simplifications
...
Restores the full PR changes after CodeRabbit review window.
2026-06-27 12:09:48 +02:00
Thomas Camlong
e9611e8098
chore: temporarily restore deleted files for CodeRabbit review
...
Restoring 27 deleted files and 26 trivially-changed request handlers
to bring the PR under CodeRabbit's 150-file review limit.
These will be re-deleted in the next commit.
2026-06-27 11:49:15 +02:00
homarr-releases[bot]
f3608b26a0
chore: update bug report template ( #6091 )
...
Co-authored-by: Releases Homarr <175486441+homarr-releases[bot]@users.noreply.github.com>
2026-06-26 18:43:53 +00:00
Thomas Camlong
96fe0d55c7
merge: incorporate dev changes and migrate VPN widget
...
Resolve merge conflicts favoring our simplified caching architecture:
- cron-jobs/index.ts: keep reduced job set (no integration cron jobs)
- en.json: keep reduced cron job labels
- docker-table.tsx: keep refetch() approach, adopt dev's initialData format
Migrate new VPN widget to polling architecture:
- Remove VPN cron job and subscription-based pattern
- Simplify request handler to createIntegrationRequestHandler
- Simplify tRPC router to use getDataAsync + settleIntegrationQueries
- Convert widget from useSuspenseQuery + subscription to useQuery with polling
2026-06-26 20:38:13 +02:00
Thomas
73bed51df8
fix(widgets): make downloads widget table background transparent ( #6025 )
...
The MantineReactTable defaults table cell backgrounds to
var(--mantine-color-body) which is opaque. This makes the
downloads widget table block appear solid while the footer
and other widgets correctly show the board's background.
Added a styles.css targeting table elements to force
background-color: transparent, following the same pattern
used by the beszel-system-table widget. Also added
bg=transparent to mantinePaperProps for the Paper wrapper.
2026-06-26 20:27:25 +02:00
Releases Homarr
ab9aca8b60
chore(release): 1.68.0 [skip ci]
v1.68.0
2026-06-26 18:23:57 +00:00
homarr-releases[bot]
dcde2819eb
chore(release): automatic release v1.68.0
2026-06-26 18:22:47 +00:00