matterbridge-zigbee2mqtt 3.2.2-dev-20260904-d8803ee → 3.2.2-dev-20260920-6ef7b6e

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -31,9 +31,27 @@ If you like this project and find it useful, please consider giving it a star on
31
31
 
32
32
  ## [3.2.2] - Dev branch
33
33
 
34
+ ### Breaking changes
35
+
36
+ - [matterbridge]: Require matterbridge v.3.10.10 with matter v.1.6.0.
37
+
38
+ ### Added
39
+
40
+ - [devcontainer]: Add [`Dev Container`](.devcontainer/README.md) v.2.2.0 with dual Node and Bun runtime support.
41
+ - [agents]: Add a [`shared setup`](.agents/README.md) for all agents: OpenAI Codex, Claude Code, GitHub Copilot and Google Gemini / Antigravity.
42
+
34
43
  ### Changed
35
44
 
36
- - [test]: Update expectation to matterbridge 3.10.8.
45
+ - [package]: Upgrade package.
46
+ - [package]: Bump `node-ansi-logger` to v.3.3.1.
47
+ - [package]: Bump `node-persist-manager` to v.2.1.1.
48
+ - [package]: Bump `oxfmt` to v.0.68.0.
49
+ - [package]: Bump `oxlint` to v.1.83.0.
50
+ - [package]: Bump `oxlint-tsgolint` to v.7.0.2002.
51
+ - [package]: Bump `vitest` to v.5.0.1.
52
+ - [package]: Bump `@vitest/coverage-v8` to v.5.0.1.
53
+ - [package]: Bump `@types/node` to v.26.6.2.
54
+ - [package]: Bump `typescript` to v.7.0.2.
37
55
 
38
56
  <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a>
39
57
 
package/README.md CHANGED
@@ -367,37 +367,70 @@ See also the [Style Guide](./STYLEGUIDE.md) for JSDoc, naming, and logging conve
367
367
  - **Much faster builds** — tsgo compiles the project in a fraction of the time required by the standard `tsc` build.
368
368
  - **Editor support** — use the VS Code extensions for tsgo and oxc to get the same experience in the editor.
369
369
 
370
- ## Copilot instructions
370
+ ## Shared agent instructions
371
+
372
+ All coding agents read the same guidance. [AGENTS.md](./AGENTS.md) and [.agents/](./.agents/) are the **single source of truth**; everything under `.github/`, `.claude/`, `.codex/` and `.antigravity/` are pointers and mirrors. Edit `.agents/` (or `AGENTS.md`), never the copies. See [.agents/README.md](./.agents/README.md) for the full layout.
373
+
374
+ | File | Notes |
375
+ | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
376
+ | `AGENTS.md` | Main project instructions — shared by every agent |
377
+ | `.agents/README.md` | Layout and versioning of the shared instructions |
378
+ | `.agents/rules/testing.instructions.md` | Testing standards for unit tests |
379
+ | `.agents/rules/matterbridge.instructions.md` | Creating endpoints and using the single-class devices |
380
+ | `.agents/rules/plugin-frontend.instructions.md` | Serving a plugin's own frontend SPA and REST API |
381
+ | `.agents/rules/chip-tests.instructions.md` | The CHIP conformance test harness |
382
+ | `.agents/skills/verify-agent-context/SKILL.md` | Verify the agent loaded this context — `$verify-agent-context` (Codex), `/verify-agent-context` (all others) |
383
+
384
+ Content lives only in `.agents/`. The per-agent folders exist because each tool discovers rules and skills from its own hardcoded location, so they hold stubs that point back here — except where the tool reads `.agents/` natively.
385
+
386
+ | Tool | Instructions | Rules | Skills |
387
+ | ---------------------------------- | ----------------------------------------------- | ----------------------------------------------------- | --------------------------------------------------- |
388
+ | Codex | `AGENTS.md` — read natively | `.agents/rules/` — linked from `AGENTS.md`, on demand | `.agents/skills/` — native, `$verify-agent-context` |
389
+ | Copilot (VS Code and coding agent) | `.github/copilot-instructions.md` → `AGENTS.md` | stubs in `.github/instructions/` — `applyTo` globs | stub in `.github/skills/` — `/verify-agent-context` |
390
+ | Claude Code | `CLAUDE.md` imports `AGENTS.md` | stubs in `.claude/rules/` — `paths` globs | stub in `.claude/skills/` — `/verify-agent-context` |
391
+ | Gemini / Antigravity | `GEMINI.md` imports `AGENTS.md` | `.agents/rules/` — on demand | `.agents/skills/` — native, `/verify-agent-context` |
392
+
393
+ ### Copilot instructions
371
394
 
