ajnart
9699255180
fix(wud): authenticate HTTP requests and validate container access
2026-09-12 10:50:27 +02:00
Thomas
2049c6ade0
fix: tighten v2 setup and release safeguards ( #6824 )
2026-09-12 10:47:35 +02:00
ajnart
e21a0bb6da
fix: refresh OpenAPI widget kinds
2026-09-12 10:46:39 +02:00
Thomas
61f22c8e64
fix: show board removal confirmation in a dialog ( #6829 )
2026-09-12 10:36:36 +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
9d857377c1
fix: refine release v2 interactions ( #6805 )
2026-09-08 11:36:19 +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
ajnart
6db26a0d99
docs: restore release article hierarchy
2026-09-06 20:41:55 +02:00
ajnart
bbcbd031fe
docs: clarify Homarr provider terms
2026-09-06 20:37:52 +02:00
ajnart
7024a57f56
docs: tighten Homarr 2.0 release article
2026-09-06 19:57:44 +02:00
Thomas
5121356113
Merge pull request #6794 from homarr-labs/feat/refocus-homarr-v2-article
...
docs: refocus Homarr 2.0 article
2026-09-06 19:20:05 +02:00
ajnart
4f2ab59345
docs: refocus Homarr 2.0 article
2026-09-06 19:19:23 +02:00
Thomas
73bf68c9a8
Merge pull request #6792 from homarr-labs/feat/v2-release-client-ids
...
fix(ci): use GitHub App client IDs
2026-09-06 18:05:28 +02:00
ajnart
dea1de5fee
fix(ci): use GitHub App client IDs
2026-09-06 17:57:35 +02:00
Thomas
2bd538e685
Merge pull request #6791 from homarr-labs/feat/publish-homarr-v2-blog
...
docs: publish Homarr 2.0 article
2026-09-06 17:52:05 +02:00
ajnart
f0c39ea0d2
docs: publish Homarr 2.0 article
2026-09-06 17:51:36 +02:00
Thomas
8a0cf15bf7
docs: finalize Homarr 2.0 release article ( #6790 )
2026-09-06 17:48:08 +02:00
Thomas
f1c898efe2
docs: add Homarr 2.0 release article ( #6789 )
2026-09-06 15:39:54 +02:00
Thomas
724dee55c5
fix(weather): handle disabled external connections ( #6780 )
2026-09-06 15:35:06 +02:00
Thomas
50a3bcce69
fix(ci): restore release automation ( #6770 )
...
* fix(ci): restore release automation
* ci: remove obsolete documentation release dispatch
* ci: report production deployment failures
2026-09-06 15:32:52 +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
134ef48848
fix(integrations): preserve Nextcloud subpaths ( #6786 )
...
* fix(integrations): preserve Nextcloud subpaths
* Keep existing Nextcloud DAV endpoints intact
---------
Co-authored-by: Artur <145776561+arturict@users.noreply.github.com >
Co-authored-by: arturict <arturict@users.noreply.github.com >
2026-09-06 15:32:37 +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
4c88030b0f
fix(downloads): preserve name column width ( #6784 )
2026-09-06 15:32:25 +02:00
Thomas
0c11c2785e
docs(helm): sync current chart metadata ( #6783 )
2026-09-06 15:32:20 +02:00
Thomas
96a6926b2b
fix(docker): normalize container CPU usage ( #6782 )
2026-09-06 15:32:15 +02:00
Thomas
f89487231f
fix(unraid): use byte-based memory metrics ( #6781 )
2026-09-06 15:32:09 +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
4fd9b04c61
fix(deps): patch high production advisories ( #6788 )
2026-09-06 15:27:14 +02:00
Thomas
378332c8da
docs: update contribution checklist for v2 ( #6773 )
2026-09-06 14:31:57 +02:00
Thomas
3d9b8e8ae6
fix(docs): generate valid integration links ( #6772 )
2026-09-06 14:31:48 +02:00
Thomas
f7b194fc9f
fix(auth): patch critical Auth.js vulnerabilities ( #6775 )
2026-09-06 14:25:09 +02:00
Thomas
eb20b97d5f
fix(deps): patch critical protobufjs vulnerability ( #6776 )
2026-09-06 14:25:00 +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
Bergasha
ac62e5bfd6
fix(system-resources): divide chart rows evenly via CSS, no board-zoom pixel math ( #6756 )
...
Each visible chart row was hardcoded to a fixed pixel height (110px in
advanced mode, 56px-capped in compact) regardless of the widget's actual
tile size - resizing the tile taller left the extra height unused, and
some visible charts required scrolling to reach.
Divide the available height evenly across rows using CSS Grid's
grid-auto-rows: 1fr (the Stack fills the tile via a definite pixel
height, the SimpleGrid grows into it via flex and divides its rows
evenly) rather than computing a per-chart pixel height in JS. Confirmed
via live inspection of a deployed board that Mantine's h prop is not
safe for this: its rem() converter strips a "px" suffix from any string
before checking whether it's a parseable number, so even a literal pixel
*string* passed through h= gets rescaled by rem() * var(--mantine-scale)
exactly like a raw number would - style.height is the only way to set
an exact, un-rescaled pixel value.
2026-09-01 16:50:00 +10: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
ee30aa13cf
fix(workshop): clamp submission titles ( #6752 )
2026-08-31 12:18:43 +02:00