matterbridge 3.3.1-dev-20251012-b3546f8 → 3.3.2-dev-20251012-0a89052

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
@@ -23,7 +23,27 @@ Advantages:
23
23
  - isolation between threads;
24
24
  - individual plugin isolation in childbridge mode;
25
25
 
26
- ## [3.3.1] - Not released
26
+ ## [3.3.3] - Not released
27
+
28
+ ### Changed
29
+
30
+ - [package]: Updated dependencies.
31
+
32
+ <a href="https://www.buymeacoffee.com/luligugithub">
33
+ <img src="bmc-button.svg" alt="Buy me a coffee" width="80">
34
+ </a>
35
+
36
+ ## [3.3.2] - 2025-10-13
37
+
38
+ ### Fixed
39
+
40
+ - [frontend]: Fixed update to latest.
41
+
42
+ <a href="https://www.buymeacoffee.com/luligugithub">
43
+ <img src="bmc-button.svg" alt="Buy me a coffee" width="80">
44
+ </a>
45
+
46
+ ## [3.3.1] - 2025-10-12
27
47
 
28
48
  ### Breaking Changes
29
49
 
@@ -41,8 +61,8 @@ Advantages:
41
61
  - [cli]: Added cpu and memory peaks history to cli.
42
62
  - [cli]: Added host cpu and process cpu to cli.
43
63
  - [frontend]: Added process cpu to SystemInformation.
44
- - [frontend]: Added under 'View' menu the item 'Matterbridge diagnostic log'. It shows the complete matter server nodes.
45
- - [frontend]: Added under 'View' menu the item 'Matterbridge system history'. It shows the graph page of the last 6h of host cpu, process cpu and memory usage (rss, heap used, heap total with peaks).
64
+ - [frontend]: Added under 'View' menu the item 'Matterbridge diagnostic log'. It shows the complete matter server nodes. The page is static and data are embedded so it can be sent for debug.
65
+ - [frontend]: Added under 'View' menu the item 'Matterbridge system history'. It shows the graph page of the last 12h of host cpu, process cpu and memory usage (rss, heap used, heap total with peaks). The page is static and data are embedded so it can be sent for debug.
46
66
 
47
67
  ### Changed
48
68
 
@@ -84,11 +104,15 @@ This change, necessary to achieve plugin isolation, will require all plugins to
84
104
  - require matterbridge 3.3.0:
85
105
 
