[3.10.12] - 2026-10-02
Breaking changes
- [rvc]: The ServiceArea cluster of every RoboticVacuumCleaner now always advertises the
SkipAreacommand (and itsSkipAreaResponse), even when the ProgressReporting feature is not enabled. Its conformance is[CurrentArea | Progress](Matter 1.6.1 § 1.17.7) and the RVC always hasCurrentArea. Plugins should register askipAreacommand handler and stop operating in the skipped area: without it, the command only gets validated and answers Success while the device keeps operating there.
Added
- [refrigerator]: Add the
RefrigeratorAndTemperatureControlledCabinetMode.changeToModecommand handler, so plugins now receive the Refrigerator mode changes. - [oven]: Add the
OvenMode.changeToMode,OvenCavityOperationalState.startandOvenCavityOperationalState.stopcommand handlers, so plugins now receive the Oven commands. - [bun]: Bun support is now available for production use, either as a standalone installation on a host with only Bun installed or through the
bunandbundevDocker images. Three months of testing found no issues and showed substantial improvements in speed and efficiency. Next releases will switch the repository to use bun as package manager and to bundle, pack and publish. - [dgram]: Add
isFirstOnPort()tomdns.ts(v.1.1.1) to check that no other socket is bound to the mDNS port (RFC 6762 §15.1), with itsmdns.port.test.tstest. - [frontend]: Add and expand unit tests for
QRDivnode switching, stale message handling, pairing commands, fabric removal, session counts, and clipboard fallbacks. - [frontend]: Expand
SearchPluginsDialogtests for selection and reset on reopen, npm cache validation, metadata and version loading, download retries, request cancellation, link validation, and mobile layout. - [frontend]: Expand
ConfigPluginDialogtests for form submission and cancellation, missing configuration, schema UI properties, custom RJSF templates and widgets, and WebSocket response filtering. - [frontend]: Add and expand
Header,HomePlugins, andHomeLogstests for connection state, WebSocket listener lifecycle, controls and links, plugin metadata and frontends, and log preferences. - [frontend]: Add
InstallProgressDialogandNetworkConfigDialogtests for rendering, actions, close behavior, saved preferences, scrolling, and network configuration state. - [frontend]: Add
MatterbridgeInfoTableandSystemInfoTabletests for field formatting and filtering, compact layout, runtime information, updates, and close behavior. - [frontend]: Add
WebSocketLogstests for badge colors and metadata, message updates, auto-scroll throttling, hover and touch behavior, and pending scrolls after unmount. - [frontend]: Add
WebSocketProvidertests for connection state, authentication, message validation and routing, listener lifecycle, log filtering and buffer limits, UI notifications, heartbeat timeouts, and reconnection retries. - [agents]: Add
commit message instructionsv.1.0.0 for the VS Code Copilot "Generate Commit Message" button (Conventional Commits).
Changed
- [vscode]: Update
.vscode/settings.jsonto v.1.0.14: point the Copilot "Generate Commit Message" button to.github/commit-message-instructions.md, ask before runningmb-runand before dependency installs and removals, and approvefind,bun test,npm run test:watchandnpm run test:verbose. - [antigravity]: Update
.antigravity/settings.jsonto v.1.0.5: ask before runningmb-run, allowfindand the read-only git commands, and remove the obsolete sandboxing comments. - [scripts]: Update
scripts/clean.mjsandscripts/deep-clean.mjsto v.1.3.0: add--helpand--versionand reject unknown arguments. - [scripts]: Remove the obsolete
eslint-disablecomments from the vendored scripts, the workspacedownloads.mjsscripts and the repository scripts. - [data-model]: Emit
oxlint-disable typescript/no-empty-object-typeinstead of the obsoleteeslint-disablein the generatedmatterClusterTypes.ts. - [styleguide]: Update
STYLEGUIDE.mdto v.1.1.0: align it with the lint and format config and add the Commit Messages and Changelog sections. - [matterbridge]: Bump
matterbridgeversion to v.3.10.12. - [matterbridge]: Bump
@types/nodeto v.26.6.3. - [matterbridge]: Bump
vitestto v.5.0.3. - [matterbridge]: Bump
@vitest/coverage-v8to v.5.0.3. - [matterbridge]: Bump
markedto v.18.0.14. - [matterbridge]: Bump
oxfmtto v.0.71.0. - [matterbridge]: Bump
oxlintto v.1.86.0. - [matterbridge]: Bump
oxlint-tsgolintto v.7.0.2003. - [core]: Bump
wsto v.8.22.0. - [core]: Bump
@types/wsto v.8.18.2. - [core]: Bump
@types/multerto v.2.3.0. - [types]: Suppress the new oxlint
no-generated-empty-object-typerule inbroadcastServerTypes.ts. - [dgram]: Update
mdns.tsto v.1.1.0:sendQueryandsendResponseaccept optional answers (known answers in queries), authorities and additionals, records accept an optionalflushflag, and add theDnsHeaderFlagenum and theMDNS_MAX_MESSAGE_LENGTHandMDNS_MAX_RESOURCE_RECORD_LENGTHconstants. - [dgram]:
sendQueryandsendResponseinmdns.tscompress DNS names (RFC 6762 §18.14), including the names in PTR and SRV rdata. - [dgram]: Update
dgram.tsto v.1.0.7: log socket lifecycle and traffic messages at debug level instead of info. - [dgram]: Use the Node.js
SocketTypetype indgram.ts,coap.ts,mdns.ts,multicast.tsandunicast.ts. - [scripts]: Update
clean.mjsanddeep-clean.mjsto v.1.2.0: log every removed path under its directory with a red dash (the emptied.cacheandnode_modulescontents as a single entry with their count), print the script version and a final summary with the elapsed time, and honorNO_COLORand redirected output. - [thread]: Bump
@zip.js/zip.jsto v.2.22.0. - [utils]: Update
runtimeBun.tsto v.1.0.1:sleep()on Node now usessetTimeoutfromnode:timers/promises. - [frontend]: Bump
frontendversion to v.3.6.3. - [frontend]: Require 100% line and function coverage in
test:coverage. - [devcontainer]: Update
post-create.shto v.2.3.0: add the workspace to the gitsafe.directorylist to avoid the "detected dubious ownership" error on macOS bind mounts. - [frontend]: Bump
@types/nodeto v.26.6.3. - [frontend]: Bump
jsdomto v.30.1.1. - [frontend]: Update the
MbfWindowtest expectations for jsdom's numeric computedfont-weightvalues. - [frontend]: Bump
viteto v.8.3.1. - [frontend]: Bump
vitestto v.5.0.3. - [frontend]: Add
@vitest/coverage-v8v.5.0.3 to the devDependencies instead of resolving it from the root workspace. - [frontend]: Bump
oxfmtto v.0.71.0. - [frontend]: Bump
oxlintto v.1.86.0. - [frontend]: Bump
oxlint-tsgolintto v.7.0.2003.
Fixed
- [waterHeater]: Narrow server endpoints and forward command context and completed command observables.
- [mediaHelpers]: Correct server log context and forward command context and completed command observables.
- [electricalUtilityMeter]: Narrow commodity server endpoints and forward command context and completed command observables.
- [closure]: Correct ClosureControl and ClosureDimension server endpoint context, command emissions and specification comments.
- [evse]: Emit completed EVSE commands to subscribers and return empty status text for unsupported modes.
- [matterbridge]: Raise the server node close timeout from 10 to 30 seconds, so a restart no longer starts the new server node while the old one still holds port 5540 (fixes
TC_AVSUM_2_9). - [behaviors]: Align the Camera AV Stream Management, Camera AV Settings User Level Management and WebRTC Transport Provider server messages and Matter 1.6.0 spec comments with the server endpoint context rules.
- [behaviors]: The Boolean State Configuration, Smoke CO Alarm, Mode Select, Device Energy Management, Device Energy Management Mode and Temperature Alarm servers narrow
endpointand emit the command observable for every completed command, and the Binding, Occupancy Sensing, Pump Configuration and Control and Switch servers narrowendpoint. - [behaviors]: The Window Covering, Operational State and Valve Configuration and Control servers narrow
endpointand emit the command observable for every completed command. - [doorLock]:
MatterbridgeDoorLockServernarrowsendpointand emits the command observable for every completed command, including getter responses supplied by the plugin. - [roboticVacuumCleaner]: Add the endpoint context to the RVC Run Mode, Clean Mode and Operational State server messages, forward their commands with the action context, narrow
endpoint, emit the command observables and add Matter 1.6.0 spec comments. - [serviceArea]:
MatterbridgeServiceAreaServernarrowsendpointand emits the command observable for an accepted SelectAreas. - [waterTankLevelMonitoring]:
ResetConditionnow resets Condition to 0 instead of 100 when DegradationDirection is Up (Matter 1.6.0 § 2.8.6.2), and the server narrowsendpointand emits the command observable. - [fanControl]:
createBaseFanControlClusterServer()andcreateOnOffFanControlClusterServer()now use a featurelessMatterbridgeFanControlServerinstead of the plain matter.js server, so the Fan Control attribute rules (Matter 1.6.0 § 4.4.6) also apply to the Extractor Hood and to base and On/Off fans. - [filterMonitoring]:
ResetConditionnow resets Condition to 0 instead of 100 when DegradationDirection is Up (Matter 1.6.0 § 2.8.6.2), and the HEPA and Activated Carbon filter monitoring servers narrowendpointand emit the command observable. - [behaviors]: The Thermostat, Fan Control and Identify servers now emit their command observables to
subscribeCommand()listeners, and the Thermostat, Fan Control, Identify and Power Source servers narrowendpointinstead of casting it. - [temperatureControl]:
SetTemperaturenow rejects an out-of-range TargetTemperatureLevel or TargetTemperature, and a TargetTemperature not aligned to Step, with CONSTRAINT_ERROR instead of accepting it, and a missing field with INVALID_COMMAND (Matter 1.6.0 § 8.2.6.1). - [temperatureControl]: Add the endpoint context to the temperature control server messages, forward SetTemperature with the action context, narrow
endpoint, emit the command observable and add Matter 1.6.0 spec comments. - [refrigerator]:
ChangeToModewith an unknown mode now respondsUnsupportedModeinstead ofInvalidInMode(Matter 1.6.0 § 1.10.7.1.1). - [refrigerator]:
MatterbridgeRefrigeratorAndTemperatureControlledCabinetModeServernow runs the base initialization, which requires an Auto mode in SupportedModes (Matter 1.6.0 § 8.7.6.1). - [refrigerator]: Add the endpoint context to the Refrigerator mode server messages, narrow
endpoint, emit the command observable and add Matter 1.6.0 spec comments. - [dishwasher]:
MatterbridgeDishwasherModeServerkeeps the configured CurrentMode at startup instead of forcing mode 2, and runs the DishwasherModeServer initialization, which requires a Normal mode (Matter 1.6.0 § 8.3.6.1). - [dishwasher]: Dead front now sets CurrentMode to the Normal-tagged mode instead of the hard-coded mode 2.
- [dishwasher]: Add the endpoint context to the Dishwasher Mode server messages, forward ChangeToMode with the action context, narrow
endpoint, emit the command observables and add Matter 1.6.0 spec comments. - [oven]:
Stopwhile Stopped andStartwhile Running now respond NoError and take no further action (Matter 1.6.0 § 1.14.6.2 and § 1.14.6.3). - [oven]:
MatterbridgeOvenModeServernow runs the OvenModeServer initialization, which requires a Bake mode in SupportedModes (Matter 1.6.0 § 8.11.6.1). - [oven]: Add the endpoint context to all Oven server logs, narrow
endpoint, emit the command observables and add Matter 1.6.0 spec comments. - [laundry-washer]: Normalize server endpoint messages and emit successful mode changes after plugin forwarding and state updates.
- [laundry-washer]:
MatterbridgeLaundryWasherModeServernow runs the LaundryWasherModeServer initialization, which requires a Normal mode in SupportedModes (Matter 1.6.0 § 8.5.6.1). - [laundry-washer]: Dead front now sets CurrentMode to the Normal-tagged mode instead of the hard-coded mode 2.
- [laundry-dryer]: Add
MatterbridgeLaundryDryerControlsServer, which rejects a SelectedDrynessLevel not in SupportedDrynessLevels with CONSTRAINT_ERROR (Matter 1.6.0 § 8.9.5.2). - [dgram]: Fix
encodeDnsNameinmdns.tswriting the character count instead of the UTF-8 byte length of each label, which corrupted packets with non-ASCII names. - [frontend]: Fix React Compiler
react/immutabilityrule flags. - [frontend]: Fix React Compiler
react/set-state-in-effectrule flags. - [frontend]: Fix React Compiler
react/hooksrule flags. - [frontend]: Fix React Compiler
react/refsrule flags. - [microwaveOven]:
AddMoreTimenow rejects an invalid TimeToAdd with CONSTRAINT_ERROR and adds TimeToAdd to the Operational StateCountdownTime(Matter 1.6.0 § 8.13.6.3.2). - [microwaveOven]:
SetCookingParametersnow rejects a CookMode not in SupportedModes with CONSTRAINT_ERROR and validates after forwarding to the plugin. - [microwaveOven]: Add the endpoint context to all
MatterbridgeMicrowaveOvenControlServerlogs and errors, narrowendpointand emit the command observable. - [microwaveOven]:
AddMoreTimenow rejects the command with INVALID_IN_STATE while the Operational State is Error (Matter 1.6.0 § 8.13.6.3.2). - [microwaveOven]:
SetCookingParametersnow rejects the command with INVALID_IN_STATE unless the Operational State is Stopped (Matter 1.6.0 § 8.13.6.2.6). - [closure]:
MoveTocompletion now reportsSecureStatetrue only when the closure is both FullyClosed (Positioning) and latched (MotionLatching) (Matter 1.6.0 § 5.4.6.5.4).