372
395
  | File | Notes |
373
396
  | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
374
- | `.github/copilot-instructions.md` | Main project instructions — always loaded |
397
+ | `.github/copilot-instructions.md` | Pointer to AGENTS.md — always loaded |
375
398
  | `.github/instructions/chip-tests/chip-tests.instructions.md` | CHIP conformance test harness — scoped to CHIP test files |
376
399
  | `.github/instructions/matterbridge/matterbridge.instructions.md` | Matterbridge endpoint guide — dedicated Copilot instruction file |
377
400
  | `.github/instructions/plugin-frontend/plugin-frontend.instructions.md` | Plugin frontend SPA and custom REST API guide — scoped to frontend and plugin code |
378
- | `.github/instructions/testing/unit-tests.instructions.md` | Testing standards — scoped to `**/*.test.ts` |
401
+ | `.github/instructions/testing/testing.instructions.md` | Testing standards — scoped to `**/*.test.ts` |
402
+ | `.github/skills/verify-agent-context/SKILL.md` | Skill invocable as `/verify-agent-context` |
379
403
 
380
- ## Claude instructions
404
+ ### Claude instructions
381
405
 
382
406
  | File | Notes |
383
407
  | --------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
384
- | `CLAUDE.md` | Main project instructions — always loaded |
408
+ | `CLAUDE.md` | Pointer to AGENTS.md — always loaded |
409
+ | `.claude/settings.json` | Claude permissions: allow, ask and deny rules |
385
410
  | `.claude/rules/chip-tests/chip-tests.instructions.md` | CHIP conformance test harness — scoped to CHIP test files |
386
411
  | `.claude/rules/matterbridge/matterbridge.instructions.md` | Matterbridge endpoint guide — loaded for all contexts |
387
412
  | `.claude/rules/plugin-frontend/plugin-frontend.instructions.md` | Plugin frontend SPA and custom REST API guide — scoped to frontend and plugin code |
388
- | `.claude/rules/testing/unit-tests.instructions.md` | Testing standards — scoped to `**/*.test.ts` |
389
-
390
- ## Codex/Agents instructions
391
-
392
- | File | Notes |
393
- | ---------------------------- | ------------------------------------------------- |
394
- | `AGENTS.md` | Main project instructions |
395
- | `.agents/chip-tests.md` | CHIP conformance test harness |
396
- | `.agents/matterbridge.md` | Matterbridge endpoint guide |
397
- | `.agents/plugin-frontend.md` | Plugin frontend SPA and custom REST API guide |
398
- | `.agents/testing.md` | Testing and validation expectations |
399
- | `.codex/config.toml` | Codex project permissions, approvals, and profile |
400
- | `.codex/rules/default.rules` | Codex command allow, prompt, and deny rules |
413
+ | `.claude/rules/testing/testing.instructions.md` | Testing standards — scoped to `**/*.test.ts` |
414
+ | `.claude/skills/verify-agent-context/SKILL.md` | Skill invocable as `/verify-agent-context` |
415
+
416
+ ### Codex instructions
417
+
418
+ | File | Notes |
419
+ | ---------------------------- | ----------------------------------------------------------------- |
420
+ | `AGENTS.md` | Main project instructions — read directly, no pointer file needed |
421
+ | `.codex/config.toml` | Codex project permissions, approvals, and profile |
422
+ | `.codex/rules/default.rules` | Codex command allow, prompt, and deny rules |
423
+
424
+ Codex reads the shared rules and skills from `.agents/` directly; the skill is invoked as `$verify-agent-context`.
425
+
426
+ ### Gemini / Antigravity instructions
427
+
428
+ | File | Notes |
429
+ | ---------------------------- | ----------------------------------------------------- |
430
+ | `GEMINI.md` | Pointer to AGENTS.md — always loaded |
431
+ | `.antigravity/settings.json` | Sandboxing and permissions: allow, ask and deny rules |
432
+
433
+ The shared rules under `.agents/rules/` apply on demand for the relevant tasks, and `.agents/skills/` is discovered automatically as `/verify-agent-context`.
401
434
 
