UNPKG

matterbridge

Version:

Matterbridge plugin manager for Matter

891 lines (631 loc) 177 kB
<!-- eslint-disable markdown/no-missing-label-refs --> # <img src="https://matterbridge.io/assets/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge changelog [![npm version](https://img.shields.io/npm/v/matterbridge.svg)](https://www.npmjs.com/package/matterbridge) [![npm downloads](https://img.shields.io/npm/dt/matterbridge.svg)](https://www.npmjs.com/package/matterbridge) [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge/latest?label=docker%20version)](https://hub.docker.com/r/luligu/matterbridge) [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge?label=docker%20pulls)](https://hub.docker.com/r/luligu/matterbridge) ![Node.js CI](https://github.com/Luligu/matterbridge/actions/workflows/build.yml/badge.svg) ![CodeQL](https://github.com/Luligu/matterbridge/actions/workflows/codeql.yml/badge.svg) [![Codecov](https://codecov.io/gh/Luligu/matterbridge/branch/main/graph/badge.svg)](https://codecov.io/gh/Luligu/matterbridge) [![tested with Vitest](https://img.shields.io/badge/tested_with-Vitest-6E9F18.svg?logo=vitest&logoColor=white)](https://vitest.dev) [![styled with Oxc](https://img.shields.io/badge/styled_with-Oxc-9BE4E0.svg?logo=oxc&logoColor=white)](https://oxc.rs/docs/guide/usage/formatter.html) [![linted with Oxc](https://img.shields.io/badge/linted_with-Oxc-9BE4E0.svg?logo=oxc&logoColor=white)](https://oxc.rs/docs/guide/usage/linter.html) [![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/) [![TypeScript Native](https://img.shields.io/badge/TypeScript_Native-3178C6?logo=typescript&logoColor=white)](https://github.com/microsoft/typescript-go) [![ESM](https://img.shields.io/badge/ESM-Node.js-339933?logo=node.js&logoColor=white)](https://nodejs.org) [![ESM](https://img.shields.io/badge/ESM-Bun-000000?logo=bun&logoColor=white)](https://bun.com) [![matterbridge.io](https://img.shields.io/badge/matterbridge.io-online-brightgreen)](https://matterbridge.io) [![powered by](https://img.shields.io/badge/powered%20by-matter--history-blue)](https://www.npmjs.com/package/matter-history) [![powered by](https://img.shields.io/badge/powered%20by-node--ansi--logger-blue)](https://www.npmjs.com/package/node-ansi-logger) [![powered by](https://img.shields.io/badge/powered%20by-node--persist--manager-blue)](https://www.npmjs.com/package/node-persist-manager) --- All notable changes to this project will be documented in this file. If you like this project and find it useful, please consider giving it a star on [GitHub](https://github.com/Luligu/matterbridge) and sponsoring it. <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="120"></a> ## Project evolution The project is evolving to a multi-threaded architecture with these advantages: - real concurrency outside the Node.js main loop; - memory and performace optimization; - isolation between threads; - individual plugin isolation in childbridge mode; - ability to update the plugin in childbridge mode without restarting matterbridge; ✅ The CLI is the threads manager. These threads already run as workers: - ✅ check updates; - ✅ check docker updates; - ✅ system check; - ✅ spawn commands; - ✅ archive commands; - ✅ check the global node_modules directory; These classes will run as threads in the next releases: - matterbridge; - frontend; - all plugins in bridge mode; - each plugin in childbridge mode; ## [3.9.4] - 2026-07-10 ### Added - [matterbridge]: Add running statistics and improper shutdown detection. - [matter]: Add Matter 1.6.0 specs and the [Matter 1.6.0 changes from 1.5.1](Matter-1.6.0.md) document. - [docker]: Add the `bun-ubuntu-slim` base image and build workflow. ### Changed - [matterbridge]: Bump `matterbridge` version to v.3.9.4. - [matterbridge]: Update dependencies. - [matterbridge]: Bump `@types/node` to v.26.1.0. - [matterbridge]: Bump `@typescript/native-preview` to v.7.0.0-dev.20260703.1. - [matterbridge]: Bump `oxfmt` to v.0.57.0. - [matterbridge]: Bump `oxlint` to v.1.72.0. - [matterbridge]: Bump `oxlint-tsgolint` to v.0.24.0. - [package]: Apply style to all files. - [service]: Update service configuration example `systemd/matterbridge.service`. - [service]: Update service configuration guides. - [matterbridge]: Bump `@matter/main` to v.0.17.4. - [matter]: Update the data model script to support Matter 1.6.0 generation. - [frontend]: Bump `frontend` version to v.3.5.2. - [frontend]: Update dependencies. <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.9.3] - 2026-07-03 ### Warning The Docker run examples did not set a stop timeout. The new matter.js storage lock system needs Matterbridge to shut down cleanly, so without `--stop-timeout 60` Docker may kill the container before the lock is released. Docker Compose setups should use `stop_grace_period: 60s` for the same reason. The docker guide has been updated. Please update your setup. ### Breaking changes - [frontend]: Stop checking for updates automatically on connection. It is the wrong timing to check for updates when the bridge is restarting. ### Added - [bun]: Add ban test runtime check. - [bun]: Add ban test workflow. - [bun]: The bun local docker image now runs from src files. No build is done. - [utils]: Add writeDiagnostic() in utils package. - [bun]: Add bunAvailable() in runtimeBun.ts. - [s6-rc]: Add a timeout-kill of 55 secs to the s6-rc images (same reason as the `--stop-timeout 60` in Docker run and Docker compose). ### Changed - [matterbridge]: Bump `matterbridge` version to v.3.9.3. - [matterbridge]: Update dependencies. - [matterbridge]: Bump `@matter/main` to v.0.17.4-alpha.0-20260627-deac80361. This brings a great memory optimization. Thanks @Apollon77. - [matterbridge]: Bump `@matter/main` to v.0.17.4-alpha.0-20260628-67a669f75. - [workflows]: Update all GitHub Actions to their latest major versions. - [docker]: Add `matterbridge-mqtt` to the dev Docker image. - [docker]: Add `--stop-timeout 60` to Docker Desktop examples so Matterbridge has enough time to shut down cleanly before Docker kills the container. - [oxlint]: Update `Oxlint configuration` to v.1.0.16. - [oxlint]: Update `Oxfmt configuration` to v.1.0.5. - [readme]: Improve the journald configuration comments in `README-SERVICE.md`, `README-SERVICE-OPT.md` and `README-SERVICE-LOCAL.md`. - [bun]: Change bun install param from --production to --omit=dev to avoid the frozen lock. - [thread]: Refactor Docker, npm and GitHub version check timeout handling and warn when Docker Hub rate limits version lookups. - [typecheck]: Refactor typecheck tsconfig.json. - [service]: Update service configuration guides. - [codex]: Update config to v.1.0.1. - [frontend]: Bump `frontend` version to v.3.5.1. - [frontend]: Update dependencies. ### Fixed - [thread]: Add worker-local unhandled rejection and uncaught exception guards, and count failed worker exits as thread errors. - [docs]: Fix wrong path for the frontend certificates: place certificates in the `.matterbridge/certs` directory. <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.9.2] - 2026-06-26 This release adds support for [bun](https://bun.sh/). Support for bun is stil under [development](README-BUN.md) and is purely experimental. ### Added - [frontend]: Add type aware linting with `oxlint` and format with `oxfmt`. - [frontend]: Remove eslint prettier typescript packages. The total package count drops from ~430 to ~220. Oxlint, Oxfmt and Tsgo run in a fraction of second. - [frontend]: Add wssSendPluginUpdateRequired(), wssSendPluginStatusUpdate() and wssSendMatterbridgeStatusUpdate() to allow updates without full refresh. - [checkUpdates]: Improve workflow sending only the updated versions to the frontend. - [checkUpdates]: Add new plugin version notification. - [checkUpdates]: Add no updates found notification. - [startup]: Improve workflow sending only the updated data to the frontend. - [configure]: Improve workflow sending only the updated data to the frontend. - [pack]: Add scripts\pack-monorepo.mjs to improve performance with monorepo pack. - [thread]: Add check for thread path existence. - [docker]: Refactor Dockerfiles for all images to improve speed. - [bun]: Add isBun() and getGlobalBunModules(). - [bun]: Add the `luligu/matterbridge:bun` docker image. - [bun]: Refactor thread manager lifecycle (init and exit) to work consistently with node and bun. ### Changed - [matterbridge]: Bump `matterbridge` version to v.3.9.2. - [matterbridge]: Update dependencies. - [matterbridge]: Bump `Oxlint configuration` to v.1.0.12. - [matterbridge]: Bump `@types/node` to v.26.0.1. - [matterbridge]: Bump `@matter/main` to v.0.17.4-alpha.0-20260627-deac80361. - [package]: Bump `node-ansi-logger` to v.3.3.0. - [package]: Bump `node-persist-manager` to v.2.1.0. - [frontend]: Bump `frontend` version to v.3.5.0. - [frontend]: Update dependencies. - [frontend]: Bump `Oxlint configuration` to v.1.0.3. - [frontend]: Bump `@types/node` to v.26.0.1. ### Fixed - [frontend]: Serve plugin frontend from `base/plugins/plugin/` for compatibility with Ingress. - [matterstorage]: Close the matter storage as many times as opened. Thanks Apollon77 and Alexander Thoukydides (https://github.com/matter-js/matter.js/issues/3945). <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.9.1] - 2026-06-19 ### Development Changes - [vitest]: Jest has been replaced by [Vitest](https://vitest.dev), which is much faster and natively supports ESM without extra configuration. - [jest]: Remove Jest tests and Jest packages. Dev dependencies package count drops from ~660 to ~450. A clean install is much faster. - [oxc]: ESLint and Prettier have been replaced by the [oxc](https://oxc.rs) stack: [oxlint](https://oxc.rs/docs/guide/usage/linter.html) for linting and [oxfmt](https://oxc.rs/docs/guide/usage/formatter.html) for formatting. Both lint and format the codebase in a fraction of the time the previous tools took. - [oxc]: Remove ESLint and Prettier packages. Dev dependencies package count drops from ~450 to ~240. A clean install is much faster. - [typescript]: Move the package to the TypeScript Native Preview (tsgo), which type-checks and builds in a fraction of the time of the classic compiler. The final build in the publish workflow is always done with TypeScript (tsc), since tsgo is still in preview. - [endpoint]: `hasAttributeServer()` now also detects mandatory attributes supplied by Matter.js behavior defaults. ### Added - [dependencies]: Add `scripts/scan-deps.mjs` to check that every `@matter/*` and `@matterbridge/*` import across the monorepo is declared in the package `dependencies`/`devDependencies` and, for workspace packages, referenced in the build tsconfig project references. The scanner understands the lockstep `@matter` monorepo, so a declared `@matter/main` satisfies its whole dependency closure (including the `@matter/nodejs` Node bootstrap). - [codex]: Add Codex configuration in `.codex/config.toml` and rules in `.codex/default.rules`. - [checkUpdates]: Improved workflow sending only once the refresh to the frontend. ### Changed - [matterbridge]: Update dependencies. - [matterbridge]: Bump `matter.js` to v.0.17.3. - [matterbridge]: Bump `@typescript/native-preview` to v.7.0.0-dev.20260618.1. - [matterbridge]: Bump `oxlint` to v.1.70.0. - [matterbridge]: Bump `oxfmt` to v.0.55.0. - [matterbridge]: Bump `vitest` to v.4.1.9. - [matterbridge]: Bump `@vitest/coverage-v8` to v.4.1.9. - [oxfmt]: Update `Oxfmt configuration` to v.1.0.3. - [oxlint]: Update `Oxlint configuration` to v.1.0.10. - [agents]: Update `docs` to reflect the new toolchain.. ### Fixed - [utils/zip]: Remove no more present zip export. Thanks Pugsin (https://github.com/Luligu/matterbridge/pull/568). - [package]: Update legacy export. Thanks Pugsin (https://github.com/Luligu/matterbridge/pull/567). - [publish]: Fix publish.yml not checking the previously published SHA. - [publish]: Fix publish.yml publishing the frontend even when no changes were made. <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.9.0] - 2026-06-12 ### New plugin - [plugins]: A new plugin is now available [matterbridge-mqtt](https://github.com/Luligu/matterbridge-mqtt). ### Development Breaking Changes - [subscribeAttribute]: The `subscribeAttribute()` method is now synchronous and returns `MatterbridgeEndpoint` for chaining instead of `Promise<boolean>`. - [conformance]: Remove from `onOffSwitch`, `dimmableSwitch` and `colorTemperatureSwitch` the extraneous cluster servers. The OnOff cluster server is still needed if you want Apple Home to show a switch and should be added manually with .createDefaultOnOffClusterServer(). - [deviceTypes]: All exported device type names follow the Matter canonical name. Old exported names are deprecated and resolve to the new names. The import name is camel case. - [deviceTypes]: In all device type the property name changed to the canonical Matter name (e.g. MA-onOffLight => OnOffLight). The name property is Pascal case and follow the Matter canonical name (without "-" and "/"). - [deprecation]: Add the list of [deprecation notices](README-DEV.md#deprecation-list). - [matter]: Update doc [Matter 1.5.1 changes from 1.4.2](Matter-1.5.1.md). - [matter]: Update doc [Matter.js 0.17 changes from 0.16](Matter.js-0.17.md). ### Added - [s6-rc]: Delete `matter.js storage locks` before starting the s6-rc and s6-rc-legacy docker images. - [test-utils]: Add matter methods in `jest-utils` and `vites-utils` packages. - [soilMeasurement]: Add `createDefaultSoilMeasurementClusterServer()` endpoint helper. - [deviceTypes]: Add `controlBridge`, `pumpController`, `windowCoveringController`, `thermostatController`, `contentApp`, `castingVideoClient`, `videoRemoteControl` device types. - [eslint]: Enforce `@typescript-eslint/no-deprecated` rule. - [register]: Add `getSupportedDeviceType()` and `getSupportedCluster()` register helpers. See [matterbridge-mqtt](https://github.com/Luligu/matterbridge-mqtt) plugin for an example. - [factory]: Add `createClusterServer()` and `getServerBehaviorFromClusterId()` generic factory helpers. See [matterbridge-mqtt](https://github.com/Luligu/matterbridge-mqtt) plugin for an example. - [frontend]: Add plugin frontend button in the UI when a plugin has a frontend. Try [matterbridge-mqtt](https://github.com/Luligu/matterbridge-mqtt) for an example. ### Changed - [matterbridge]: Update dependencies. - [matterbridge]: Bump `matter.js` to v.0.17.2-alpha.0-20260606-610f30128. - [matterbridge]: Bump `matter.js` to v.0.17.2-alpha.0-20260609-97109a2d3. - [matterbridge]: Bump `matter.js` to v.0.17.2. - [matterbridge]: Bump `marked` to v.18.0.5. - [matterbridge]: Bump `npm-check-updates` to v.22.2.3. - [matterbridge]: Bump `@types/node` to v.25.9.2. - [matterbridge]: Bump `@vitest/eslint-plugin` to v.1.6.19. - [matterbridge]: Bump `eslint-plugin-jsdoc` to v.63.0.2. - [matterbridge]: Bump `eslint-plugin-n` to v.18.1.0. - [matterbridge]: Bump `prettier` to v.3.8.4. - [matterbridge]: Bump `typescript-eslint` to v.8.61.0. - [matterbridge]: Remove npm-check-updates shx packages. - [frontend]: Bump `frontend` version to v.3.4.17. - [frontend]: Update dependencies. - [frontend]: Bump `@rjsf` to v.6.6.1. - [frontend]: Bump `react` to v.19.2.7. - [frontend]: Bump `react-router` to v.7.17.0. - [frontend]: Bump `vite` to v.8.0.16. - [frontend]: Bump `vitest` to v.4.1.8. - [frontend]: Remove cross-env npm-check-updates shx packages. - [frontend]: Made dialogs full screen on mobile. ### Fixed - [setCluster]: Allow partial in setCluster() ClusterType overload. - [powerSource]: Fix type of batPercentRemaining and batVoltage attributes in PowerSource enpoint helpers. <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [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](https://matterbridge.io/Matter-1.5.1.html). - [matter]: Update to matter.js 0.17.1. See [Matter.js 0.17 changes from 0.16](https://matterbridge.io/Matter.js-0.17.html). - [matter]: Enable `tcp` transport with `udp` preference. 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()` call `addRequiredClusters()` (3.8.0 only) to add both required server clusters and required client clusters. ### Development - [logger]: The `node-ansi-logger` package integrates now a chainable ANSI tagged template styling API. See matterbridge-mqtt plugin for an example. ### 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. (https://github.com/Luligu/matterbridge/issues/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). (https://github.com/Luligu/matterbridge/issues/561). - [bindingServer]: Add `getEndpoint(clusterId: ClusterId): Endpoint | undefined` to `MatterbridgeBindingServer` to look up the bound remote endpoint for a given client cluster ID. - [endpoint]: Add `addClusterClients(clientList: ClusterId[])` helper and chainable `MatterbridgeEndpoint` method to require `MatterbridgeBindingServer` with 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 chainable `MatterbridgeEndpoint` method to collect and register all required client clusters declared by the endpoint's device types. - [endpoint]: Add `addOptionalClusterClients()` helper and chainable `MatterbridgeEndpoint` method to collect and register all optional client clusters declared by the endpoint's device types. - [endpoint]: Add `addRequiredClusters()` chainable `MatterbridgeEndpoint` method that calls both `addRequiredClusterServers()` and `addRequiredClusterClients()` in one step. - [endpoint]: Add `createDefaultBindingClusterServer(clientList: ClusterId[])` chainable `MatterbridgeEndpoint` method as the standard `createDefault*` 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`, and `getEndpoint`. - [deviceTypes]: Add `requiredClientClusters` and `optionalClientClusters` to 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-logger` to v.3.3.0-dev-20260524-cac9dd5. - [package]: Bump `node-persist-manager` to v.2.1.0-dev-20260524-6a6019a. - [package]: Refactor `jest-utils` and `vitest-utils` packages. - [package]: Add exports for `jest-utils` and `vitest-utils` packages. - [package]: Bump `@eslint/json` to v.2.0.0. - [package]: Bump `@vitest/eslint-plugin` to v.1.6.19. - [package]: Bump `eslint-plugin-prettier` to v.5.5.6. - [package]: Bump `npm-check-updates` to v.22.2.1. - [package]: Bump `typescript-eslint` to v.8.60.1. - [oxlint]: Bump `oxlint` config to v.1.0.2. - [oxfmt]: Bump `oxfmt` config to v.1.0.2. - [jest]: Bump `jest` config to v.2.0.2. - [vitest]: Bump `vitest` config to v.2.0.5. - [eslint]: Bump `eslint` config to v.2.0.5. - [eslint]: Bump `devcontainer` config 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. <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.7.10] - 2026-05-22 ### Development - [matter]: Update [Matter 1.5.1 changes from 1.4.2](Matter-1.5.1.md). - [matter]: Update [Matter.js 0.17 changes from 0.16](Matter.js-0.17.md). ### Added - [development]: Local plugins (not installed but just added from a local path) are now supported also with Docker (use a path reachable from the container i.e. /root/Matterbridge/factory/pluginname). Matterbridge will be automatically linked to the package on restart. - [development]: Uploaded plugins not published on npm are now supported also with Docker (use private=true in package.json). They will be reinstalled on Docker recreate from the last used tarball. ### Changed - [package]: Update dependencies. - [package]: Bump `eslint` to v.10.4.0. - [package]: Bump `@types/node` to v.25.9.1. - [package]: Bump `ts-jest` to v.29.4.11. - [package]: Bump `typescript-eslint` to v.8.59.4. - [package]: Bump `vitest` to v.4.1.7. - [package]: Bump `@vitest/coverage-v8` to v.4.1.7. - [package]: Bump `eslint-plugin-jsdoc` to v.63.0.0. - [package]: Bump `@eslint/markdown` to v.8.0.2. - [package]: Bump `marked` to v.18.0.4. - [package]: Remove tsconfig.eslint.json and use tsconfig.json. - [package]: Update `.devcontainer/devcontainer.json` for improved development experience with tsgo and oxc. - [package]: Update `.vscode/settings.json` for improved development experience with tsgo and oxc. - [package]: Add `.vscode/extensions.json` for improved development experience with tsgo and oxc. - [frontend]: Bump `frontend` version to v.3.4.16. - [frontend]: Update dependencies. <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.7.9] - 2026-05-15 ### Breaking Changes - [docker]: The **latest** docker image now includes only Matterbridge, using the latest release published on npm. Official plugins are not included in the image: they will be reinstalled on first run. ### Development Changes - [tsgo]: Add explicit TypeScript project `references` to all workspace `tsconfig.build.json` and `tsconfig.build.production.json` files, enabling correct parallel builds with `tsgo`. Clean build time drops from **~17s** (`tsc`) to **~3s** (`tsgo`) — a **5.7× speedup**. - [localdev]: Add the ability to auto link matterbridge in the local plugins (not published on npm) when using docker (beta). Thanks [prohand](https://github.com/Luligu/matterbridge/issues/558). ### Added - [node]: Add Node.js 26.x to the allowed versions in the package.json `engines` field. - [workflows]: Add Node.js 26.x to the `build matrix` and remove Node.js 20.x. Node.js 20.x is still listed in the package.json engines field even if EOL. - [frontend]: Add `version` in the tooltip of plugin upgrade. Thanks [Tamer Salah](https://github.com/tammeryousef1006). ### Changed - [docker]: Update the **chip-test** Dockerfile to `ubuntu:24.04` because `ubuntu:latest` now resolves to Ubuntu 26.04 LTS (Resolute), which is not yet supported by connectedhomeip. - [docker]: The **24-ubuntu-slim** and **ubuntu** Matterbridge Docker images now resolve to "Ubuntu 26.04 LTS (Resolute)". - [frontend]: Bump `frontend` version to v.3.4.15. - [package]: Update dependencies. - [package]: Bump `jest` to v.30.4.2. - [package]: Bump `vitest` to v.4.1.6. - [package]: Bump `typescript-eslint` to v.8.59.3. - [scripts]: Refactor `scripts`. - [package]: Bump `eslint.config.js` v.2.0.3. - [package]: Bump `vite.config.ts` v.2.0.3. ### Fixed - [localdev]: Fix npm install for local plugins (not published on npm) when using docker. Thanks [prohand](https://github.com/Luligu/matterbridge/issues/558). <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.7.8] - 2026-05-09 ### Development Breaking Changes - [bin]: Remove mb-run bin. It will be replaced by mb-run package. - [matter]: Add the matter.js renamed Semantic Tag Namespaces in [Matter.js 0.17 changes from 0.16](Matter.js%200.17.md). ### Development changes - [matter]: Add the new Matter 1.5.1 Semantic Tag Namespaces in [Matter 1.5.1 changes from 1.4.2](Matter-1.5.1.md). ### Added - [storage]: Add the node storage health check. - [eslint]: Enforce `eslint-plugin-n` rules. - [frontend]: Add matterbridge version and frontend version in the after update panels. - [frontend]: Parse docker info in Matterbridge info. ### Changed - [package]: Update dependencies. - [package]: Bump `node-ansi-logger` to v.3.2.2. - [package]: Bump `node-persist-manager` to v.2.1.0. - [package]: Bump `eslint` to v.10.3.0. - [package]: Bump `marked` to v.18.0.3. - [package]: Bump `typescript-eslint` to v.8.59.2. - [package]: Bump `eslint-plugin-n` to v.18.0.1. - [package]: Bump `jest.config.js` v.2.0.1. - [package]: Bump `eslint.config.js` v.2.0.1. - [package]: Bump `vite.config.ts` v.2.0.2. - [frontend]: Bump `frontend` version to v.3.4.14. - [frontend]: Update dependencies. <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.7.7] - 2026-05-01 ### Changed - [package]: Update jest config to v.2.0.0, prettier config to v.2.0.0 and eslint config to v.2.0.0. ### Fixed - [frontend]: Fix add plugin after upload. <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.7.6] - 2026-05-01 ### Development changes - [matterbridge]: Add a persisted `uuid` properties to PlatformMatterbridge. This allows to detect a new setup in the plugin code. - [eslint]: Remove `eslint-plugin-promise` (not actively maintained) and add optional @typescript-eslint promise rules. - [utils]: Add `fireAndForget()` helper. - [utils]: Add `isValidPromise()` helper. - [tsgo]: Add experimental scripts to use `tsgo` (super fast typescript 7). Use npm run installExperimental before. - [oxlint]: Add experimental scripts to use `oxlint` (super fast linter). Use npm run installExperimental before. - [oxfmt]: Add experimental scripts to use `oxfmt` (super fast formatter). Use npm run installExperimental before. ### Added - [threads]: Add `snackBar()` helper to `WorkerWrapper` to send snackbar messages from worker threads to the frontend. - [systemcheck]: Show frontend snackbar errors for unsupported Node.js versions and network configuration issues detected by the SystemCheck worker. - [systemcheck]: Clarify excluded network interface guidance to mention the Mdns interface setting in the frontend. - [dockerversion]: Add snack bar message if a new Docker image exist. - [matter]: Add [Matter.js 0.17 changes from 0.16](Matter.js%200.17.md). - [scripts]: Add scripts\install-experimental.mjs and scripts\npm-link.mjs. - [threads]: Add a check on the worker result and fix cleanup for errors. - [promises]: Enforce `@typescript-eslint/no-floating-promises` rule. - [eslint]: Add `eslint` v.2.0.0 config (co-authored by Claude Sonnet 4.6). - [spawn]: Add `cross-spawn` v.7.0.6. - [frontend]: After the frontend upload a package, matterbridge will try to add the plugin too (this is a best effort and may fails). Thanks Pierre-Gilles Leymarie (https://github.com/Luligu/matterbridge/discussions/544) ### Changed - [package]: Update dependencies. - [package]: Bump `typescript-eslint` to v.8.59.1. - [jest]: Increase test timeout to 30 seconds in CI workflows. - [frontend]: Bump `frontend` version to v.3.4.13. - [frontend]: Update dependencies. - [matter]: Remove `Waiting for controllers to connect...`. Thanks [Tamer Salah](https://github.com/tammeryousef1006). - [eslint]: Update all docs. <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.7.5] - 2026-04-24 ### Development changes - [endpoint]: Remove undefined attributes from MatterbridgeEndpoint.forEachAttribute(). - [devcontainer]: Add `Claude Code for VS Code extension` to Dev Container. ### Added - [docker]: Add script to [run two instances of matterbridge](README-DOCKER.md#how-to-run-a-double-instance-of-matterbridge) (edge case when you need two instances of a plugin). - [matter]: Validate out-of-range server node passcodes and discriminators before creating the server node. Thanks Alexander Thoukydides (https://github.com/Luligu/matterbridge/issues/549). ### Changed - [package]: Update dependencies. - [test]: Strengthen single-class device attribute assertions by aligning `forEachAttribute` checks with the base test model. - [test]: Refactor `jestutils` module. ### Fixed - [frontend]: Add clear authClientsTimeout to destroy(). <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.7.4] - 2026-04-17 ### Dev news - [matter]: Add matterbridge/matter/model export to allow to create custom cluster with the matter.js decorator-based system. ### Added - [agent]: Add `.github\copilot-instructions.md` for Copilot. - [agent]: Add `.claude\CLAUDE.md` for Claude. - [agent]: Add agent custom instructions (testing) for Copilot and Claude. - [agent]: Add agent custom instructions (matterbridge) for Copilot and Claude. - [agent]: Add agent prompt files. - [matter]: Add [Matter 1.5.1 changes from 1.4.2](Matter-1.5.1.md). - [storage]: Create storage directories on start. - [config]: The dialog to blacklist an entity now shows only the entities not already blacklisted. Thanks [Tamer Salah](https://github.com/tammeryousef1006). ### Changed - [package]: Update dependencies. - [package]: Bump `matter.js` to v.0.16.11. - [package]: Bump `node-ansi-logger` to v.3.2.1. - [package]: Bump `node-persist-manager` to v.2.0.2. - [frontend]: Update dependencies. - [frontend]: Bump `frontend` version to v.3.4.12. <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.7.3] - 2026-04-10 ### New plugins - [security]: Add [Security Plugin](https://www.npmjs.com/package/matterbridge-security) v.1.0.0. ### Dev news - [frontend]: Implement rendering in config editor of array-items-enum-uniqueItems rjsf path (see the schema of Hass Plugin). - [platform]: Add BasePlatformConfig to strictly type the platform config (see the matterbridge-irobot module.ts). ### Added - [security]: Escape user-controlled strings in backend responses (e.g. upload `filename`) before sending them to the browser to reduce XSS risk (CodeQL). - [security]: Apply rate limiting to backend file-transfer endpoints (upload/download) to reduce brute-force/abuse and accidental DoS (CodeQL). ### Changed - [package]: Update dependencies. - [frontend]: Update dependencies. - [frontend]: Bump `frontend` version to v.3.4.11. - [terminal]: Ignore process.stdout.isTTY that was too restrictive. ### Fixed - [ansi]: Fix typo in getDefaultDeviceEnergyManagementModeClusterServer(). Thanks Ludovic BOUÉ (https://github.com/Luligu/matterbridge/pull/542). <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.7.2] - 2026-04-02 ### Dev Breaking Changes - [triggerEvent]: The overloads of `triggerEvent()` method that take Behavior.Type or ClusterType are now typed. - [behaviors]: The matterbridge behaviors are exported from matterbridge/behaviors. - [endpoint]: Remove createPinDoorLockClusterServer() endpoint helper because of the doorLock device type requirements (8.1.6). - [endpoint]: Refactor MatterbridgeDoorLockServer beahavior with autoRelockTime attribute and unlockWithTimeout, setUser, getUser, clearUser, setCredential, getCredentialStatus and clearCredential commands. ### Dev news - [endpoint]: Add internalFor() helper. ### Changed - [package]: Update dependencies. - [frontend]: Bump `frontend` version to v.3.4.10. - [frontend]: Remove `matterbridge-security` from ignore list. It has been published. ### Fixed - [ansi]: Fix --no-ansi and NO_COLOR=1 for threads and matter logger. <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.7.1] - 2026-03-27 ### Breaking Changes - [cli]: Change names to mb-mdns mb-coap mb-health. The old names (mb_mdns, mb_coap and mb_health) are still available but change your scripts and setups. ### Dev news - [utils]: Add getEnumDescription() function to log cluster enums. - [endpoint]: Add createPinDoorLockClusterServer() endpoint helper to create a DoorLock device with PIN and COTA feature. - [endpoint]: Add createUserPinDoorLockClusterServer() endpoint helper to create a DoorLock device with USR, PIN and COTA feature. ### Added - [package]: Add `CODE_OF_CONDUCT.md`. - [plugins]: Add `title` and `ui:widget` to default schema. - [threads]: Add `DockerVersion` thread. - [reset]: The reset commissioning clears also plugin and device with mode = server. - [mb-mdns]: Add `mb-mdns` v.2.0.0 and refactor both bins to exported CLI entrypoints with dedicated tests. - [mb-coap]: Add `mb-coap` v.2.0.0 and refactor both bins to exported CLI entrypoints with dedicated tests. - [mb-run]: Add `mb-run` bin. ### Changed - [package]: Update dependencies. - [package]: Bump `eslint` to v.10.1.0. - [package]: Bump `typescript` to v.6.0.2. - [frontend]: Bump `frontend` version to v.3.4.9. - [frontend]: Bump `typescript` to v.6.0.2. - [frontend]: Bump `vite` version to v.8.0.1 and fix imports for the new RollDown. - [frontend]: Bump `@rjsf` version to v.6.4.1 and refactor component ConfigPluginDialog. - [boot]: Change boot time limit from 120 to 300 seconds. - [frontend]: Remove `matterbridge-irobot` from ignore list. It has been published. ### Fixed - [frontend]: `Filter by` in the Devices page is now case insensitive. - [rvc]: Update `currentArea` parameter type to allow null in createDefaultServiceAreaClusterServer. - [config]: Fix config editor, to send formData consistently in onAction(). - [config]: Fix config editor, to add the device name instead of newKey in properties dialog. Thanks [Tamer Salah](https://github.com/tammeryousef1006). <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.7.0] - 2026-03-19 ### Dev Breaking Changes - [getAttribute]: The overloads of `getAttribute()` method that take Behavior.Type or ClusterType are now typed. - [setAttribute]: The overloads of `setAttribute()` method that take Behavior.Type or ClusterType are now typed. - [updateAttribute]: The overloads of `updateAttribute()` method that take Behavior.Type or ClusterType are now typed. - [subscribeAttribute]: The overloads of `subscribeAttribute()` method that take Behavior.Type or ClusterType and the handler function are now typed. - [addCommandHandler]: The `addCommandHandler()` method and the handler function are now typed. The command must be a string in the format "Cluster.command" (e.g. "OnOff.toggle"). The cluster name and command name should match the Matter specifications. For backward compatibility, aliases for the most used cluster commands (e.g. "on" or "off") are also supported ("toggle" is treated as "OnOff.toggle"). When you require Matterbridge >= 3.7.0 (verifyMatterbridgeVersion('3.7.0')), prefer the fully qualified command name (e.g. "OnOff.toggle" instead of just "toggle") to avoid conflicts with other clusters that have commands with the same name. The short form is deprecated and will be removed in the next releases. > The attributes property of data (passed to the handler function) is writable inside the handler function. > YOU CANNOT CALL enpoint.setAttribute() OR endpoint.setCluster() INSIDE THE HANDLER FUNCTION. At runtime none of these changes will create issues because this is a typing-only change (the runtime signatures didn't change). At build time (TypeScript compile time), you may see new type errors in plugins that call these overloads, because the types are now more strict/precise. If you hit build errors: - update your code to match the new typings (often it is just adjusting the generic/type argument or the inferred type); - change your verifyMatterbridgeVersion('3.7.0') to require Matterbridge >= 3.7.0. ### Dev News - [DevContainer]: Change base image to `mcr.microsoft.com/devcontainers/javascript-node:24-trixie`. - [DevContainer]: Add postStartCommand. ### Added - [frontend]: Add support for `Hass Ingress` project (https://github.com/lovelylain/hass_ingress). Thanks kramttocs (https://github.com/Luligu/matterbridge/discussions/524). - [threads]: Add `ArchiveCommand` thread. - [endpoint]: Add `getSnapshot()` to create a snapshot of matter cluster state. - [endpoint]: Add `removeCommandHandler()` method. ### Changed - [package]: Update dependencies. - [package]: Update actions versions in workflows. - [frontend]: Bump `frontend` version to v. 3.4.8. - [frontend]: Refactor archives creation using threads. - [frontend]: Change basePath to pathName for BrowserRouter. - [archive]: Use `zipjs` package. - [archive]: Remove `archiver` and `glob` packages. ### Fixed - [frontend]: Fix edge case when more then one device with mode = 'server' is in the same plugin. Thanks Ryan (https://github.com/Luligu/matterbridge/pull/528). - [thermostat]: Fix Thermostat preset implementation. <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.6.1] - 2026-03-13 ### Dev Breaking Changes - [getCluster]: The overloads of `getCluster()` method that take Behavior.Type or ClusterType are now typed. - [setCluster]: The overloads of `setCluster()` method that take Behavior.Type or ClusterType are now typed. ### Added - [package]: Enable tree-shaking for @matterbridge/utils. - [package]: Enable tree-shaking for @matterbridge/thread. - [threads]: Add ThreadsManager class to the cli. - [threads]: Add WorkerWrapper class. - [reset-sessions]: Add --reset-sessions parameter to disable resumption records. Use it only if your controller doesn't support resumption. ### Changed - [package]: Update dependencies. - [package]: Bump `eslint` to v.10.0.3. <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.6.0] - 2026-03-06 ### Dev Breaking Changes - [Oven]: Refactor `Oven` class to use TemperatureNumber for TemperatureControlledCabinet device type. - [Refrigerator]: Refactor `Refrigerator` class to use TemperatureNumber for TemperatureControlledCabinet device type. - [Evse]: Refactor `Evse` class as composed device. - [WaterHeater]: Refactor `WaterHeater` class as composed device. - [SolarPower]: Refactor `SolarPower` class as composed device. - [BatteryStorage]: Refactor `BatteryStorage` class as composed device. - [HeatPump]: Refactor `HeatPump` class as composed device. ### Dev News - [matter1.5.0]: Add SoilMeasurement cluster and corresponding test. - [matter1.5.0]: Add ClosureControl and ClosureDimension clusters with corresponding tests. - [matter1.5.0]: Add SoilSensor class and corresponding tests. - [matter1.5.0]: Add IrrigationSystem class and corresponding tests. - [matter1.5.0]: Add Closure class and corresponding tests. - [matter1.5.0]: Add ClosurePanel class and corresponding tests. - [matter1.5.0]: Add SoilSensor, IrrigationSystem, Closure, and ClosurePanel device types with corresponding definitions. - [semtag]: Add `getSemtag()` helper to facilitate adding tagList to the Descriptor cluster. If you use them don't forget to require Matterbridge 3.6.0. - [getCluster]: Add `getCluster()` method to retrive the state of a cluster. If you use them don't forget to require Matterbridge 3.6.0. - [setCluster]: Add `setCluster()` method to set the state of a cluster. If you use them don't forget to require Matterbridge 3.6.0. - [chip-test]: ✅ `TC_DeviceBasicComposition.py` passes. - [chip-test]: ✅ `TC_DeviceConformance.py` passes. - [chip-test]: ✅ `TC_DefaultWarnings.py` passes. ### Added - [docker]: Add the image (tag **s6-rc-legacy** 83 MB). It includes only Matterbridge, using the latest release published on npm. This image is based on `node:22-bullseye-slim` (the last node version supporting armv7), supports `arm64`, `amd64` and `arm/v7` and integrates the `s6-rc overlay` system. Plugins are not included in the image: they will be installed on first run. It will be used for the legacy [Matterbridge Home Assistant Application (Legacy)](https://github.com/Luligu/matterbridge-home-assistant-addon-legacy). - [frontend]: Add the ability to filter by plugin in the Devices page. Thanks [Tamer Salah](https://github.com/tammeryousef1006). - [frontend]: Add in the config whiteList and blackList select a filter to remove from the list what is already added. Thanks [Tamer Salah](https://github.com/tammeryousef1006). - [frontend]: Unregister all devices increments the BasicInformation.configurationVersion. This, if supported on controller side, allows controllers to detect changes in the configuration. ### Changed - [package]: Update dependencies. - [package]: Add `@eslint/json`. - [package]: Add `@eslint/markdown`. - [docker]: The base image `24-ubuntu-slim` is now built with the latest node 24 release. - [frontend]: Bump `frontend` version to v. 3.4.7. - [frontend]: Update dependencies. ### Fixed - [thermostat]: Remove atomic commands required only with Preset and Schedule features. - [TemperatureControlledCabinet]: Remove not mandatory Identify cluster from TemperatureControlledCabinet device type. - [frontend]: Fix config lock from select Devices panel. It broke somehow in the past releases. - [logger]: Fix logger level in the single class devices. Thanks Reimer Prochnow (https://github.com/Luligu/matterbridge/issues/521). - [frontend]: Add `charset=utf-8` to type in view and download api. Thanks FredForHACS (https://github.com/Luligu/matterbridge-home-assistant-addon/issues/48). <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.5.6] - 2026-02-27 ### Dev Breaking Changes - [rootNode]: The serialNumber and uniqueId for accessory plugins in childbridge mode, and for devices with mode = server, are now taken from the device. These values are persisted in storage and cannot be changed later. - [devContainer]: Add the guide to [pair Matterbridge with Dev Container](README-DEV.md#how-to-pair-matterbridge-in-dev-containers) - [devContainer]: Add the new [dev container setup](https://matterbridge.io/reflector/MatterbridgeDevContainer.html). - [devContainer]: Add the new [reflector dev container setup](https://matterbridge.io/reflector/Reflector.html). ### Dev News - [binding]: Add for test only MatterbridgeBindingServer. - [docker]: Add **luligu/matterbridge:chip-test** image (400MB): it is based on Ubuntu LTS, Node.Js 24 LTS and includes connectedhomeip repository with chip-tool, chip-cert and all packages requierd to run yaml and phyton tests. The matterbridge instance inside the container is already paired for yaml and python test. In the container, the chip environment and phyton environment are already active. Just open a shell inside the container with bash and run the yaml or phyton tests. Matterbridge frontend is bound on port 8283. No volumes or port mapping needed. - [styleguide]: Add [STYLEGUIDE.md](STYLEGUIDE.md). - [contributing]: Add [CONTRIBUTING.md](CONTRIBUTING.md). ### Added - [nvm]: Add detection for Nvm (not for production with systemd service). - [nvm]: Clarify in systemd guides that Nvm cannot be used for production. ### Changed - [package]: Update dependencies. - [package]: Bump packages to `automator` v.3.1.0. - [package]: Bump `eslint` to v.10.0.2. - [package]: Bump `typescript-eslint` to v.8.56.1. - [package]: Replace `eslint-plugin-import` with `eslint-plugin-simple-import-sort`. - [package]: Bump `matter.js` to v.0.16.10. Thanks matter.js team. ### Fixed - [advertise]: Remove no more used timeout of 15 minutes. <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.5.5] - 2026-02-20 ### Breaking Changes - [Node.Js]: Consider to update all not docker based setups to Node.Js 24 that is now the LTS. - [docker]: Use mb_health instead of curl for HEALTHCHECK. This allows to save around 15MB on the docker image size. If you override the UI port or the protocol, update the health check CMD with mb_health https://localhost/health or disable it. ### Added - [images]: Add OCI standard labels (https://opencontainers.org/) to docker pipelines. - [frontend]: Add frontend publishing steps to publish workflow. - [docker]: Add dockerVersion api. ### Changed - [package]: Update dependencies. - [package]: Bump package to `automator` v.3.0.8. - [package]: Bump `node-persist-manager` to v.2.0.1, - [package]: Bump `eslint` to v.10.0.0. - [package]: Bump `matter.js` to v.0.16.9 (suspended, waiting for https://github.com/matter-js/matter.js/issues/3232). ### Fixed - [frontend]: Fix possible issue with some browsers in check authentication. Thanks Ludovic BOUÉ and k3067e3 (https://github.com/Luligu/matterbridge/issues/498). <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.5.4] - 2026-02-13 ### Dev Breaking Changes - [exports]: Removed Matterbridge export from matterbridge. ### Breaking Changes - [doorLock]: The default value for **DoorLock.actuatorEnabled** has been changed to true. Thanks Ludovic BOUÉ (https://github.com/Luligu/matterbridge/pull/509). - [ingress]: Removed the `--ingress` parameter used in the old Home Assisant add-on. Update the Matterbridge Home Assistant Application (formerly known as add-on) if you didn't. - [Node.Js]: Restricted **Node.Js requirents** to `>= 20.19` < 21 or `>= 22.13` < 23 or `>= 24` < 25. - [Node.Js]: Consider to update all all not docker based setups to Node.Js 24 that is now the LTS. ### Added - [packages]: Added **@matterbridge/types** monorepo scoped package. - [packages]: Added **@matterbridge/core** monorepo scoped package. - [apps]: Added **@matterbridge/frontend** monorepo scoped package. - [monorepo]: The transition to a modern monorepo setup with scoped packages is now completed. - [addon]: Added two other s6-rc based images to be used in the next releases of the [Home Assistant Application](https://github.com/Luligu/matterbridge-home-assistant-addon). - [frontend]: The frontend is now built in the GitHub publish workflow. - [SystemCheck]: Added a **system check** (run in its own thread) that starts after 2 minutes and checks the most common causes of issues: Node.Js version and network configuration. - [SystemCheck]: Added parameter **--systemcheck** to run the system check and exit. ### Changed - [package]: Updated dependencies. - [matterbridge.io]: Updated docs and styles. - [docker]: Updated docker readme file to clarify which base image is used. - [frontend]: Bumped `frontend` version to v. 3.4.5. ### Fixed - [worflows]: Fixed workflows that failed and dockerfiles. - [childbridge]: Fixed sequence of disabling a plugin in childbridge mode. Thanks [Tamer Salah](https://github.com/tammeryousef1006). ### Security During installation you may see in the log a warning that looks scary, for example: ```text npm warn deprecated glob@10.5.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me ``` This warning does not come from Matterbridge code. It is emitted by a transitive dependency (the `archiver` package) that pulls in an older `glob` version. Matterbridge does not depend on this version of `glob` directly. In short: you can safely ignore this message; it is a dependency warning, not a Matterbridge vulnerability. <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a> ## [3.5.3] - 2026-02-06 ### Dev Breaking Changes - [logger]: The logger (node-ansi-logger) has been refactored and updated (v.3.2.0) to support the new features