[3.8.0] - 2026-06-05
Breaking changes
- [matter]: Update to Matter 1.5.1. See Matter 1.5.1 changes from 1.4.2.
- [matter]: Update to matter.js 0.17.1. See Matter.js 0.17 changes from 0.16.
- [matter]: Enable
tcptransport withudppreference. If you override the default Matter port 5540, consider eventual port number collision for both udp and tcp protocols.
Development Breaking changes
- [matterbridge]: Since this release upgrades matter to 1.5.1, it would be better to require matterbridge 3.8.0 in all plugins next release cause some changes in the plugin code will not be backward compatible.
- [endpoint]: Since the cluster clients have been added to each device type, instead of
addRequiredClusterServers()calladdRequiredClusters()(3.8.0 only) to add both required server clusters and required client clusters.
Development
- [logger]: The
node-ansi-loggerpackage integrates now a chainable ANSI tagged template styling API.
Added
- [plugins]: The plugins can have their own frontend in /apps/frontend/build. It will be served by the Matterbridge express app under /plugins/plugin-name. (#561).
- [plugins]: The plugin frontend can fetch from the platform with a full REST API: /plugins/plugin-name/api/:path. It will call platform.onFetch(method: string, path?: string, query?: Record<string, unknown>, body?: unknown) (for an example check matterbridge-test). (#561).
- [bindingServer]: Add
getEndpoint(clusterId: ClusterId): Endpoint | undefinedtoMatterbridgeBindingServerto look up the bound remote endpoint for a given client cluster ID. - [endpoint]: Add
addClusterClients(clientList: ClusterId[])helper and chainableMatterbridgeEndpointmethod to requireMatterbridgeBindingServerwith the given client cluster list. Safe to call multiple times — subsequent calls merge the new IDs into the existing list without duplicates. - [endpoint]: Add
addRequiredClusterClients()helper and chainableMatterbridgeEndpointmethod to collect and register all required client clusters declared by the endpoint's device types. - [endpoint]: Add
addOptionalClusterClients()helper and chainableMatterbridgeEndpointmethod to collect and register all optional client clusters declared by the endpoint's device types. - [endpoint]: Add
addRequiredClusters()chainableMatterbridgeEndpointmethod that calls bothaddRequiredClusterServers()andaddRequiredClusterClients()in one step. - [endpoint]: Add
createDefaultBindingClusterServer(clientList: ClusterId[])chainableMatterbridgeEndpointmethod as the standardcreateDefault*helper for the Binding cluster. - [readme]: Add "How to use cluster clients" section to README-DEV.md with description and examples for
addClusterClients,addRequiredClusterClients,addOptionalClusterClients, andgetEndpoint. - [deviceTypes]: Add
requiredClientClustersandoptionalClientClustersto the device type definitions for:OTAProvider,deviceEnergyManagement,onOffLight,dimmableLight,colorTemperatureLight,extendedColorLight,onOffOutlet,dimmableOutlet,onOffMountedSwitch,dimmableMountedSwitch,pumpDevice,waterValve,onOffSwitch,dimmableSwitch,colorTemperatureSwitch,thermostatDevice,heatPump,cameraController. - [codecov]: Add merge of Jest and Vitest coverage reports. This allows to run both Jest and Vitest tests in the same package and have a unified coverage report in Codecov.
Changed
- [package]: Update dependencies.
- [package]: Bump
node-ansi-loggerto v.3.3.0-dev-20260524-cac9dd5. - [package]: Bump
node-persist-managerto v.2.1.0-dev-20260524-6a6019a. - [package]: Refactor
jest-utilsandvitest-utilspackages. - [package]: Add exports for
jest-utilsandvitest-utilspackages. - [package]: Bump
@eslint/jsonto v.2.0.0. - [package]: Bump
@vitest/eslint-pluginto v.1.6.19. - [package]: Bump
eslint-plugin-prettierto v.5.5.6. - [package]: Bump
npm-check-updatesto v.22.2.1. - [package]: Bump
typescript-eslintto v.8.60.1. - [oxlint]: Bump
oxlintconfig to v.1.0.2. - [oxfmt]: Bump
oxfmtconfig to v.1.0.2. - [jest]: Bump
jestconfig to v.2.0.2. - [vitest]: Bump
vitestconfig to v.2.0.5. - [eslint]: Bump
eslintconfig to v.2.0.5. - [eslint]: Bump
devcontainerconfig to v.1.0.1. - [claude]: Move CLAUDE.md in the repo root.
- [claude]: Add .claude/settings.json with permissions configuration.
Fixed
- [frontend]: Fix value of port discriminator and passcode shown on Settings/Matter settings on the frontend.