402
435
  ## Development guide
403
436
 
package/dist/module.js CHANGED
@@ -41,8 +41,8 @@ export class ZigbeePlatform extends MatterbridgeDynamicPlatform {
41
41
  constructor(matterbridge, log, config) {
42
42
  super(matterbridge, log, config);
43
43
  this.config = config;
44
- if (typeof this.verifyMatterbridgeVersion !== 'function' || !this.verifyMatterbridgeVersion('3.10.0')) {
45
- throw new Error(`This plugin requires Matterbridge version >= "3.10.0". Please update Matterbridge from ${this.matterbridge.matterbridgeVersion} to the latest version in the frontend.`);
44
+ if (typeof this.verifyMatterbridgeVersion !== 'function' || !this.verifyMatterbridgeVersion('3.10.10')) {
45
+ throw new Error(`This plugin requires Matterbridge version >= "3.10.10". Please update Matterbridge from ${this.matterbridge.matterbridgeVersion} to the latest version in the frontend.`);
46
46
  }
47
47
  this.shouldStart = false;
48
48
  this.shouldConfigure = false;
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "matterbridge-zigbee2mqtt",
3
- "version": "3.2.2-dev-20260904-d8803ee",
3
+ "version": "3.2.2-dev-20260920-6ef7b6e",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "matterbridge-zigbee2mqtt",
9
- "version": "3.2.2-dev-20260904-d8803ee",
9
+ "version": "3.2.2-dev-20260920-6ef7b6e",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
- "moment": "2.30.1",
13
- "mqtt": "5.15.2",
14
- "node-ansi-logger": "3.3.0",
15
- "node-persist-manager": "2.1.0"
12
+ "moment": "2.31.0",
13
+ "mqtt": "5.16.0",
14
+ "node-ansi-logger": "3.3.1",
15
+ "node-persist-manager": "2.1.1"
16
16
  },
17
17
  "engines": {
18
18
  "node": ">=20.19.0 <21.0.0 || >=22.13.0 <23.0.0 || >=24.0.0 <25.0.0 || >=26.0.0 <27.0.0"
@@ -32,12 +32,12 @@
32
32
  }
33
33
  },
34
34
  "node_modules/@types/node": {
35
- "version": "26.4.1",
36
- "resolved": "https://registry.npmjs.org/@types/node/-/node-26.4.1.tgz",
37
- "integrity": "sha512-k97ENvZWtvA6yqz5/FS6a7duDgOPEeOQOc2iKS/nY6mX6qJUKtLnWzQS+Xj6tXweyj6ZcTAK2Qecetnvi9nCLA==",
35
+ "version": "26.6.2",
36
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.2.tgz",
37
+ "integrity": "sha512-X1P21scMv4zGKLYqjdGjaKa7COa0RKVYYZZN/NfvLQ1JegxFhdhpZG/Lyn8AXx6CDUavKAd11v6BvfpkDByK8g==",
38
38
  "license": "MIT",
39
39
  "dependencies": {
40
- "undici-types": "~8.3.0"
40
+ "undici-types": "~8.9.0"
41
41
  }
42
42
  },
43
43
  "node_modules/@types/readable-stream": {
@@ -260,24 +260,14 @@
260
260
  "license": "ISC"
261
261
  },
262
262
  "node_modules/ip-address": {
263
- "version": "10.7.0",
264
- "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.0.tgz",
265
- "integrity": "sha512-BGFsyJd5mpXp3rK6jIdADLNgpJUK1jnjzvYF8lK+VyDab9JAmqN0YOKDdP17HlgKb2+ehPgDc8EtnRLbGCAMhA==",
263
+ "version": "10.7.2",
264
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.2.tgz",
265
+ "integrity": "sha512-7H/2gFSIitxc0hG3nOI1glS8QLo/EHBFFLk8vEUjXY/xu0AdL8jZ9U1IzO2PUm0d2D/ofQcAifb0g6OBkt8U7w==",
266
266
  "license": "MIT",
267
267
  "engines": {
268
268
  "node": ">= 12"
269
269
  }
270
270
  },
271
- "node_modules/js-sdsl": {
272
- "version": "4.3.0",
273
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz",
274
- "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==",
275
- "license": "MIT",
276
- "funding": {
277
- "type": "opencollective",
278
- "url": "https://opencollective.com/js-sdsl"
279
- }
280
- },
281
271
  "node_modules/lru-cache": {
282
272
  "version": "10.4.3",
283
273
  "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
@@ -294,18 +284,18 @@
294
284
  }
295
285
  },
