Commit Graph
61 Commits
Author SHA1 Message Date
ajnart 9da3ff3e9d feat: add assistant board styling tools 2026-08-13 19:56:25 +02:00
ajnart ebce24ba67 fix: invoke mutations before approval 2026-08-13 19:56:23 +02:00
ajnart f29e604bc1 feat: improve assistant confirmations 2026-08-13 19:56:23 +02:00
ajnart 50deb638fb feat: improve assistant background controls 2026-08-13 19:56:22 +02:00
ajnart df874dd2db feat: render assistant content 2026-08-13 19:56:21 +02:00
ajnart 26ede97407 fix: send provider model ids 2026-08-13 19:56:20 +02:00
ajnart a65dc2841f fix: address assistant capability review 2026-08-13 19:56:20 +02:00
ajnart 09a85e69c1 feat: expand assistant interaction capabilities 2026-08-13 19:56:19 +02:00
ajnart e53f63b373 refactor: remove assistant chat archiving 2026-08-13 19:56:18 +02:00
ajnart f86120016c fix: surface assistant stream errors 2026-08-13 19:56:16 +02:00
ajnart 97d26bde5e feat: expand assistant providers and polish experience 2026-08-13 19:56:14 +02:00
ajnart 12f950ce4a fix: derive assistant approval key at runtime 2026-08-13 19:56:13 +02:00
ajnart 16c86079e6 fix: harden assistant integration 2026-08-13 19:56:13 +02:00
ajnart fd69cd28f0 feat: add Homarr assistant 2026-08-13 19:56:10 +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 0015a6d88d fix(immich): use thumbnail endpoint instead of original for album carousel (#6396)
* fix(immich): use thumbnail endpoint instead of original for album carousel

Switches from /api/assets/:id/original to /api/assets/:id/thumbnail to fix
HEIC image incompatibility (thumbnails are always JPEG), reduce bandwidth,
and improve loading speed.

Closes #6388

* working on immich

* Improve image proxy error handling

* fix(image-proxy): use trusted fetch response type

* docs(immich): require Asset View permission
2026-07-20 14:53:27 +02:00
Thomasandhomarr-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 19f9769d9e fix(manage/about): bypass self-fetch + add manage error boundary (LLM exploration) (#6009)
* fix(manage/about): bypass self-fetch to prevent ECONNREFUSED crash

The /manage/about page fetched its own API routes over HTTP
(http://$HOSTNAME:3000/api/about/...). When the server could not
reach itself (misconfigured HOSTNAME, restricted container networking,
reverse-proxy setups), fetch threw ECONNREFUSED and the whole page
crashed with a full-page Next.js error (issue #6008).

All four routes were force-static serving static JSON / a direct fs
read, so the HTTP round-trip was unnecessary. Replace the fetches
with direct JSON imports and a direct getDependenciesAsync() call,
eliminating the self-network dependency entirely.

Also add a manage-level error.tsx boundary (Next.js 16 convention) so
that any future runtime error in a manage page renders a friendly,
localised fallback inside the existing layout (sidebar stays usable)
instead of the ugly default full-page error.

Exploration draft by an LLM.

Refs #6008

* style: auto-fix lint and format

* refactor: use @static-data path alias, simplify error ternary

- Add @static-data/* tsconfig path alias to replace 7-level relative
  imports (../../../../../../../static-data/...) with clean alias
  imports across the about page and all 3 API route handlers.
- Simplify error.tsx: replace ternary with && short-circuit.
- Preserve CI lint bot's .sort() -> .toSorted() fix.

Refs #6008
2026-06-26 20:12:39 +02:00
a2bb53a8b8 feat: add VPN status widget (#5812)
Co-authored-by: Lokesh-Kumar-Dudi <lkumardudi@gmail.com>
Co-authored-by: Thomas Camlong <thomas@ajnart.fr>
2026-06-26 14:29:23 +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 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
Thomas Camlong c20522946c style: auto-fix lint and format 2026-06-12 15:58:31 +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 6baff7be3d feat: add MCP server for AI assistant integration (#5882) 2026-06-10 18:28:34 +02:00
Thomas 5d1f268438 feat: SQLite backup & restore with WASM preview (#5887) 2026-06-10 18:26:17 +02:00
Meier LukasandCopilot ce8e330c82 fix(openapi): openapi document empty (#5579)
Co-authored-by: Copilot <copilot@github.com>
2026-04-29 23:29:42 +02:00
Meier Lukas 3d202d409f feat(about): add opencollective contributors (#5481) 2026-04-27 22:35:42 +02:00
Meier Lukas c48588c6a7 fix(about): add missing dependencies (#5480) 2026-04-13 16:51:38 +02:00
Manuel 4f2b8217f8 fix: warnings in code 2026-03-27 18:12:27 +01:00
Matti AirasandClaude Opus 4.5 0dc61a88b8 feat(auth): extend API key authentication to tRPC endpoints (#4732)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 18:43:17 +01:00
Meier Lukas d348abfe4a refactor(logs): move to core package (#4586) 2025-12-16 23:37:44 +01:00
Manuel aaa23f3732 Merge commit from fork
* fix: sanitize user-media svg api endpoint using isomorphic dompurify

* fix: add iframe sandbox to prevent priviledge escalation
2025-11-14 18:00:15 +01:00
homarr-renovate[bot]andMeier Lukas d66cccb0db chore(deps): update dependency typescript to ^5.9.2 (#3722)
* chore(deps): update dependency typescript to ^5.9.2

* fix: typecheck issue

---------

Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
2025-08-01 13:59:35 +02:00
Meier Lukas 66ebb5061f feat(widgets): add media release widget (#3219) 2025-07-20 16:59:03 +02:00
Meier Lukas 579dd5763d feat(logs): improve logs by logging errors with causes and metadata (#2703)
* feat(logs): improve logs by logging errors with causes and metadata

* fix: deepsource issue
2025-03-26 21:53:51 +01:00
Meier Lukas 96fd5cc35e fix: use hostname for suspense query url (#2187) 2025-01-30 22:14:14 +01:00
Meier Lukas e47d497560 chore: add stack and cause to trpc error logging (#2033) 2025-01-21 11:02:33 +01:00
Meier Lukas d98552540a fix(deps): update nextjs monorepo to v15 (major) (#1844) 2025-01-04 19:47:23 +01:00
Meier Lukas 550bca6dee fix: mysql operations not working (#1728) 2024-12-19 16:10:22 +01:00
Meier Lukas 2d7efc3ffa fix: open-api doc generation failing, post patch and delete not exported (#1565) 2024-11-28 20:21:29 +01:00
Manuel d76b4d0ec1 feat: #1243 add api routes (#1286) 2024-11-23 22:05:44 +01:00
Meier Lukas 72eda1f225 fix: api keys authentication does not work #1511 (#1512)
* fix: api keys authentication does not work #1511

* chore: add ip and user-agent to logs of unauthenticated api-keys
2024-11-20 21:55:04 +01:00
Meier Lukas cf5bcab732 fix: credentials login not working cause of cookie secure flag not possible for http (#1421)
* fix: credentials login not working cause of cookie secure flag not possible for http

* chore: add missing comment

* fix: lint issue
2024-11-04 19:20:19 +01:00
Meier Lukas db198c6dab feat: add media management (#1337)
* feat: add media management

* feat: add missing page search item

* fix: medias should be hidden for anonymous users

* chore: rename show-all to include-from-all-users

* fix: inconsistent table column for creator-id of media

* fix: schema check not working because of custom type for blob in mysql

* chore: temporarily remove migrations

* chore: readd removed migrations
2024-10-26 22:45:32 +02:00
Meier Lukas eb21628ee4 refactor: replace signIn callback with signIn event, adjust getUserByEmail in adapter to check provider (#1223)
* refactor: replace signIn callback with signIn event, adjust getUserByEmail in adapter to check provider

* test: adjusting tests for adapter and events

* docs: add comments for unknown auth provider

* fix: missing dayjs import
2024-10-07 21:13:15 +02:00
ManuelandMeier Lukas b14f82b4bb feat: add api keys (#991)
* feat: add api keys

* chore: address pull request feedback

---------

Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
2024-10-05 16:18:31 +02:00
Manuel 08c6303fa6 feat: add healthchecks (#1187) 2024-09-28 23:02:28 +02:00
ManuelandMeier Lukas 19cd41a8e5 feat: add crawling settings (#959)
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
2024-09-06 22:51:18 +02:00