Thomas
445e191490
fix: persist Beszel server selection and improve picker visibility ( #5985 )
2026-06-17 17:06:23 +02:00
Thomas Camlong
066fb038b5
Merge remote-tracking branch 'origin/dev' into feat/beszel-fixes
2026-06-16 16:08:32 +02:00
Thomas Camlong
0a05bbed8d
fix(beszel): review fixes for MCP and widget styling
...
- Throw TRPCError instead of returning null when no integration
- Sort beszelRouter import alphabetically in mcp.ts
- Replace ternary with lookup table for background color
- Mention integration_all in MCP server instructions
2026-06-16 15:18:13 +02:00
Thomas Camlong
420c0c30e4
fix(beszel): MCP description accuracy and type strictness
...
- Add .default("1h") to timePeriod so MCP clients can omit it
- Include "1m" in the description's valid timePeriod values
- Clarify that getSystemStats uses only the first integrationId
- Use MantineSize type instead of plain string for itemRadius
2026-06-16 15:13:35 +02:00
Thomas Camlong
8600c63bab
feat(beszel): expose Beszel systems, alerts, and stats via MCP
...
Register beszelRouter in the MCP server with .meta({ mcp: enabled })
on getSystems, getAlerts, and getSystemStats procedures. AI assistants
can now query Beszel-monitored systems, view alerts, and fetch
historical metrics through the MCP protocol.
Ref #5968
2026-06-16 15:09:36 +02:00
Louis Bailleau
fb18b975b2
feat: add local group support for OIDC users ( #5952 )
2026-06-16 13:45:44 +02:00
Glare and Manuel
dd57ee2102
feat(integrations): add ArchiveTeam Warrior widget ( #5784 )
...
* feat(integrations): add ArchiveTeam Warrior widget
* feat(integrations): add support for basic auth for archive warrior
* refactor(integrations): address ArchiveTeam Warrior review feedback
* Increase cache duration from 1 to 5 minutes
---------
Co-authored-by: Manuel <30572287+manuel-rw@users.noreply.github.com >
2026-06-16 10:43:55 +02:00
Thomas Camlong
9aecb2ae13
refactor(beszel): replace last ternary in subscribeSystemStats
2026-06-15 17:33:58 +02:00
Thomas Camlong
16094876fa
fix(beszel): restore timePeriod cast and improve error visibility
...
- Restore timePeriod union cast to fix typecheck (TS2769)
- Clear live data on subscription error so error UI always shows
- Emit error when no integration is configured for live subscription
- Add error state to system select input when query fails
2026-06-15 15:55:41 +02:00
Thomas Camlong
a68eee24eb
fix(beszel): improve live subscription error handling and cleanup
...
- Surface subscription errors in useLiveStats via onError + error state
- Show error UI in live mode when SSE connection fails
- Abort SSE reader on subscribeTopic failure instead of silent log
- Guard mock realtime against pre-aborted signal to prevent interval leak
- Remove dead includeDocker from subscription input schema
2026-06-15 15:49:14 +02:00
ajnart
680cbc69d8
style: auto-fix lint and format
2026-06-15 13:00:46 +00:00
Thomas Camlong
c9769bf530
feat(beszel): add SSE subscription endpoint and per-period cache TTL
...
- Add subscribeSystemStats tRPC subscription bridging PocketBase SSE
- Add subscribeRealtimeMetrics to BeszelIntegration with SSE parsing
- Add error handling: try/catch in subscription, response check in topic POST
- Add cacheDurationForInput to request handler for per-period cache TTL
- Add mock subscribeRealtimeMetrics with 1s interval for dev testing
2026-06-15 14:58:47 +02:00
Thomas
a42af0e678
fix(boards): add permissions to board summary schema to fix manage page crash ( #5917 )
...
* fix(boards): add permissions to board summary schema to fix manage page crash
The getAllBoards query fetches userPermissions and groupPermissions
from the DB, but boardSummarySchema (the output validator) did not
include them. tRPC stripped the fields, causing a TypeError when
getBoardPermissionsAsync called .some() on undefined.
* fix(backup): cast Buffer to Uint8Array for NextResponse body
Node 24 narrowed the BodyInit type, making Buffer incompatible.
Wrapping in Uint8Array satisfies the type constraint.
* fix(lint): remove forbidden non-null assertions across backup and board code
Replace non-null assertions with safe guards, optional chaining, and
for-of iteration so oxlint passes in CI. Also remove unused Collapse import.
2026-06-10 19:51:56 +02:00
Thomas
aecbca2b81
feat: custom widgets ( #5889 )
2026-06-10 18:58:14 +02:00
Thomas
74443a49b2
feat(ui): add global query cache leveraging Redis ( #5811 )
2026-06-10 18:52:06 +02:00
Thomas
6baff7be3d
feat: add MCP server for AI assistant integration ( #5882 )
2026-06-10 18:28:34 +02:00
Thomas
d77c6f8d4e
feat: add Uptime Kuma, Audiobookshelf, Paperless-ngx, and Navidrome integrations ( #5910 )
2026-06-10 18:27:24 +02:00
Thomas
a4db9cf0dc
feat(beszel): add Beszel integration with system monitoring widgets ( #5900 )
2026-06-10 18:27:05 +02:00
Thomas
484b8cf9f1
fix: gracefully skip widgets with unknown kind instead of crashing ( #5915 )
2026-06-10 18:19:13 +02:00
Thomas Camlong
68f24e34d5
fix: disable onboarding tours when demo mode is enabled
...
Return completed tour status in demo mode so board and manage tours do not start for demo users.
2026-06-05 18:02:08 +02:00
Thomas and copilot-swe-agent[bot]
dbf021e04a
feat(docker): add container logs modal and stats columns ( #4807 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
2026-06-05 16:57:26 +02:00
Thomas
0b663a7fc6
feat(onboarding): guided management and board tours ( #5756 )
2026-06-05 16:54:50 +02:00
Afonso Jorge Ramos
0dc2558faf
feat: add PeaNUT integration and UPS monitoring widget ( #5862 )
2026-06-05 16:51:09 +02:00
Thomas
dd7a4908a3
feat(onboarding): enhance integration setup with Docker discovery and URL templating ( #5607 )
2026-06-05 16:50:35 +02:00
Thomas
0a6467979a
feat: add comprehensive demo mode with mock integrations ( #5870 )
2026-06-05 16:36:45 +02:00
Thomas and Meier Lukas
25d964a197
refactor(spotlight): registry-driven CMDK preferences ( #5817 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-06-05 16:26:48 +02:00
Thomas
3d3e3059a9
feat: media request search as first-class spotlight mode ( #5823 )
2026-06-05 16:09:14 +02:00
Thomas
fd10788838
fix(auth): relax password complexity requirements to suggestions-only ( #5764 )
2026-06-04 07:56:34 +02:00
Meier Lukas
650f761325
ci(format): fails to apply format due to conflict between --write and --check ( #5815 )
2026-05-29 11:07:48 +02:00
605af19cd8
refactor: replace ESLint + Prettier with OXC (oxlint + oxfmt) ( #5741 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
Co-authored-by: Meierschlumpf <63781622+Meierschlumpf@users.noreply.github.com >
2026-05-27 09:37:44 +02:00
Meier Lukas
6feb37dfd4
Merge branch 'main' into next
2026-05-08 23:46:21 +02:00
Ashton Batty and Meier Lukas
56af6bcaf0
feat(docker): Podman compatibility, multi-socket support, per-host error isolation ( #5425 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-08 17:31:56 +02:00
44bd16d677
fix(calendar): keep working integrations when one fails ( #5629 )
...
Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com >
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-07 22:02:21 +02:00
Thomas and Meier Lukas
b5c316b825
feat(spotlight): rework !bang search UX ( #4813 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-07 18:38:40 +02:00
43cc68bdd4
feat: add Umami Analytics integration and widget ( #5362 )
...
Co-authored-by: Josh G <febrile42@users.noreply.github.com >
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
Co-authored-by: Thomas <thomas@ajnart.fr >
2026-05-07 17:50:58 +02:00
homarr-renovate[bot] and Meier Lukas
a183339063
chore(deps): update dependency eslint to v10 ( #5038 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-02 21:41:16 +02:00
Meier Lukas
7561462594
Merge branch 'main' into next
2026-05-01 22:30:33 +02:00
Meier Lukas and Copilot
a1aa5505a3
perf(memory): combine 3 node processes into one ( #5600 )
...
Co-authored-by: Copilot <copilot@github.com >
2026-05-01 16:35:11 +02:00
Meier Lukas
e8edc203b6
fix: migrate from node-cron to croner ( #5407 )
2026-05-01 16:21:38 +02:00
Meier Lukas and Copilot
ce8e330c82
fix(openapi): openapi document empty ( #5579 )
...
Co-authored-by: Copilot <copilot@github.com >
2026-04-29 23:29:42 +02:00
Meier Lukas
72d636c0f0
refactor(deps): migrate to pnpm catalog ( #5464 )
2026-04-13 22:45:24 +02:00
homarr-renovate[bot]
c8a61a9df3
fix(deps): update react monorepo to v19.2.5 ( #5502 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-04-13 20:14:59 +00:00
homarr-renovate[bot]
7982def853
fix(deps): update dependency next to v16.2.3 [security] ( #5461 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-04-10 21:05:50 +02:00
Meier Lukas
2454cac7be
fix(security): remove salt from database ( #5412 )
2026-04-10 20:48:20 +02:00
7879b31630
feat: Anchor integration and Anchor Note widget ( #5040 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-04-10 20:43:43 +02:00
Kyle and Meier Lukas
22d599c0cf
feat: speedtest tracker integration ( #5363 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-04-10 19:04:42 +02:00
Meier Lukas
6ec058c835
feat(rss-feed): add optional poster ( #5452 )
2026-04-10 18:11:20 +02:00
Meier Lukas
faffb818f9
feat(rss-feed): add periodic live updates ( #5449 )
2026-04-09 22:45:44 +02:00
homarr-renovate[bot]
b619ba1d46
fix(deps): update tanstack-query monorepo to ^5.96.2 ( #5442 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-04-08 11:08:35 +00:00
homarr-renovate[bot]
72ad935ddf
fix(deps): update tanstack-query monorepo to ^5.96.1 ( #5421 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-04-06 09:17:17 +00:00