Thomas Camlong
39bef6dc00
feat(api): expose board CRUD via REST/OpenAPI and add addItem endpoint
...
Annotate getAllBoards (GET /api/boards), createBoard (POST /api/boards),
and deleteBoard (DELETE /api/boards/{id}) with OpenAPI and MCP metadata.
Add new board.addItem mutation (POST /api/boards/items) that places a
widget in the first empty section at the next free grid position, with
integration ID validation and full-board error handling.
Closes #5867
2026-06-09 00:18:25 +02:00
Thomas Camlong
e1cf9f167c
feat(api): add board summary and addItem validation schemas
...
Add boardSummarySchema for OpenAPI output on getAllBoards and
addItemToBoardSchema for the new addItem mutation input.
2026-06-09 00:18:25 +02:00
Thomas Camlong
7500128354
feat(mcp): rename sidebar entry from "API" to "API & MCP"
2026-06-08 23:38:31 +02:00
Thomas Camlong
cdb4d683fd
Merge remote-tracking branch 'origin/dev' into feat/add-mcp-server
...
# Conflicts:
# package.json
# pnpm-lock.yaml
# pnpm-workspace.yaml
2026-06-08 22:30:08 +02:00
Afonso Jorge Ramos
f6d5f97933
fix(integrations): support truenas json-rpc api, certificate trust, and api key auth ( #5861 )
...
* chore(integrations): add ws dependency for the truenas client
* feat(definitions): allow api key authentication for truenas
* fix(integrations): connect to truenas over trusted-certificate websocket with protocol autodetection
* test(integrations): cover truenas protocol detection and authentication
* refactor(integrations): avoid shorthand index variable in truenas mapping
* feat(integrations): add a websocket url helper to the integration base
* refactor(integrations): extract truenas connection handling into a client
2026-06-08 22:20:42 +02:00
Thomas Camlong
311fd2356a
fix(mcp): harden MCP route security and code quality
...
- Sanitize error messages to prevent leaking internal details
- Add isError flag to tool-not-found and no-caller responses
- Guard against undefined procedure before invocation
- Clear auth rate limit on successful authentication
- Move setInterval timers to globalThis to prevent dev hot-reload leaks
- Add try/catch + logging to OAuth token exchange
- Deduplicate auth error responses with helper function
- Replace ternary operators with lookup tables in UI
- Remove console.error monkey-patch for trpc-to-mcp warnings
- Use lookup table for media request answer actions
2026-06-07 01:45:28 +02:00
Thomas Camlong
873444fe48
feat(mcp): add Model Context Protocol server with AI integration
2026-06-06 22:52:51 +02:00
Thomas Camlong
efd37dca93
fix(db): log when UNSAFE_ENABLE_MOCK_INTEGRATION is enabled during seeding
...
Warn on startup seed when mock integration env flag is set, matching demo mode visibility.
2026-06-05 18:43:33 +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 Camlong
4f5f3e14a1
fix: sync docs sitemap and remove stale coolify ts-expect-error
2026-06-05 17:39:03 +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
homarr-crowdin[bot] and Meier Lukas
9ae8cb2768
chore(lang): updated translations from crowdin ( #5863 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-06-05 13:48:42 +02:00
Thomas
99346f288b
feat(widgets): add in-place app editing in widget edit modal ( #5809 )
2026-06-05 12:31:50 +02:00
Thomas
41fe5928f1
fix: add bookmark widget option to toggle card borders ( #5854 )
2026-06-04 11:07:31 +02:00
Afonso Jorge Ramos
2c6b7a818e
fix(immich): respect app color scheme in server-stats widget ( #5859 )
2026-06-04 09:50:02 +02:00
Thomas
fd10788838
fix(auth): relax password complexity requirements to suggestions-only ( #5764 )
2026-06-04 07:56:34 +02:00
homarr-crowdin[bot]
d86fe3ddf0
chore(lang): updated translations from crowdin
...
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2026-06-02 02:23:34 +00:00
homarr-crowdin[bot]
07d991a0a1
chore(lang): updated translations from crowdin
...
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2026-05-30 05:27:45 +00:00
Thomas and Meier Lukas
2991777b0a
feat(users): rework general settings ( #4915 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-29 21:22:55 +02:00
Thomas and Meier Lukas
6cc2ac56a9
fix: prevent GitHub releases check from blocking app on API failure ( #5807 )
...
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-29 21:14:51 +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
David
be61602576
feat(auth): support custom token endpoint auth methods ( #5806 )
2026-05-29 10:51:28 +02:00
homarr-crowdin[bot]
d01834d975
chore(lang): updated translations from crowdin ( #5814 )
2026-05-29 10:07:48 +02:00
Thomas
4454e3fb7a
fix: matine ui fixes for concistency ( #5733 )
2026-05-28 10:59:03 +02:00
Thomas
c252b4f9ac
feat(manage): unified management page layout ( #5758 )
2026-05-28 10:56:46 +02:00
Vivaan Dhawan
b19549b601
fix: parse Speedtest Tracker created_at as local time ( #5751 )
2026-05-28 07:48:00 +00:00
homarr-renovate[bot] and Thomas Camlong
f7ea1b33a0
chore(deps): update mantine monorepo to v9 ( #5411 )
...
Co-authored-by: Thomas Camlong <thomas@ajnart.fr >
2026-05-27 17:29:52 +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
homarr-crowdin[bot]
ff974bf343
chore(lang): updated translations from crowdin
...
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2026-05-24 02:04:49 +00:00
Meier Lukas
a93f03eae4
Merge branch 'main' into dev
2026-05-22 22:46:15 +02:00
Thomas and Manuel
dade477b32
feat(seed): add demo mode with pre-seeded user ( #5739 )
...
Co-authored-by: Manuel <30572287+manuel-rw@users.noreply.github.com >
2026-05-21 16:08:46 +02:00
Meier Lukas
7cd30b640c
fix(docker): improve icon matching ( #5693 )
...
* fix(docker): improve icon matching
* fix: unused import
2026-05-18 21:45:33 +02:00
Austin
e9142c0dbc
fix(downloads-widget): increase name column default width ratio
2026-05-18 21:44:47 +02:00
StrandedTurtle and Meier Lukas
7a1272146c
fix(tracearr): support absolute image urls ( #5654 )
...
* Update base URL handling for tracearr integration
* fix: remove unnecessary prefix from bcrypt hashing
* refactor: add is-absolute-url check
* test: add unit tests
---------
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-18 21:39:01 +02:00
Meier Lukas
4aa43ae27a
Merge branch 'dev' into beta [skip-ci]
2026-05-15 19:25:38 +02:00
Meier Lukas
ab867a9e50
chore: remove temporary ts-expect-error
2026-05-10 10:40:29 +02:00
homarr-crowdin[bot]
968338aa97
chore(lang): updated translations from crowdin ( #5685 )
...
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
2026-05-10 10:38:59 +02:00
Meier Lukas
3a8abe4415
chore(docs): update sitemap
2026-05-08 23:48:31 +02:00
Meier Lukas
6feb37dfd4
Merge branch 'main' into next
2026-05-08 23:46:21 +02:00
Meier Lukas
756e8d1724
feat(qbittorrent): add api-key support ( #5677 )
2026-05-08 20:08:37 +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
036f6aa185
chore(deps): update dependency recharts to v3 ( #4302 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
Co-authored-by: Manuel <30572287+manuel-rw@users.noreply.github.com >
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-08 15:02:52 +02:00
homarr-crowdin[bot] and Meier Lukas
12a1bd7e2e
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>
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com >
2026-05-08 13:54:36 +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