Highlights
- 🚀 New: update Homebridge, the UI and your plugins all in one go, with a single restart at the end (beta)
- 🩹 Matter fixes: accessory status keeps updating after a Homebridge restart, lights switch on properly when only brightness is set, and thermostat limits can reach 0°
- 💾 Restoring a backup works again from both the setup wizard and the .hbfx uploader
- 🔐 Signing out, session expiry, and refused token refreshes now affect only the browser they happen in, instead of logging out every device on the account
- ✅ The Homebridge v2 readiness check now judges plugin support correctly and can skip the modal when everything is compatible
- ⚙️ Many smaller reliability fixes across accessories, the terminal, child bridge restarts, the config editor, and the dashboard
UI Changes
- fix: custom ui canvas follows theme changes (#2977) (@hjdhjd)
- fix(plugins): run package updates one at a time, and hold the ui self-restart until they finish
- fix(settings): subscribe to the hbfx upload events so the restore can actually start
- fix(settings): re-enable the reset button when a full bridge reset fails
- fix(status): detect homebridge v2 by major version rather than a string prefix
- fix(status): respect the update policy for the v2 readiness button in the docker layout
- fix(status): use semver to judge plugin homebridge v2 support instead of a prefix match
- fix(status): reset the all-plugins-supported flag when the v2 plugin list reloads
- fix(status): let skip-if-compatible skip the v2 modal when all plugins support v2
- fix(auth): correct the two factor code field name in the login type
- fix(restart): detach the status listener when leaving the restart page
- fix(plugins): track config block validity by block id so removals keep the right state
- fix(ui): keep restarting the remaining child bridges when one restart fails
- fix(status): keep chart history within the configured number of points
- chore(settings): remove the legacy ssl form controls superseded by the ssl modal
- chore(settings): remove leftover debug scaffolding from the search filter
- chore(settings): remove the unreferenced settings support modal
- fix(i18n): register the missing finnish locale data
- fix(plugins): translate the deconz and hue dump file button labels properly
- fix(accessories): allow zero degree setpoint limits on the matter thermostat modal
- fix(status): show the metric widget spinners until the first data arrives
- chore(status): drop the unused lock layout callbacks from the widget visibility modal
- chore(ui): drop the unrendered cta fields from the confirm modal
- fix(platform-tools): give the shutdown page its own error message
- fix(accessories): translate the hap air quality labels like the matter ones
- chore(ui): correct the server time warning threshold in the settings service comment
- fix(accessories): clamp colour temperature before converting it to a tile colour
- fix(ui): tolerate a null acknowledgement on websocket requests
- chore(accessories): rename the misleading mobile flag to layout locked
- fix(ui): show zero seconds as 0s in the duration pipe instead of nothing
- fix(settings): recheck the ssl form when a field is edited
- fix(status): set the chart history length before the first metric fetch
- test(ui): add unit tests for the angular ui
- fix(config-editor): offer vietnamese in the guided ui language setting
- chore(i18n): take the shell language list from the supported locales table
- fix(i18n): format dates and numbers for the language the user chose
- fix(settings): reload after a language change so the new date and number formats apply
- fix(setup-wizard): authorise the restore requests so restoring a backup works again
- fix(accessories): reject a room name that is only spaces
- fix(accessories): do not label a zero colour temperature reading as infinity kelvin
- fix(accessories): link lock management to its mechanism on the first accessory payload
- fix(platform-tools): recover the terminal when reconnecting after the socket has dropped
- fix(status): actually clear the node version cache when the update policy changes
- fix(accessories): ignore the mouse events ios replays for the full 300ms after a touch
- fix(auth): sign out this browser only when a token refresh is refused (#2981) (@lidonius1122)
- fix(schema-form): make the
dynamicDefaultskeyword generate values again (#2606) - feat(update-all): update hb, ui and plugins at once
Other Changes
- ci: label fork pull requests and rename the pr-labeler caller job (#2984) (@tbaur)
- ci: map pr-labeler branch prefixes to the repo's existing labels
- chore(lint): ignore the angular cache created by ui builds run from the repo root
- fix(settings): report a failed setting write instead of carrying on as if it saved
- chore(settings): drop the unreachable catch after the restart flag is set
- fix(plugins): cancel the raw json editor deferred validation when the modal closes
- fix(auth): reject revoked refresh sessions (#2980) (@NorthernMan54)
- fix(accessories): keep the default room checkbox disabled state and its submitted value in step
- fix(auth): log a refused session refresh, and drop the routine ones to debug
- fix(auth): clear the session cookies on logout even when the revocation write fails (#2981)
- fix(auth): sign out only this browser when a session ends from inactivity
- fix(plugins): keep the stable update when the requested dist-tag is missing (#2983) (@tbaur)
- fix(settings): stop the remove-accessories scroll timer outliving its modal
- test(ui): inject the terminal, file saver and socket so the specs stop relying on module mocks
- chore(dev): restart the watch server when the ui updates itself
- fix(ui): keep retrying the first settings load instead of showing a blank page
- fix(accessories): write onOff as well when a matter light is turned on through a level write
- fix(accessories): re-arm matter monitoring after homebridge restarts (homebridge/homebridge#3993)
- chore(deps): dependency updates, update nest to v12
Homebridge Dependencies
@homebridge/hap-client@v5.3.0@homebridge/node-pty-prebuilt-multiarch@v0.14.1@homebridge/plugin-ui-utils@v2.2.6