matterbridge 3.3.1-dev-20251011-c8b30f8 → 3.3.1-dev-20251012-b3546f8

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/dist/cli.js CHANGED
@@ -57,7 +57,6 @@ async function startCpuMemoryCheck() {
57
57
  log.debug(`Cpu memory check started`);
58
58
  prevCpus = os.cpus();
59
59
  prevProcessCpu = process.cpuUsage();
60
- clearInterval(memoryCheckInterval);
61
60
  const interval = () => {
62
61
  const systemUptime = formatOsUpTime(Math.floor(os.uptime()));
63
62
  const processUptime = formatOsUpTime(Math.floor(process.uptime()));
@@ -148,6 +147,10 @@ async function startCpuMemoryCheck() {
148
147
  entry.peakHeapUsed = peakHeapUsed;
149
148
  entry.heapTotal = memoryUsageRaw.heapTotal;
150
149
  entry.peakHeapTotal = peakHeapTotal;
150
+ entry.external = memoryUsageRaw.external;
151
+ entry.peakExternal = peakExternal;
152
+ entry.arrayBuffers = memoryUsageRaw.arrayBuffers;
153
+ entry.peakArrayBuffers = peakArrayBuffers;
151
154
  setHistoryIndex((historyIndex + 1) % historySize);
152
155
  if (trace)
153
156
  log.debug(`***${YELLOW}${BRIGHT}Host cpu:${db} ` +
@@ -2,7 +2,7 @@ if (process.argv.includes('--loader') || process.argv.includes('-loader'))
2
2
  console.log('\u001B[32mCli history loaded.\u001B[40;0m');
3
3
  import { writeFileSync } from 'node:fs';
4
4
  import path from 'node:path';
5
- export const historySize = 2160;
5
+ export const historySize = 4320;
6
6
  export let historyIndex = 0;
7
7
  export function setHistoryIndex(index) {
8
8
  if (!Number.isFinite(index) || !Number.isSafeInteger(index)) {
@@ -54,9 +54,10 @@ export function generateHistoryPage(options = {}) {
54
54
  const peakRss = Math.max(...normalizedHistory.map((entry) => entry.peakRss ?? entry.rss));
55
55
  const peakHeapUsed = Math.max(...normalizedHistory.map((entry) => entry.peakHeapUsed ?? entry.heapUsed));
56
56
  const peakHeapTotal = Math.max(...normalizedHistory.map((entry) => entry.peakHeapTotal ?? entry.heapTotal));
57
+ const peakExternal = Math.max(...normalizedHistory.map((entry) => entry.peakExternal ?? entry.external));
58
+ const peakArrayBuffers = Math.max(...normalizedHistory.map((entry) => entry.peakArrayBuffers ?? entry.arrayBuffers));
57
59
  const firstTimestamp = normalizedHistory[0]?.timestamp ?? Date.now();
58
60
  const lastTimestamp = normalizedHistory[normalizedHistory.length - 1]?.timestamp ?? Date.now();
59
- const historySanitised = JSON.stringify(normalizedHistory).replace(/</g, '\\u003c').replace(/>/g, '\\u003e');
60
61
  const summary = {
61
62
  entries: normalizedHistory.length,
62
63
  timeRange: `${new Date(firstTimestamp).toLocaleString()} → ${new Date(lastTimestamp).toLocaleString()}`,
@@ -65,8 +66,9 @@ export function generateHistoryPage(options = {}) {
65
66
  peakRss,
66
67
  peakHeapUsed,
67
68
  peakHeapTotal,
69
+ peakExternal,
70
+ peakArrayBuffers,
68
71
  };
69
- const summarySanitised = JSON.stringify(summary).replace(/</g, '\\u003c').replace(/>/g, '\\u003e');
70
72
  const html = `<!DOCTYPE html>
71
73
  <html lang="en">
72
74
  <head>
@@ -275,8 +277,8 @@ export function generateHistoryPage(options = {}) {
275
277
  </div>
276
278
 
277
279
  <script type="module">
278
- const HISTORY_DATA = ${historySanitised};
279
- const SUMMARY_DATA = ${summarySanitised};
280
+ const HISTORY_DATA = ${JSON.stringify(normalizedHistory)};
281
+ const SUMMARY_DATA = ${JSON.stringify(summary)};
280
282
  let cleanup = () => {};
281
283
 
282
284
  const summaryContainer = document.getElementById('summary');
@@ -287,7 +289,9 @@ export function generateHistoryPage(options = {}) {
287
289
  { label: 'Process CPU Peak', value: SUMMARY_DATA.peakProcessCpu.toFixed(2) + ' %' },
288
290
  { label: 'RSS Peak', value: formatBytes(SUMMARY_DATA.peakRss) },
289
291
  { label: 'Heap Used Peak', value: formatBytes(SUMMARY_DATA.peakHeapUsed) },
290
- { label: 'Heap Total Peak', value: formatBytes(SUMMARY_DATA.peakHeapTotal) }
292
+ { label: 'Heap Total Peak', value: formatBytes(SUMMARY_DATA.peakHeapTotal) },
293
+ { label: 'External Peak', value: formatBytes(SUMMARY_DATA.peakExternal) },
294
+ { label: 'Array Buffers Peak', value: formatBytes(SUMMARY_DATA.peakArrayBuffers) }
291
295
  ];
292
296
 
293
297
  summaryEntries.forEach(function (itemData) {
@@ -330,7 +334,7 @@ export function generateHistoryPage(options = {}) {
330
334
  const cpuPeakValue = HISTORY_DATA.reduce(function (acc, entry) {
331
335
  return Math.max(acc, Number.isFinite(entry.peakCpu) ? entry.peakCpu : 0, Number.isFinite(entry.cpu) ? entry.cpu : 0);
332
336
  }, 0);
333
- const cpuPadding = cpuPeakValue <= 10 ? 2 : cpuPeakValue * 0.1;
337
+ const cpuMaxYAxis = cpuPeakValue > 0 ? cpuPeakValue * 1.05 : undefined;
334
338
 
335
339
  const processCpuPeakValue = HISTORY_DATA.reduce(function (acc, entry) {
336
340
  return Math.max(
@@ -339,7 +343,33 @@ export function generateHistoryPage(options = {}) {
339
343
  Number.isFinite(entry.processCpu) ? entry.processCpu : 0
340
344
  );
341
345
  }, 0);
342
- const processCpuPadding = processCpuPeakValue <= 10 ? 2 : processCpuPeakValue * 0.1;
346
+ const processCpuMaxYAxis = processCpuPeakValue > 0 ? processCpuPeakValue * 1.05 : undefined;
347
+ const useProcessCpuDecimals = (processCpuMaxYAxis ?? 0) <= 3;
348
+
349
+ // Compute memory chart dynamic minimum Y as (min observed MB) - 10%
350
+ const memoryMinMb = HISTORY_DATA.reduce(function (acc, entry) {
351
+ const values = [entry.rss, entry.heapTotal, entry.heapUsed].map(bytesToMb);
352
+ const finiteValues = values.filter(function (v) { return Number.isFinite(v); });
353
+ const minEntry = finiteValues.length ? Math.min.apply(Math, finiteValues) : acc;
354
+ return Math.min(acc, minEntry);
355
+ }, Number.POSITIVE_INFINITY);
356
+ const memoryMinYAxis = Number.isFinite(memoryMinMb) && memoryMinMb > 0 ? Math.max(0, memoryMinMb - memoryMinMb * 0.1) : 0;
357
+
358
+ // Compute memory chart dynamic maximum Y as (max observed MB including peaks) + 5%
359
+ const memoryMaxMb = HISTORY_DATA.reduce(function (acc, entry) {
360
+ const values = [
361
+ entry.rss,
362
+ entry.heapTotal,
363
+ entry.heapUsed,
364
+ entry.peakRss,
365
+ entry.peakHeapTotal,
366
+ entry.peakHeapUsed
367
+ ].map(bytesToMb);
368
+ const finiteValues = values.filter(function (v) { return Number.isFinite(v); });
369
+ const maxEntry = finiteValues.length ? Math.max.apply(Math, finiteValues) : acc;
370
+ return Math.max(acc, maxEntry);
371
+ }, 0);
372
+ const memoryMaxYAxis = Number.isFinite(memoryMaxMb) && memoryMaxMb > 0 ? memoryMaxMb * 1.05 : undefined;
343
373
 
344
374
  renderCharts();
345
375
 
@@ -368,7 +398,7 @@ export function generateHistoryPage(options = {}) {
368
398
  }
369
399
  ],
370
400
  minY: 0,
371
- maxY: cpuPeakValue + cpuPadding,
401
+ maxY: cpuMaxYAxis,
372
402
  yFormatter: function (value) {
373
403
  return value.toFixed(0) + ' %';
374
404
  }
@@ -401,9 +431,9 @@ export function generateHistoryPage(options = {}) {
401
431
  }
402
432
  ],
403
433
  minY: 0,
404
- maxY: processCpuPeakValue + processCpuPadding,
434
+ maxY: processCpuMaxYAxis,
405
435
  yFormatter: function (value) {
406
- return value.toFixed(0) + ' %';
436
+ return value.toFixed(useProcessCpuDecimals ? 1 : 0) + ' %';
407
437
  }
408
438
  });
409
439
 
@@ -427,7 +457,8 @@ export function generateHistoryPage(options = {}) {
427
457
  color: '#f472b6'
428
458
  }
429
459
  ],
430
- minY: 0,
460
+ minY: memoryMinYAxis,
461
+ maxY: memoryMaxYAxis,
431
462
  yFormatter: function (value) {
432
463
  return value.toFixed(0) + ' MB';
433
464
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "matterbridge",
3
- "version": "3.3.1-dev-20251011-c8b30f8",
3
+ "version": "3.3.1-dev-20251012-b3546f8",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "matterbridge",
9
- "version": "3.3.1-dev-20251011-c8b30f8",
9
+ "version": "3.3.1-dev-20251012-b3546f8",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
12
  "@matter/main": "0.15.5",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "matterbridge",
3
- "version": "3.3.1-dev-20251011-c8b30f8",
3
+ "version": "3.3.1-dev-20251012-b3546f8",
4
4
  "description": "Matterbridge plugin manager for Matter",
5
5
  "author": "https://github.com/Luligu",
6
6
  "license": "Apache-2.0",