296
286
  "node_modules/moment": {
297
- "version": "2.30.1",
298
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
299
- "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
287
+ "version": "2.31.0",
288
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.31.0.tgz",
289
+ "integrity": "sha512-0acOTfMiWOheYS4eoWb80yYMb/JLvVv9SHbs2PehaDzfUG0Bw855SKyk0IKTnPGa5+U2bmi3W68l1+sGLX/pvw==",
300
290
  "license": "MIT",
301
291
  "engines": {
302
292
  "node": "*"
303
293
  }
304
294
  },
305
295
  "node_modules/mqtt": {
306
- "version": "5.15.2",
307
- "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-5.15.2.tgz",
308
- "integrity": "sha512-VWZU2CSUY3U3oN0PSBRDE5SNsFi4zqqNeQ/uv3pZWqY3CrBXD/dhd0ZLjlsk5YnebGlrapi4lRVNJPUNQ5aZ3w==",
296
+ "version": "5.16.0",
297
+ "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-5.16.0.tgz",
298
+ "integrity": "sha512-G0VsEtuJz5sJUgZJaaADMVfW7SIFPzkIuHR+d6rk+tBeSwdCfd9BaIRycRfd2AbyFDEmLlFM+SDQeti/+IbOnw==",
309
299
  "license": "MIT",
310
300
  "dependencies": {
311
301
  "@types/readable-stream": "^4.0.21",
@@ -317,7 +307,6 @@
317
307
  "lru-cache": "^10.4.3",
318
308
  "minimist": "^1.2.8",
319
309
  "mqtt-packet": "^9.0.2",
320
- "number-allocator": "^1.0.14",
321
310
  "readable-stream": "^4.7.0",
322
311
  "rfdc": "^1.4.1",
323
312
  "socks": "^2.8.6",
@@ -352,9 +341,9 @@
352
341
  "license": "MIT"
353
342
  },
354
343
  "node_modules/node-ansi-logger": {
355
- "version": "3.3.0",
356
- "resolved": "https://registry.npmjs.org/node-ansi-logger/-/node-ansi-logger-3.3.0.tgz",
357
- "integrity": "sha512-ZW77lbZkA8h3r2HA2rcE5RjTIcwRDNB072RkZVyimGQpmEorJT8ajZ7UDhkHGoh0JRrCJL0iUKBE8q4oU8MHMg==",
344
+ "version": "3.3.1",
345
+ "resolved": "https://registry.npmjs.org/node-ansi-logger/-/node-ansi-logger-3.3.1.tgz",
346
+ "integrity": "sha512-JjkQHtVKgyd5Ua4AkYCFsZZiUYMrPsj/S9k2VY8/FjYuFJFRjDawsuxMwaThhWu4oU7zwuqvDG2uoDnjUyApVw==",
358
347
  "hasShrinkwrap": true,
359
348
  "license": "Apache-2.0",
360
349
  "engines": {
@@ -366,9 +355,9 @@
366
355
  }
367
356
  },
368
357
  "node_modules/node-persist-manager": {
369
- "version": "2.1.0",
370
- "resolved": "https://registry.npmjs.org/node-persist-manager/-/node-persist-manager-2.1.0.tgz",
371
- "integrity": "sha512-LJze/Fcd8LijM4OMPnp0AQ+Z1e9mFMkjOEDw08xHA2HSRd2+N5s0uyH5ogYmXPC68f0sc4GrdKMpAcsHuO3PKA==",
358
+ "version": "2.1.1",
359
+ "resolved": "https://registry.npmjs.org/node-persist-manager/-/node-persist-manager-2.1.1.tgz",
360
+ "integrity": "sha512-cAqF2spTnzDSAQeORHy/OYdD1VROGZ6UiLjmq/gVxQ4EglB0Ro0QX83U+xHEh2G6b7HTvGFqjS/R9LTOGkcayw==",
372
361
  "hasShrinkwrap": true,
373
362
  "license": "Apache-2.0",
374
363
  "dependencies": {
@@ -421,16 +410,6 @@
421
410
  "url": "https://github.com/sponsors/sindresorhus"
422
411
  }
423
412
  },
424
- "node_modules/number-allocator": {
425
- "version": "1.0.14",
426
- "resolved": "https://registry.npmjs.org/number-allocator/-/number-allocator-1.0.14.tgz",
427
- "integrity": "sha512-OrL44UTVAvkKdOdRQZIJpLkAdjXGTRda052sN4sO77bKEzYYqWKMBjQvrJFzqygI99gL6Z4u2xctPW1tB8ErvA==",
428
- "license": "MIT",
429
- "dependencies": {
430
- "debug": "^4.3.1",
431
- "js-sdsl": "4.3.0"
432
- }
433
- },
434
413
  "node_modules/process": {
435
414
  "version": "0.11.10",
436
415
  "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
@@ -543,9 +522,9 @@
543
522
  "license": "MIT"
544
523
  },
545
524
  "node_modules/undici-types": {
546
- "version": "8.3.0",
547
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz",
548
- "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==",
525
+ "version": "8.9.0",
526
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.9.0.tgz",
527
+ "integrity": "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==",
549
528
  "license": "MIT"
550
529
  },
551
530
  "node_modules/util-deprecate": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "matterbridge-zigbee2mqtt",
3
- "version": "3.2.2-dev-20260904-d8803ee",
3
+ "version": "3.2.2-dev-20260920-6ef7b6e",
4
4
  "description": "Matterbridge zigbee2mqtt plugin",
5
5
  "author": "https://github.com/Luligu",
6
6
  "license": "Apache-2.0",
@@ -66,9 +66,9 @@
66
66
  "*.schema.json"
67
67
  ],
68
68
  "dependencies": {
69
- "moment": "2.30.1",
70
- "mqtt": "5.15.2",
71
- "node-ansi-logger": "3.3.0",
72
- "node-persist-manager": "2.1.0"
69
+ "moment": "2.31.0",
70
+ "mqtt": "5.16.0",
71
+ "node-ansi-logger": "3.3.1",
72
+ "node-persist-manager": "2.1.1"
73
73
  }
74
74
  }