ajnart
901fd3d940
feat: reuse authentication for all HTTP integrations
2026-09-12 23:33:23 +02:00
ajnart
c2a587bda7
fix: share integration transport and enforce access
2026-09-12 20:26:39 +02:00
ajnart
52c82f72db
feat: reuse integrations in custom widgets
2026-09-12 20:17:07 +02:00
Thomas
f18033ddaa
fix: sync dev fixes into v2 and improve regression reports ( #6821 )
...
Co-authored-by: Homarr Update Contributors <210161987+homarr-update-contributors[bot]@users.noreply.github.com>
Co-authored-by: Crowdin Homarr <190541745+homarr-crowdin[bot]@users.noreply.github.com>
Co-authored-by: Releases Homarr <175486441+homarr-releases[bot]@users.noreply.github.com>
Co-authored-by: Thomas <thomas@ajnart.fr >
Co-authored-by: homarr-releases[bot] <175486441+homarr-releases[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: homarr-update-contributors[bot] <210161987+homarr-update-contributors[bot]@users.noreply.github.com>
Co-authored-by: homarr-crowdin[bot] <190541745+homarr-crowdin[bot]@users.noreply.github.com>
Co-authored-by: Afonso Jorge Ramos <afonsojorgeramos@gmail.com >
Co-authored-by: Danura30082 <danura30082+github@gmail.com >
Co-authored-by: Kushie <122986913+kushiemoon-dev@users.noreply.github.com >
Closes #6604
2026-09-12 15:31:04 +02:00
Thomas
9bc3802b3b
fix(wud): authenticate HTTP requests and validate container access ( #6831 )
2026-09-12 10:57:36 +02:00
Thomas
2049c6ade0
fix: tighten v2 setup and release safeguards ( #6824 )
2026-09-12 10:47:35 +02:00
leafyelin
6cca757493
feat(plugins): add llama.cpp server integration and widget ( #6765 )
2026-09-10 20:06:13 +02:00
Thomas
1102ad8342
fix: protect demo users from deletion and password changes ( #6819 )
2026-09-10 19:52:47 +02:00
Thomas
7c00c18a42
docs(mcp): restore custom widget authoring guidance ( #6817 )
2026-09-10 19:24:55 +02:00
Thomas
ea3dac752f
fix(mcp): harden tool schemas and dispatch ( #6815 )
2026-09-10 19:19:47 +02:00
Thomas
f994d665d2
ci: remove automatic test gates and trim test suites ( #6816 )
...
* ci: remove automatic test gates and trim test suites
* docs: remove CI audit report
2026-09-10 19:14:31 +02:00
Thomas
3358b6337f
fix(mcp): use JSON-compatible invitation dates ( #6814 )
2026-09-10 17:53:38 +02:00
Thomas
61d3fd5f08
fix(board): restore container grid geometry ( #6808 )
2026-09-09 15:04:27 +02:00
Thomas
3aac106156
docs: correct v2 beta installation guidance ( #6809 )
2026-09-09 12:09:14 +02:00
Thomas
923905c529
fix: keep bookmark density consistent ( #6804 )
...
* fix: keep bookmark density consistent
* fix: prioritize bookmark titles in compact rows
* fix: preserve compact bookmark text fallback
2026-09-08 10:39:41 +02:00
Thomas
a4a903d7c3
feat: polish release v2 experience ( #6800 )
2026-09-07 19:17:37 +02:00
Thomas
925b0fb801
fix: improve bookmark widget density ( #6802 )
...
* fix: improve bookmark widget density
* fix: render dense bookmark grids as icons
* fix: honor bookmark column density
2026-09-07 13:47:11 +02:00
Thomas
8a0cf15bf7
docs: finalize Homarr 2.0 release article ( #6790 )
2026-09-06 17:48:08 +02:00
Thomas
724dee55c5
fix(weather): handle disabled external connections ( #6780 )
2026-09-06 15:35:06 +02:00
Thomas and ajnart
ca7be8f3ad
fix(integrations): support UniFi controller default ports ( #6787 )
...
* fix(integrations): use Unifi default port 8443 when no port is given
The node-unifi library hardcodes https:// in its base URL and the
Unifi controller API only speaks HTTPS. When a user adds the
integration with a bare http:// or https:// URL, getPortFromUrl
returned 80 or 443, and the library attempted a TLS handshake on
the wrong port. The server's plain HTTP response caused
'EPROTO ... wrong version number'.
Derive the port from the user's explicit port, or fall back to 8443
(the integration's defaultPort). Closes #6207 .
* style: auto-fix lint and format
* fix(integrations): support UniFi controller default ports
* docs(unifi): resolve review leftovers
---------
Co-authored-by: ajnart <ajnart@users.noreply.github.com >
2026-09-06 15:32:45 +02:00
98aa6f01f2
feat(auth): support nested OIDC claim paths ( #6785 )
...
* feat(auth): support nested OIDC claim paths
* test(auth): cover OIDC profile name fallbacks
* test(auth): cover missing OIDC username fallback
* test(auth): preserve OIDC provider guard
---------
Co-authored-by: Artur <145776561+arturict@users.noreply.github.com >
Co-authored-by: arturict <arturict@users.noreply.github.com >
2026-09-06 15:32:31 +02:00
Thomas
0c11c2785e
docs(helm): sync current chart metadata ( #6783 )
2026-09-06 15:32:20 +02:00
Thomas
a62d11b5cd
fix(mcp): honor public OAuth origin ( #6779 )
2026-09-06 15:31:57 +02:00
Thomas
28e242417d
fix(backup): prompt re-login after restore ( #6778 )
2026-09-06 15:31:51 +02:00
Thomas
0ffa95c505
docs: make environment examples safe and current ( #6777 )
...
* docs: make SQLite environment example runnable
* docs: remove unsafe source secret examples
* docs(auth): remove unsafe SSO environment values
* docs(auth): clarify OIDC credential placeholders
2026-09-06 15:31:40 +02:00
Thomas
b708f687fa
docs: add v1 to v2 upgrade guide ( #6774 )
...
* docs: add v1 to v2 upgrade guide
* docs: simplify v2 backup guidance
2026-09-06 15:31:33 +02:00
Thomas
35155b18b9
feat: adopt Mantine 9.6 components ( #6758 )
2026-09-03 18:21:51 +02:00
Thomas
b3aa6155cc
docs: streamline release v2 documentation ( #6760 )
2026-09-03 17:03:10 +02:00
Thomas
f57a660088
feat: add global server custom CSS ( #6753 )
...
* feat: add global server custom CSS
* refactor: reuse CodeMirror for CSS editors
2026-08-31 14:26:58 +02:00
Thomas
5e23659d99
feat(assistant): optimize MCP and custom widget authoring ( #6743 )
...
* feat(assistant): optimize MCP and custom widget authoring
* fix(assistant): isolate server-safe JSX analyzer
* refactor(assistant): generate MCP tool staging
* fix(assistant): preserve widget placement follow-up
* fix(ci): allow fast gate to finish
* fix(custom-widgets): address review findings
* fix(custom-widgets): split preview evidence module
* style: format assistant custom widget files
* fix(custom-widgets): sync formatted skill schema
2026-08-30 23:43:29 +02:00
Thomas
38f4b0e1f8
feat!: prepare Homarr v2 release ( #6746 )
2026-08-30 22:54:33 +02:00
Thomas
90c7493f15
fix: make bookmark compact grid actually compact ( #6747 )
2026-08-30 21:37:37 +02:00
Thomas
8d8dec5749
feat(widgets): consolidate integration metadata + shared response caching ( #6691 )
2026-08-30 18:38:07 +02:00
Bergasha
ea250d418d
Revert "feat(header): add opt-in auto-hide-on-scroll for the header ( #6738 )" ( #6740 )
...
This reverts commit e58c229664 .
2026-08-29 15:19:20 +10:00
Bergasha
e58c229664
feat(header): add opt-in auto-hide-on-scroll for the header ( #6738 )
...
* feat(header): add opt-in auto-hide-on-scroll for the header
New per-user header preference (default off): when enabled, the
header slides away while scrolling down and reappears on scroll-up or
near the top of the page. Disabled while in board edit mode, and
skipped entirely while focus is inside the header. Only applies when
the header is set to visible - the existing hover-to-reveal floating
controls already cover the hidden-header case.
* chore(api): regenerate the checked-in OpenAPI schema
check:openapi was failing in CI - the schema on disk hadn't been
regenerated after the header preferences gained autoHideOnScroll.
Add scripts/generate-openapi-schema.mts (and a generate:openapi
package script) alongside the existing check script so this is a
one-command fix next time the schema drifts.
* docs(users): document the header studio's visibility and auto-hide options
Header customization (drag-to-arrange controls, hide/show, hover-reveal
and pin, auto-hide-on-scroll) had no documentation on the user general
settings page.
2026-08-29 14:56:02 +10:00
Thomas
ee08beef59
fix(widgets): use readable onboarding sizes ( #6739 )
2026-08-29 06:55:31 +02:00
Bergasha
7855278ed1
fix(board): give AppShell root a viewport-height floor ( #6736 )
...
* fix(board): give AppShell root a viewport-height floor when a background is set
The board canvas sizes itself to its content, and AppShell runs in
'static' mode so <main> doesn't force a 100dvh minimum either. That
means a board's background image only covers as much height as the
content needs - collapsing a container (or any board with short
content) leaves flat page background showing below it instead of the
background continuing to the bottom of the viewport, looking like a
big empty void.
Root-caused via a local repro: the grid/reflow system was already
shrinking the collapsed container's own space correctly (verified the
live-measured canvas height matched exactly, not the stale debug
attribute) - the void was purely a background-sizing issue on the
AppShell root, unrelated to the collapse/layout logic itself.
* docs(boards): document background minimum-height behavior
2026-08-29 09:26:15 +10:00
Thomas
aa179f1ec0
fix: decouple responsive layout roles from breakpoints
...
* fix: rework responsive layout breakpoints
* fix: keep widget edit overlays visible
* fix: inset widget edit action
* fix: use valid widget inset token
2026-08-28 17:11:51 +02:00
Thomas
7da2e10064
fix: address release v2 review findings ( #6708 )
2026-08-27 13:59:42 +02:00
Thomas
a002b91add
feat: reduce disruptive UI confirmations ( #6688 )
...
* feat: reduce disruptive UI confirmations
* fix: keep destructive confirmations red
2026-08-27 12:01:36 +02:00
Thomas
643ecf3df7
fix(widgets): restore compact v1 surfaces ( #6710 )
2026-08-27 11:08:17 +02:00
Thomas
f0eddda573
fix: preserve assistant CSS and daily quota history ( #6705 )
...
* fix: route custom css through review form
* feat(workshop): retain daily assistant quotas
2026-08-26 14:48:08 +02:00
Thomas
a56ec5d06a
feat: support every widget in the demo dashboard ( #6696 )
2026-08-26 08:44:55 +02:00
Thomas
9303dbd284
feat: add configurable headers and instance branding ( #6690 )
2026-08-25 17:09:47 +02:00
Thomas
97d8390b20
feat: rebuild command menu ( #6692 )
2026-08-24 15:40:09 +02:00
Thomas
fcca57ddf7
feat(custom-widgets): improve authoring workbench ( #6689 )
...
* feat(custom-widgets): improve authoring workbench
* fix(custom-widgets): address review and CI
* refactor(custom-widgets): satisfy architecture checks
* fix(custom-widgets): isolate workbench typing updates
* fix(custom-widgets): harden workbench state
2026-08-24 08:55:00 +02:00
ajnart
493e93ea42
feat: size widgets before adding
2026-08-23 01:19:08 +02:00
ajnart
91b248d395
fix: harden widget editor previews
2026-08-23 01:19:08 +02:00
ajnart
5188ed89d6
feat: rework widget settings modal
2026-08-23 01:19:08 +02:00
Thomas
1b843817a4
feat: polish board switcher ( #6670 )
2026-08-22 17:21:10 +02:00