Thomas Camlong
c94dc7a2e8
feat(board): add Cmd/Ctrl multi-item selection, floating action bar, and procedural delete audio synthesis
2026-08-21 01:01:09 +02:00
Thomas Camlong
439cb7f497
fix(review): address coderabbit review findings across modals, widgets, ui, and tests
2026-08-21 00:56:16 +02:00
Thomas Camlong
858af3a48a
fix(ci): add css module types and resolve typecheck/lint warnings in UI and modals
2026-08-21 00:48:39 +02:00
Thomas Camlong
7a7d4449c1
feat(apps): enhance multi-select app addition with modifier keys and helper tip
2026-08-21 00:31:19 +02:00
Thomas Camlong
1615f88a22
feat(widgets): allow creating and auto-selecting supported integrations directly from widget edit modal
2026-08-21 00:28:03 +02:00
Thomas Camlong
81ea412721
refactor(board): restore classic Mantine Menu for board add actions and remove universalCreate
2026-08-21 00:25:25 +02:00
Thomas Camlong
f36f3e4d8a
refactor(widgets): revert widget edit presentation from sidebar inspector to standard modal
2026-08-21 00:21:31 +02:00
Thomas Camlong
e0bc1d757c
refactor(create): modernize UniversalCreateModal with SelectableCard and search
2026-08-21 00:18:35 +02:00
Thomas Camlong
7690e5e542
refactor(board): restore simple add item workflow with SelectableCard and clean modal flow
2026-08-21 00:12:32 +02:00
Thomas Camlong
3ba731da2c
refactor(board): remove demo / mock data badge from preview header
2026-08-21 00:07:29 +02:00
Thomas Camlong
689403b323
refactor(integrations): remove use demo service button and bottom-right badge from integration select grid
2026-08-21 00:06:56 +02:00
Thomas Camlong
36a1f8afc2
feat(board): harden Advanced Add App feature and add comprehensive test suites
2026-08-21 00:05:26 +02:00
Thomas Camlong
90bf830e34
feat(board): update widget preview to 5x3 and harden error boundaries
2026-08-20 23:59:53 +02:00
Thomas Camlong
b787f21e68
refactor(apps): remove redundant new badge from app select modal create card
2026-08-20 23:43:18 +02:00
Thomas Camlong
829f628fec
feat(board): implement advanced add app modal with live preview and remove today widget
2026-08-20 23:42:24 +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
Bergasha
33991f4e22
Added flexShrink to the session avatar so it stops getting squished in a tight row
2026-08-19 13:31:33 +10:00
Bergasha
df300919fc
Gated season/episode fields on episode type - was showing S/E labels on movies and music too, using the episode number as season
2026-08-19 13:31:27 +10:00
Thomas Camlong
315245e048
fix(media-server): close Stack element in session table cell
2026-08-18 10:28:44 +02:00
Bergasha and Thomas
ebdfeb724b
fix(media widget): text size fix and added season + Episode info ( #6605 )
...
Co-authored-by: Thomas <thomas@ajnart.fr >
2026-08-18 09:44:12 +02:00
Thomas
e842177d9b
feat: port release-v2 experience improvements from #6582 (audited subset) ( #6609 )
2026-08-18 09:40:02 +02:00
Thomas Camlong
e3a713d2df
Revert "fix: use stable selfhst icons for flaky integrations"
...
This reverts commit e7879ed3a2 .
2026-08-18 09:24:00 +02:00
ajnart
e7879ed3a2
fix: use stable selfhst icons for flaky integrations
2026-08-17 18:12:02 +02:00
ajnart
19e72fc757
fix: use stable readarr icon URL
2026-08-17 17:41:00 +02:00
Thomas Camlong
38fc5dd582
feat(custom-widgets): configure missing credentials
2026-08-17 15:47:42 +02:00