86
106
  ```typescript
87
- if (this.verifyMatterbridgeVersion === undefined || typeof this.verifyMatterbridgeVersion !== 'function' || !this.verifyMatterbridgeVersion('3.3.0')) {
88
- throw new Error(
89
- `This plugin requires Matterbridge version >= "3.3.0". Please update Matterbridge from ${this.matterbridge.matterbridgeVersion} to the latest version."`,
90
- );
91
- }
107
+ if (
108
+ this.verifyMatterbridgeVersion === undefined ||
109
+ typeof this.verifyMatterbridgeVersion !== "function" ||
110
+ !this.verifyMatterbridgeVersion("3.3.0")
111
+ ) {
112
+ throw new Error(
113
+ `This plugin requires Matterbridge version >= "3.3.0". Please update Matterbridge from ${this.matterbridge.matterbridgeVersion} to the latest version."`
114
+ );
115
+ }
92
116
  ```
93
117
 
94
118
  - check that you are not using any matterbridge calls directly (this should not be the case).
@@ -108,8 +132,8 @@ export type PlatformMatterbridge = {
108
132
  readonly matterbridgeVersion: string;
109
133
  readonly matterbridgeLatestVersion: string;
110
134
  readonly matterbridgeDevVersion: string;
111
- readonly bridgeMode: 'bridge' | 'childbridge' | 'controller' | '';
112
- readonly restartMode: 'service' | 'docker' | '';
135
+ readonly bridgeMode: "bridge" | "childbridge" | "controller" | "";
136
+ readonly restartMode: "service" | "docker" | "";
113
137
  readonly aggregatorVendorId: VendorId;
114
138
  readonly aggregatorVendorName: string;
115
139
  readonly aggregatorProductId: number;
package/dist/cli.js CHANGED
@@ -258,6 +258,7 @@ async function takeHeapSnapshot() {
258
258
  log.error('No active inspector session.');
259
259
  return;
260
260
  }
261
+ triggerGarbageCollection();
261
262
  log.debug(`Taking heap snapshot...`);
262
263
  const chunks = [];
263
264
  const chunksListener = (notification) => {
@@ -269,21 +270,29 @@ async function takeHeapSnapshot() {
269
270
  if (!err) {
270
271
  session?.off('HeapProfiler.addHeapSnapshotChunk', chunksListener);
271
272
  writeFileSync(filename, Buffer.concat(chunks));
273
+ chunks.length = 0;
272
274
  log.debug(`***Heap sampling snapshot saved to ${CYAN}${filename}${db}`);
273
275
  triggerGarbageCollection();
274
276
  resolve();
275
277
  }
276
278
  else {
277
279
  session?.off('HeapProfiler.addHeapSnapshotChunk', chunksListener);
280
+ chunks.length = 0;
278
281
  log.error(`***Failed to take heap snapshot: ${err instanceof Error ? err.message : err}`);
282
+ triggerGarbageCollection();
279
283
  resolve();
280
284
  }
281
285
  });
282
286
  });
283
287
  }
284
288
  function triggerGarbageCollection() {
285
- if (typeof global.gc === 'function') {
286
- global.gc();
289
+ if (global.gc && typeof global.gc === 'function') {
290
+ try {
291
+ global.gc({ type: 'major', execution: 'sync' });
292
+ }
293
+ catch {
294
+ global.gc();
295
+ }
287
296
  log.debug('Manual garbage collection triggered via global.gc().');
288
297
  }
289
298
  else {
@@ -371,9 +371,9 @@ export function generateHistoryPage(options = {}) {
371
371
  }, 0);
372
372
  const memoryMaxYAxis = Number.isFinite(memoryMaxMb) && memoryMaxMb > 0 ? memoryMaxMb * 1.05 : undefined;
373
373
 
374
- renderCharts();
374
+ renderCharts();
375
375
 
376
- function renderCharts() {
376
+ function renderCharts() {
377
377
  cleanup();
378
378
 
379
379
  function draw() {
package/dist/frontend.js CHANGED
@@ -1049,7 +1049,7 @@ export class Frontend extends EventEmitter {
1049
1049
  }
1050
1050
  }
1051
1051
  else if (data.method === '/api/install') {
1052
- if (isValidString(data.params.packageName, 14) && isValidBoolean(data.params.restart)) {
1052
+ if (isValidString(data.params.packageName, 12) && isValidBoolean(data.params.restart)) {
1053
1053
  this.wssSendSnackbarMessage(`Installing package ${data.params.packageName}...`, 0);
1054
1054
  this.server.request({ type: 'plugins_install', src: this.server.name, dst: 'plugins', params: { packageName: data.params.packageName } });
1055
1055
  sendResponse({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, success: true });
@@ -1059,7 +1059,7 @@ export class Frontend extends EventEmitter {
1059
1059
  }
1060
1060
  }
1061
1061
  else if (data.method === '/api/uninstall') {
1062
- if (isValidString(data.params.packageName, 14)) {
1062
+ if (isValidString(data.params.packageName, 12)) {
1063
1063
  this.wssSendSnackbarMessage(`Uninstalling package ${data.params.packageName}...`, 0);
1064
1064
  this.server.request({ type: 'plugins_uninstall', src: this.server.name, dst: 'plugins', params: { packageName: data.params.packageName } });
1065
1065
  sendResponse({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, success: true });
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "matterbridge",
3
- "version": "3.3.1-dev-20251012-b3546f8",
3
+ "version": "3.3.2-dev-20251012-0a89052",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "matterbridge",
9
- "version": "3.3.1-dev-20251012-b3546f8",
9
+ "version": "3.3.2-dev-20251012-0a89052",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
12
  "@matter/main": "0.15.5",
@@ -367,10 +367,18 @@
367
367
  "license": "MIT"
368
368
  },
369
369
  "node_modules/bare-events": {
370
- "version": "2.7.0",
371
- "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.7.0.tgz",
372
- "integrity": "sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==",
373
- "license": "Apache-2.0"
370
+ "version": "2.8.0",
371
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.0.tgz",
372
+ "integrity": "sha512-AOhh6Bg5QmFIXdViHbMc2tLDsBIRxdkIaIddPslJF9Z5De3APBScuqGP2uThXnIpqFrgoxMNC6km7uXNIMLHXA==",
373
+ "license": "Apache-2.0",
374
+ "peerDependencies": {
375
+ "bare-abort-controller": "*"
376
+ },
377
+ "peerDependenciesMeta": {
378
+ "bare-abort-controller": {
379
+ "optional": true
380
+ }
381
+ }
374
382
  },
375
383
  "node_modules/base64-js": {
376
384
  "version": "1.5.1",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "matterbridge",
3
- "version": "3.3.1-dev-20251012-b3546f8",
3
+ "version": "3.3.2-dev-20251012-0a89052",
4
4
  "description": "Matterbridge plugin manager for Matter",
5
5
  "author": "https://github.com/Luligu",
6
6
  "license": "Apache-2.0",