[3.10.9] - 2026-09-11
Development News
- [chip]: EVSE Complete endpoint 14011 CHIP conformance is green ✅ for all automated harness tests covering the
EnergyEvseandEnergyEvseModeclusters, including the optionalSoCReporting,PlugAndCharge,Rfid, andV2Xfeatures.
Added
- [MatterbridgeEndpoint]: Add
subscribeCommand(cluster, command, listener), the command counterpart ofsubscribeAttribute(). It takes the cluster in all the supported shapes (Behavior.Type,ClusterType,ClusterIdor the cluster name string), is typed on the command name and on the request payload for theBehavior.TypeandClusterTypeoverloads, and calls the listener with a single payload holding thecommand, thecluster, therequest, theendpointand the Matter actioncontextof the invoke. It is the same payload ofaddCommandHandler()withoutattributes, since the listener is notified after the cluster state has already been updated. The command observable is added on demand to the events object of the cluster, so a subscribed command is also reachable asendpoint.events.<cluster>.<command>$executedand, from inside a cluster server behavior, asthis.events.<command>$executed. Differently fromaddCommandHandler(), which is called first and always receives the raw incoming command, the subscribers are notified by the cluster server as the last action of the command implementation, after the command has been validated and the cluster state updated, so a rejected or discarded command does not notify them. Command notifications are supported by the Chime, Camera AV Stream Management, Camera AV Settings User Level Management, WebRTC Transport Provider and WebRTC Transport Requestor servers. - [Evse]:
Evse/EvseOptionsaccept new optional constructor options enabling the remainingEnergyEvsecluster features:stateOfCharge/batteryCapacity(SoCReporting),vehicleId(PlugAndCharge),rfid(Rfid, adds theRfidevent and the newtriggerRfidEvent()helper), andv2x(V2X, adds theEnableDischargingcommand).esaCanGenerateis also now exposed to the childDeviceEnergyManagementendpoint for V2X-capable (export-capable) EVSEs. All features are opt-in and disabled by default, matching the existingChargingPreferences-only behavior. Thanks Ludovic BOUÉ. - [Evse]:
MatterbridgeEnergyEvseServernow implementsenableDischarging()(Matter 1.6.0 § 9.3.9.3), mirroringenableCharging()'s validation and state-update mandates for the discharge direction, andenableCharging()/disable()now correctly interoperate with a concurrently active discharge (SupplyState.Enabled) on V2X-capable instances. Thanks Ludovic BOUÉ. - [thread]: Add Bun runtime detection to the system check, logging the Bun version and skipping Node.js version warnings when running on Bun.
- [thread]: Add a check for the latest stable Bun version during the system check, warning when the running version differs from the latest release.
- [utils]: Add
getBunLatestVersion()to fetch the latest stable Bun version from GitHub, returningundefinedif the request fails or the release tag is invalid. - [frontend]: Add a full test suite for the
Logspage covering the level and text filters, the auto scroll and log length controls, and the clear action. - [frontend]: Extend the
Settingstests to cover every control of both settings panels, the change password and network configuration dialogs, and the debounced Matter fields. - [frontend]: Extend the
Hometests to cover the refresh and update notifications, the changelog and browser refresh prompts, and the childbridge store selection. - [frontend]: Extend the
Devicestests to cover the restored filters and view mode, the locked refresh notification, and the reconnection reset. - [frontend]: Extend the
Apptests to cover the automatic login when no password is required. - [instructions]: Add the Google Gemini / Antigravity agent:
GEMINI.mdas the entry point importing the shared AGENTS.md instructions, permissions and settings in.antigravity/settings.json, dev container support, and the updated Development Guide.
Changed
- [matterbridge]: Bump
matterbridgeversion to v.3.10.9. - [workflows]: Upgrade
actions/checkoutandactions/setup-nodefrom v6 to v7. - [matterbridge]: Bump
@types/nodeto v.26.4.1. - [matterbridge]: Bump
@vitest/coverage-v8to v.5.0.0. - [matterbridge]: Bump
oxfmtto v.0.66.0. - [matterbridge]: Bump
oxlintto v.1.81.0. - [matterbridge]: Bump
vitestto v.5.0.0. - [thread]: Bump
@zip.js/zip.jsto v.2.10.0. - [frontend]: Bump
frontendversion to v.3.6.0. - [frontend]: Bump
react-routerto v.8.3.1. - [frontend]: Bump
@types/nodeto v.26.4.1. - [frontend]: Bump
@types/react-domto v.19.2.7. - [frontend]: Bump
globalsto v.17.12.0. - [frontend]: Bump
vitestto v.5.0.0. - [frontend]: Bump
oxfmtto v.0.66.0. - [frontend]: Bump
oxlintto v.1.81.0. - [frontend]: Bump
@mui/materialto v.9.4.0. - [frontend]: Bump
@mui/icons-materialto v.9.4.0.
Fixed
- [MatterbridgeEndpoint]: Discard
subscribeAttribute()listener return values so callbacks such asvalue => values.push(value)do not prevent subsequent subscribers from receiving attribute changes. - [frontend]: Replace deprecated MUI props, the React form event type, and test-only document writing with their supported equivalents.
- [frontend]: Restore the theme color of the Select dropdown arrow.
- [frontend]: Settings: an update notification arriving in the background no longer discards the values you are editing.
- [frontend]: Devices: the saved view mode is applied on the first render, so the other view is no longer mounted and immediately discarded.
- [frontend]: Devices: the device filter no longer trails one keystroke behind what you type.
- [frontend]: Home: the QR code and the plugin and device panels show the selected store already on the first render.
- [frontend]: Logs: the log length and auto scroll controls now update the shared state through the WebSocket provider.
- [frontend]: Login: the automatic login request is aborted when the login form is closed.