ajnart
71ffa5d1be
fix: keep responsive layout editors stable
2026-08-23 00:59:02 +02:00
Thomas
1b843817a4
feat: polish board switcher ( #6670 )
2026-08-22 17:21:10 +02:00
Thomas Camlong
8ae9630b3e
Revert "fix: position calendar error indicator top-left ( #6668 )"
...
This reverts commit 63f5c43b69 .
2026-08-22 17:03:15 +02:00
Thomas
63f5c43b69
fix: position calendar error indicator top-left ( #6668 )
2026-08-22 16:57:34 +02:00
Thomas
e97fe7861d
feat: rework bookmarks widget ( #6666 )
2026-08-22 16:55:31 +02:00
Thomas
19760e5722
fix: restore translucent dashboard styling ( #6664 )
...
* fix: restore translucent dashboard styling
* fix: restore dashboard widget transparency
* fix: address dashboard review feedback
* fix: apply board opacity to containers
* fix: flatten demo board container
* fix: default board roundness to sm
* fix: restore assistant widget transparency
* Revert "fix: default board roundness to sm"
This reverts commit c235cbdf2b .
* fix: address remaining dashboard review comments
* test: align grid geometry expectations
2026-08-22 15:51:43 +02:00
Thomas
2570de25a6
fix: hide default weather details ( #6665 )
2026-08-22 15:48:02 +02:00
Thomas
f46ccadbe4
feat: redesign demo dashboard ( #6663 )
2026-08-22 13:08:27 +02:00
Thomas
6297ca4b16
fix: keep media stream status at table edge ( #6661 )
2026-08-22 11:48:33 +02:00
Thomas
2accdc2fad
feat: rework board switcher ( #6660 )
...
* feat: rework board switcher
* fix: address board switcher review
2026-08-22 11:15:40 +02:00
Thomas
8a08293016
fix: restore bookmark grid fill ( #6659 )
...
* fix: restore bookmark grid fill
* fix: use scroll area viewport class
2026-08-22 11:14:41 +02:00
Bergasha
7591f7e313
feat(v2 Containers): scrollable containers ( #6629 )
2026-08-22 09:24:52 +02:00
Thomas
011ce8e5a3
fix: preserve board drafts and widget scroll state ( #6637 )
2026-08-22 09:13:32 +02:00
Thomas
b2fa46c760
fix: restore release translation checks ( #6658 )
2026-08-22 08:49:14 +02:00
Thomas
9e14a07e64
refactor: consolidate English translations ( #6640 )
2026-08-21 19:00:27 +02:00
Thomas
81aa704537
feat(cli): rework developer CLI with non-blocking tasks and GitHub CI checks ( #6651 )
2026-08-21 18:59:11 +02:00
Thomas
f0f9539466
feat(ui): add situational tips system ( #6648 )
2026-08-21 18:58:52 +02:00
Thomas
3c2f95d529
perf(board): stabilize edit mode layout ( #6650 )
2026-08-21 16:17:42 +02:00
Thomas
64e3d04517
fix(calendar): improve event indicators ( #6652 )
2026-08-21 15:55:38 +02:00
Bergasha and ajnart
002381d294
feat(v2 docker widget): Fixes column-resize squashing ( #6646 )
...
* fix(dataTable): resizing a column no longer squashes the others
mantine-datatable's built-in column resize keeps the table's total
width fixed by shrinking every other column to compensate, which
collapses columns toward zero in a narrow widget (open upstream
issue, no fix: icflorescu/mantine-datatable#discussions-757).
Replaced it with our own resize handle that only ever changes the
width of the column being dragged - the table grows and scrolls
horizontally instead. Shared via usePersistedTableLayout, so docker,
downloads, and beszel-system-table all get it.
* feat(docker): enable hold-Shift advanced focus preview
The widget already renders differently for displayMode="advanced",
but was missing supportsAdvancedFocus: true, so the board never
offered the hold-Shift preview for it - matching downloads and
media-server, which both set this flag.
* style(docker): tighten row density, decouple icon size from row height
Circular avatar, denser row/footer padding, and action icons rendered
larger than their button via absolute positioning so they don't
inflate row height (the button stays small and fixed - it repeats
once per row, so any growth there multiplies across every visible
container).
* fix(data-table): harden shared column resizing
* fix(data-table): account for board scaling
* fix(data-table): compact shared headers
* fix(data-table): fit columns to widget
* fix(downloads): simplify advanced details
* test(widgets): align Docker advanced focus
* fix(downloads): widen expanded details
---------
Co-authored-by: ajnart <thomas@ajnart.dev >
2026-08-21 15:12:31 +02:00
Thomas
9b406d5d83
fix(beszel): restore balanced system grid layout ( #6647 )
2026-08-21 13:11:40 +02:00
Thomas Camlong
4c475b8c0a
ci: publish v2 images reliably
2026-08-21 12:49:03 +02:00
Thomas
f3014fe271
refactor(board): modernize item and application select modals with SelectableCard ( #6642 )
...
Modernize board item, application, and integration selection flows with shared Mantine components, batch board actions, improved accessibility, and hardened persistence.
2026-08-21 03:19:18 +02:00
Afonso Jorge Ramos
bd4f6a92c6
fix(onboarding): keep the account submit disabled until the step advances ( #6641 )
2026-08-20 18:48:33 +02:00
Thomas Camlong
7e8c139590
test(e2e): stabilize lazy widget login
2026-08-20 18:33:43 +02:00
Thomas
d241bac55d
feat: improve assistant conversation experience ( #6636 )
2026-08-20 16:26:23 +02:00
Thomas
58a24569ce
feat: expand utility widgets ( #6638 )
2026-08-20 16:26:04 +02:00
Thomas
53b518960c
feat: retain application log history ( #6633 )
...
* feat: retain application log history
* fix: harden retained log streaming
* fix: harden contextual log focus
* fix: retain multiline log output
2026-08-20 12:57:30 +02:00
Thomas
ddf8ba9948
feat: rework management settings layout ( #6634 )
2026-08-20 12:33:18 +02:00
Bergasha
a2219b72f6
Merge pull request #6632 from homarr-labs/feat/v2-stocks-widget
...
feat (v2 stocks widget):Add a "Show details" toggle to the stock widget's compact view
2026-08-20 12:59:52 +10:00
Bergasha
7150cdbbab
Add a "Show details" toggle to the stock widget's compact view
...
The compact view auto-reveals name/change/range as the widget gets
bigger, which can overlap badly depending on how the widget's actual
proportions land relative to those breakpoints. Add a switch (on by
default, matching current behavior) to force the minimal symbol+price
look regardless of size. Scoped to the compact layout only - the
Shift-triggered advanced view is untouched.
2026-08-20 12:32:42 +10:00
Thomas
ff14613f95
feat: recalculate permission scope & permission matrix UI ( #6612 )
2026-08-19 17:22:31 +02:00
ajnart
78b3dc1922
fix: restore workshop create icon
2026-08-19 16:34:21 +02:00
ajnart
2e97b337d2
fix: remove universal create search
2026-08-19 16:29:30 +02:00
Thomas
369a2660b1
Embed integration editing in widget tab ( #6630 )
2026-08-19 14:01:11 +02:00
Bergasha
60aec370d6
Merge pull request #6627 from homarr-labs/fix/v2-media-server-widget
...
fix(v2 media widget): updated media server widget
2026-08-19 16:56:30 +10:00
Bergasha
6a76b9eafe
Merge branch 'release/v2' into fix/v2-media-server-widget
2026-08-19 16:55:15 +10:00
Bergasha
76ba13fbad
Address Codex review feedback on PR #6627
...
- Classify IPv4/IPv6 link-local addresses (169.254.0.0/16, fe80::/10) as
LAN in Jellyfin location parsing - they can't traverse a router, so a
false WAN reading was possible for common autoconfig/link-local sessions.
- Fix portrait video resolution mislabeling - a 1080x1920 clip was
classified off its long-axis height (1920) and showed as 1440p. Classify
by the short axis instead so orientation doesn't flip the result.
- Raise the compact-mode status column breakpoint from 420 to 540px - at
420 the fixed-width user (200px) and status (190px) columns left almost
no room for the currentlyPlaying column, the widget's primary content.
- Document the new resolution indicator in the media-server widget docs.
2026-08-19 16:45:09 +10:00
Thomas
150d38be62
feat(docker): add endpoint filtering and streamline setup assistant ( #6625 )
...
* feat(docker): add endpoint filtering and setup assistant
* fix(docker): simplify environment setup
* test(docker): cover demo endpoint filtering
* refactor(docker): use accordion for setup suggestions
* fix(docker): use docker icon for setup assistant
* refactor(docker): simplify assisted service setup
* refactor(docker): reuse shared translations
* fix(docker): address review feedback
2026-08-19 08:45:07 +02:00
Bergasha
a4bbed0cb8
Fixed resolution showing the raw cropped height (e.g. 804p) instead of the nominal class Plex/Jellyfin display (1080p) - letterboxed/cinemascope sources are shorter than their resolution tier, so classify off the width-derived 16:9 height instead
2026-08-19 14:54:48 +10:00
Bergasha
90fa9e8741
Added tests for the LAN/WAN parsing and fixed IPv4-mapped IPv6 addresses being misclassified as WAN - a dual-stack server can report a LAN client as ::ffff:192.168.x.x, which the private-range check was missing since it only matched literal IPv6 ranges
2026-08-19 13:52:14 +10:00
Bergasha
4b20d6ecd0
Widened the status column from 140 to 190px - the Np resolution format is shorter so line 2 had room, but Transcoding video/audio badges are noticeably longer than Direct play and needed the space on line 1
2026-08-19 13:33:21 +10:00
Bergasha
6cac34e968
Changed resolution to show the actual streaming resolution (transcode target) instead of the source file's, formatted as e.g. 1080p instead of 1920x1080
2026-08-19 13:33:14 +10:00
Bergasha
c6f77cec2e
Added resolution to the status column, restructured into two lines: status + LAN/WAN on top, resolution + bitrate underneath
2026-08-19 13:33:08 +10:00
Bergasha
acc97da84b
Added LAN/WAN detection to Jellyfin, matching what Plex already reports - Jellyfin's sessions endpoint only gives a client IP (RemoteEndPoint), so classify it against the standard private IP ranges ourselves
2026-08-19 13:32:40 +10:00
Bergasha
6b10ac2ab5
Gave User a fixed 200px width so Currently playing (the busiest column) gets the largest share of the row instead of splitting it evenly with User
2026-08-19 13:32:34 +10:00
Bergasha
c7563f2c39
Fixed Jellyfin bitrate showing null on direct play - the sessions endpoint only reliably fills in MediaSources bitrate while transcoding, so sum the individual media streams' own bitrates as a fallback
2026-08-19 13:32:28 +10:00
Bergasha
96676182f4
Gave the status column a fixed 140px width - it had no explicit width so it shared an equal, unconstrained share of the row with the other columns despite only holding a small badge
2026-08-19 13:32:21 +10:00
Bergasha
3769d88ebb
Dimmed the column header labels and added a bottom border under the sticky header, so it reads as its own band instead of the same weight as the row data
2026-08-19 13:32:15 +10:00
Bergasha
d9c35744f6
Only show a server's badge in the footer when it actually has an active session - selecting both Plex and Jellyfin always showed both badges even if only one was streaming. Also gave the footer badges a pill style and added a separator between the stream count and bitrate
2026-08-19 13:31:58 +10:00