@@ -9,114 +9,141 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99### ⚠️ Breaking Changes
1010
1111#### JSON-API
12- - Aligned JSON subscription update elements: ` ledcolors-imagestream-update ` , ` ledcolors-ledstream-update ` , and ` logmsg-update ` now return data via ` data ` instead of ` result ` .
12+ - Standardized subscription update elements: ` ledcolors-imagestream-update ` , ` ledcolors-ledstream-update ` , and ` logmsg-update ` now return data under ` data ` instead of ` result ` .
1313- Global configuration elements are now separated from instance-specific ones.
1414
1515---
1616
1717### ✨ Added
1818
19- - Support for ** FTDI** chip-based LED devices with ` WS2812 ` , ` SK6812 ` , and ` APA102 ` LED types
20- _ Thanks to @nurikk_ (#1746 )
19+ - ** Windows:** Added a new grabber using ** DXGI DDA (Desktop Duplication API)** for improved GPU-based performance. _ Thanks to @davidsansome_ (#1745 , #1753 )
20+ - Support for ** bottom-up image** handling using the MF grabber. _ Thanks to @Thinner77_ (#1752 )
21+ - Support for ** FTDI** chip-based LED devices (` WS2812 ` , ` SK6812 ` , ` APA102 ` ). _ Thanks to @nurikk_ (#1746 )
22+ - Support for ** 16-bit HD108 LEDs** via SPI. _ Thanks to @FutureMan0_ (#1826 )
2123- Support for ** HomeAssistant** devices (#1763 )
2224- Support for ** Skydimo** devices
23- - Support for ** gaps in Matrix layout** (#1696 )
25+ - Support for new ** Nanoleaf device types**
26+ - Support for ** gaps in matrix layout** (#1696 )
27+ - Support for ** NV12 format** in Flat-Buffer image streams
28+ - Support for ** SizeDecimation** in Flat-Buffer inputs
29+ - Support for ** temperature adjustment** (#658 )
2430- Configurable ** grabber inactivity detection** interval (#1740 )
25- - ** Dominant color processing** on the full image, applied to all LEDs (#1853 )
26- - ** Windows:** Added a new grabber using ** DXGI DDA (Desktop Duplication API)** for improved GPU-based performance
31+ - ** Dominant color processing** across the full image, applied to all LEDs (#1853 )
2732- Selectable ** source and target instances** in the forwarder
28- - Import, export, and backup ** Hyperion's configuration** via UI, JSON-API, and CLI (` --importConfig ` , ` --exportConfig ` ) (#804 )
29- - Option to ** force read-only mode** startup (` --readonlyMode ` )
33+ - Import, export, and backup of ** Hyperion's configuration** via UI, JSON-API, and CLI (` --importConfig ` , ` --exportConfig ` ) (#804 )
34+ - Option to ** force read-only mode** at startup (` --readonlyMode ` )
3035- ** Effects:** Limit update rate to 200 Hz
3136- ** Systray:** Support for multiple instances
3237- ** UI:**
33- - Validate that key ports do not overlap across editors/pages
34- - Improved error dialog with additional details
35- - LED preview shows the associated instance name
38+ - Validation to ensure key ports do not overlap across editors/pages
39+ - Enhanced error dialog with additional details
40+ - LED preview displays the associated instance name
3641- ** HTTP Server:** Support for ** Cross-Origin Resource Sharing (CORS)** (#1496 )
3742
3843#### JSON-API
39- - New event subscription support : ` Suspend ` , ` Resume ` , ` Idle ` , ` IdleResume ` , ` Restart ` , ` Quit `
40- - Support for ** direct/multi-instance addressing** in single requests (#809 )
44+ - New event subscriptions : ` Suspend ` , ` Resume ` , ` Idle ` , ` IdleResume ` , ` Restart ` , ` Quit `
45+ - Support for ** direct/multi-instance addressing** within single requests (#809 )
4146- ` serverinfo ` subcommands: ` getInfo ` , ` subscribe ` , ` unsubscribe ` , ` getSubscriptions ` , ` getSubscriptionCommands `
4247 - [ API Overview] ( https://api.hyperion-project.org/ )
43- - Query/save specific config items for specific instances
44- - Update frequency limits:
45- - Images: 25 Hz
46- - Raw LED colors: 40 Hz
48+ - Query/save specific configuration items per instance
49+ - Update frequency limits:
50+ - Images: 25 Hz
51+ - Raw LED colors: 40 Hz
4752 - LED device data: 200 Hz
48- - Request ** instance data** (e.g., current image in various formats , LED colors)
53+ - Request ** instance data** (e.g., image snapshots , LED colors). _ Thanks to @xIronic _ ( # 1839 )
4954
5055---
5156
5257### 🔧 Changed
5358
54- - Removed dependency on the first instance – all instances can be freely created, started, stopped, or removed
55- - ** Security Fixes:**
59+ - Instances no longer depend on the first instance; any can be created, started, stopped, or removed independently.
60+
61+ - ** Security Fixes:**
5662 - Fixed Cross-Site Scripting (XSS) vulnerabilities (CVE-2024 -4174, CVE-2024 -4175)
57- - ** Fixes:**
58- - ` hyperion-v4l2 ` screenshot failure (#1722 )
59- - Token dialog not closing
60- - Kodi color calibration, wizard refactor (#1674 )
61- - Philips Hue APIv2 support without Entertainment group (#1742 )
62- - Forwarding to custom targets not possible (#1713 )
63- - Screen capture error (#1824 )
64- - Python 3.12 crash issues (#1747 )
65- - UI LED buffer/layout sync
66- - Last effect event not cleared from source overview
67- - Smoothing issues (#1863 )
68- - Crash when switching display manager (XCB/X11 to Wayland)
69- - Effect not suspended when instance is stopped (#1586 )
70- - Background effect incorrectly starts when instance is disabled
71- - Target directory incorrectly built during effect export
72- - Stale ` _logger ` object removed
73-
74- - ** Web UI:**
75- - Fixed browser downloading HTML (#1692 )
76- - Instance lists are sorted; active instances are highlighted in dropdowns
77-
78- - ** Networking/UI:**
79- - Replaced custom WebSocket implementation with ` QWebSockets ` (#1816 , #1448 , #1247 , #1130 )
80- - mDNS browser deadlock fix; moved to dedicated thread
81-
82- - ** Platform-specific:**
83- - ** macOS:** Use ` ScreenCaptureKit ` on macOS 15+
84- - Standalone grabber won’t capture if no remote host is connected
85-
86- - ** Layout:**
87- - Removed maximum LED limit from matrix layout schema (UI mismatch) (#1804 )
88-
89- - ** Refactors:**
90- - Database access and validation/migration on startup
91- - Forwarder
92- - Flatbuffer client/connection handling
93- - Effect definitions decoupled from instances
94- - WebServer decoupled from SSDP handler
95- - Python effects (parallel processing under Python 3.12)
96- - Thread affinity correction
97- - UI code streamlining
98- - Improved resilience and error handling
63+ - Added detailed logs for "Trust on first use" certificates, especially when a certificate can't be stored
64+
65+ - ** Fixes:**
66+ - Broken links in README. _ Thanks to @blueicehaller_ (#1780 )
67+ - RGB24/BGR24 cleanup. _ Thanks to @Thinner77_ (#1748 , #1749 )
68+ - Clarifying comments in MF grabber. _ Thanks to @Thinner77_ (#1754 )
69+ - Nanoleaf LED strip overlap error. _ Thanks to @geekykayaker_ (#1844 )
70+ - Philips Hue APIv2 support without Entertainment group (#1742 )
71+ - ` hyperion-v4l2 ` screenshot failures (#1722 )
72+ - Token dialog not closing
73+ - Kodi color calibration and wizard refactor (#1674 )
74+ - Forwarding to custom targets (#1713 )
75+ - Screen capture error (#1824 )
76+ - Python 3.12 crash fixes (#1747 )
77+ - UI LED buffer/layout sync issues
78+ - Last effect event not cleared in source overview
79+ - Smoothing issues (#1863 )
80+ - Crash when switching display managers (XCB/X11 to Wayland)
81+ - Effect not suspended when instance is stopped (#1586 )
82+ - Background effect incorrectly starts when instance is disabled
83+ - Incorrect target directory built during effect export
84+ - Removed stale ` _logger ` object
85+ - Windows: improper use of “/dev/null”
86+ - Fragmented HTTP headers causing "incorrect HTTP headers" error (#1688 )
87+ - Misleading "Access Denied" message; disabled "Identify" for the same serial device type (#1737 )
88+
89+ - ** Web UI:**
90+ - Workaround that Content type is wrongly resoved (#1692 )
91+ - Sorted instance lists; active instances are now highlighted in dropdowns
92+
93+ - ** Networking/UI:**
94+ - Replaced custom WebSocket implementation with ` QWebSockets ` (#1816 , #1448 , #1247 , #1130 )
95+ - Fixed mDNS browser deadlock by moving it to a dedicated thread
96+
97+ - ** Platform-Specific:**
98+ - ** macOS:** Use ` ScreenCaptureKit ` on macOS 15+
99+ - Standalone grabber no longer captures without a connected remote host
100+
101+ - ** Layout:**
102+ - Removed maximum LED limit from matrix layout schema to match UI (#1804 )
103+
104+ - ** Refactors:**
105+ - ImageResampler improvements. _ Thanks to @Thinner77_ (#1744 )
106+ - Corrected confusing ` _noSignalDetected ` logic. _ Thanks to @Thinner77_ (#1731 )
107+ - Removed unused libraries for Amlogic. _ Thanks to @Portisch_ (#1725 )
108+ - GrabberWrapper constructors (#1714 )
109+ - Database access and validation/migration on startup
110+ - Forwarder cleanup
111+ - Flatbuffer client/connection handling
112+ - Decoupled effect definitions from instances
113+ - Decoupled WebServer from SSDP handler
114+ - Python effects: support parallel processing (Python 3.12)
115+ - Corrected threads' affinity
116+ - Use of smart pointers
117+ - UI code streamlining
118+ - Improved ` install_pr ` script
119+ - Enhanced resilience and error handling
120+
121+ - ** Build:**
122+ - Updated ** CompileHowto for macOS** . _ Thanks to @Rastafabisch_ (#1757 )
123+ - Added missing ` ENABLE_MDNS ` . _ Thanks to @Links2004_ (#1711 )
124+ - Build system now uses ** pre-built dependencies** to reduce resource usage
125+ - Introduced ** CMakePresets** and a ** CMakeUserPresets** template
99126
100127#### JSON-API
101128- Consistent token authorization across sessions and single requests
102- - Additional API error details ( JSON parsing, token errors, etc. )
103- - Random TAN generation per API request from the UI
129+ - Improved error messages (e.g., JSON parsing, token issues )
130+ - Random TAN generation per API request ( from UI)
104131- Configuration requests no longer require a running instance
105132- Commands are ignored during shutdown
106- - Fixed IPv4-in-IPv6 address handling for external connections
133+ - Fixed IPv4-in-IPv6 handling for external connections
107134- Fixed admin authentication token validation (#1251 )
108- - Fixed error for missing effects in builds
109- - Correct mapping type returned for running instances
135+ - Fixed error on missing effects in builds
136+ - Corrected mapping type for running instances
110137
111138---
112139
113140### 🗑️ Removed
114141
115142#### JSON-API
116- - ** Removed: ** Ability to disable local admin authorization
143+ - Removed the ability to disable local admin authorization
117144 - ` authorize-adminRequired ` is now always ` true `
118- - ** Removed:** ` session-updates ` subscription
119- - ** Deprecated:** ` serverinfo/subscribe `
145+ - Removed: ` session-updates ` subscription
146+ - Deprecated: ` serverinfo/subscribe `
120147 - Use ` subscribe ` / ` unsubscribe ` subcommands instead
121148
122149## [ 2.0.16] ( https://github.com/hyperion-project/hyperion.ng/releases/tag/2.0.16 ) - 2024-01
@@ -444,7 +471,6 @@ To run Hyperion with root privileges (e.g. for WS281x) execute <br> `sudo update
444471 - Fixed: Nanoleaf does not turn on
445472 - Fixed LED layout - Additional parameters for classic layout were not saved (#1314 )
446473 - Fixed Network LED-Device UI: Trigger getProperties for the configured host, when no hosts were discovered
447- - Fixed Nanoleaf error if LEDs in strip overlap
448474
449475### Removed:
450476
0 commit comments