@matter-server/ws-controller 0.6.3 → 0.6.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"BorderRouterDiscovery.d.ts","sourceRoot":"","sources":["../../../src/controller/BorderRouterDiscovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,aAAa,EAAE,WAAW,EAA+B,MAAM,cAAc,CAAC;AAiB9G,UAAU,eAAe;IACrB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,mBAAoB,SAAQ,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;IAC7D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;CACvC;AAED,UAAU,aAAa;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,EAAE,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;CACrC;AAED,UAAU,qBAAqB;IAC3B,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC;IACrD,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC;CAC3D;AAED,UAAU,wBAAwB;IAC9B,EAAE,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACvC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC3C;AAED,UAAU,aAAa;IACnB,OAAO,CAAC,YAAY,EAAE;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,WAAW,EAAE,aAAa,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;CACtF;AAED,UAAU,cAAc;IACpB,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;CACtD;AAED,KAAK,kBAAkB,GAAG,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;AACxD,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;CAAE,KAAK,IAAI,CAAC;AAmBzG;;;;;GAKG;AACH,qBAAa,qBAAqB;;IAe9B,YAAY,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,cAAc,EAGnD;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAsC3B;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA8B1B;IAED,IAAI,IAAI,iBAAiB,EAAE,CAE1B;IAED,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAGxD;CA+YJ"}
1
+ {"version":3,"file":"BorderRouterDiscovery.d.ts","sourceRoot":"","sources":["../../../src/controller/BorderRouterDiscovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,aAAa,EAAE,WAAW,EAA+B,MAAM,cAAc,CAAC;AAuB9G,UAAU,eAAe;IACrB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,mBAAoB,SAAQ,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;IAC7D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;CACvC;AAED,UAAU,aAAa;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,EAAE,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;CACrC;AAED,UAAU,qBAAqB;IAC3B,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC;IACrD,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC;CAC3D;AAED,UAAU,wBAAwB;IAC9B,EAAE,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACvC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC3C;AAED,UAAU,aAAa;IACnB,OAAO,CAAC,YAAY,EAAE;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,WAAW,EAAE,aAAa,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;CACtF;AAED,UAAU,cAAc;IACpB,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;CACtD;AAED,KAAK,kBAAkB,GAAG,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;AACxD,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;CAAE,KAAK,IAAI,CAAC;AAmBzG;;;;;GAKG;AACH,qBAAa,qBAAqB;;IAe9B,YAAY,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,cAAc,EAGnD;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAsC3B;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA8B1B;IAED,IAAI,IAAI,iBAAiB,EAAE,CAG1B;IAED,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAIxD;CAkYJ"}
@@ -8,6 +8,7 @@ import { MdnsService } from "@matter/main/protocol";
8
8
  const logger = Logger.get("BorderRouterDiscovery");
9
9
  const REGISTRY_MAX_ENTRIES = 256;
10
10
  const INSTANCE_OBSERVER_CAP = 512;
11
+ const STALE_RETENTION_MS = 24 * 60 * 60 * 1e3;
11
12
  const MESHCOP_TYPE_QNAME = "_meshcop._udp.local";
12
13
  const TREL_TYPE_QNAME = "_trel._udp.local";
13
14
  const MESHCOP_SUFFIX = "._meshcop._udp.local";
@@ -92,12 +93,22 @@ class BorderRouterDiscovery {
92
93
  this.#names = void 0;
93
94
  }
94
95
  list() {
96
+ this.#pruneExpired();
95
97
  return Array.from(this.#registry.values(), (entry) => this.#snapshotEntry(entry));
96
98
  }
97
99
  get(extAddressHex) {
100
+ this.#pruneExpired();
98
101
  const entry = this.#registry.get(extAddressHex.toUpperCase());
99
102
  return entry === void 0 ? void 0 : this.#snapshotEntry(entry);
100
103
  }
104
+ #pruneExpired() {
105
+ const cutoff = Date.now() - STALE_RETENTION_MS;
106
+ for (const [xaKey, entry] of this.#registry) {
107
+ if (entry.sources.length === 0 && entry.lastSeen < cutoff) {
108
+ this.#registry.delete(xaKey);
109
+ }
110
+ }
111
+ }
101
112
  /** Shallow copy so callers cannot mutate registry state through the returned reference. */
102
113
  #snapshotEntry(entry) {
103
114
  return {
@@ -108,6 +119,7 @@ class BorderRouterDiscovery {
108
119
  }
109
120
  #onDiscovered(name) {
110
121
  if (!this.#started) return;
122
+ this.#pruneExpired();
111
123
  const lower = name.qname.toLowerCase();
112
124
  if (lower === MESHCOP_TYPE_QNAME || lower === TREL_TYPE_QNAME) {
113
125
  return;
@@ -162,12 +174,12 @@ class BorderRouterDiscovery {
162
174
  }
163
175
  #onInstanceChanged(name, source) {
164
176
  if (!this.#started) return;
165
- try {
166
- this.#parseAndUpsert(name, source);
167
- } catch (e) {
168
- logger.debug("Error processing border router instance change:", e);
169
- }
170
177
  if (name.isDiscovered) {
178
+ try {
179
+ this.#parseAndUpsert(name, source);
180
+ } catch (e) {
181
+ logger.debug("Error processing border router instance change:", e);
182
+ }
171
183
  return;
172
184
  }
173
185
  const key = name.qname.toLowerCase();
@@ -192,30 +204,6 @@ class BorderRouterDiscovery {
192
204
  if (idx !== -1) {
193
205
  entry.sources.splice(idx, 1);
194
206
  }
195
- if (source === "meshcop") {
196
- entry.meshcopPort = void 0;
197
- entry.networkName = void 0;
198
- entry.vendorName = void 0;
199
- entry.modelName = void 0;
200
- entry.threadVersion = void 0;
201
- entry.borderAgentIdHex = void 0;
202
- entry.stateBitmapHex = void 0;
203
- entry.activeTimestampHex = void 0;
204
- entry.partitionIdHex = void 0;
205
- entry.domainName = void 0;
206
- } else {
207
- entry.trelPort = void 0;
208
- }
209
- if (entry.sources.length === 0) {
210
- this.#registry.delete(xaKey);
211
- return;
212
- }
213
- for (const otherTracking of this.#instanceObservers.values()) {
214
- if (otherTracking.xaKey === xaKey && otherTracking.source !== source) {
215
- this.#parseAndUpsert(otherTracking.name, otherTracking.source);
216
- break;
217
- }
218
- }
219
207
  }
220
208
  #onTargetChanged(target) {
221
209
  if (!this.#started) return;
@@ -405,19 +393,27 @@ class BorderRouterDiscovery {
405
393
  }
406
394
  }
407
395
  #evictOldest() {
408
- let oldestKey;
409
- let oldestSeen = Number.POSITIVE_INFINITY;
396
+ let oldestStaleKey;
397
+ let oldestStaleSeen = Number.POSITIVE_INFINITY;
398
+ let oldestLiveKey;
399
+ let oldestLiveSeen = Number.POSITIVE_INFINITY;
410
400
  for (const [xa, entry] of this.#registry) {
411
- if (entry.lastSeen < oldestSeen) {
412
- oldestSeen = entry.lastSeen;
413
- oldestKey = xa;
401
+ if (entry.sources.length === 0) {
402
+ if (entry.lastSeen < oldestStaleSeen) {
403
+ oldestStaleSeen = entry.lastSeen;
404
+ oldestStaleKey = xa;
405
+ }
406
+ } else if (entry.lastSeen < oldestLiveSeen) {
407
+ oldestLiveSeen = entry.lastSeen;
408
+ oldestLiveKey = xa;
414
409
  }
415
410
  }
416
- if (oldestKey === void 0) return false;
417
- this.#registry.delete(oldestKey);
411
+ const evictKey = oldestStaleKey ?? oldestLiveKey;
412
+ if (evictKey === void 0) return false;
413
+ this.#registry.delete(evictKey);
418
414
  let releasedObservers = 0;
419
415
  for (const [instanceKey, tracking] of [...this.#instanceObservers]) {
420
- if (tracking.xaKey !== oldestKey) continue;
416
+ if (tracking.xaKey !== evictKey) continue;
421
417
  tracking.name.off(tracking.observer);
422
418
  if (tracking.targetKey !== void 0) {
423
419
  this.#releaseTarget(tracking.targetKey);
@@ -431,7 +427,7 @@ class BorderRouterDiscovery {
431
427
  `Border router registry exceeded ${REGISTRY_MAX_ENTRIES} entries; evicting oldest (released ${releasedObservers} instance observer${releasedObservers === 1 ? "" : "s"})`
432
428
  );
433
429
  } else {
434
- logger.debug(`Evicted border router xa=${oldestKey}; released ${releasedObservers} instance observers`);
430
+ logger.debug(`Evicted border router xa=${evictKey}; released ${releasedObservers} instance observers`);
435
431
  }
436
432
  return true;
437
433
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/controller/BorderRouterDiscovery.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ControllerCommandHandler.d.ts","sourceRoot":"","sources":["../../../src/controller/ControllerCommandHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ControllerCommandHandler.d.ts","sourceRoot":"","sources":["../../../src/controller/ControllerCommandHandler.ts"],"names":[],"mappings":"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"}
@@ -274,12 +274,15 @@ class ControllerCommandHandler {
274
274
  }
275
275
  basicInfoChangedInBatch = false;
276
276
  this.events.nodeStructureChanged.emit(nodeId);
277
+ for (const endpointId of this.#nodes.drainPendingEndpointAdds(nodeId)) {
278
+ this.events.nodeEndpointAdded.emit(nodeId, endpointId);
279
+ }
277
280
  });
278
281
  node.events.decommissioned.on(() => {
279
282
  this.#cleanupNodeAfterRemoval(nodeId);
280
283
  this.events.nodeDecommissioned.emit(nodeId);
281
284
  });
282
- node.events.nodeEndpointAdded.on((endpointId) => this.events.nodeEndpointAdded.emit(nodeId, endpointId));
285
+ node.events.nodeEndpointAdded.on((endpointId) => this.#nodes.queueEndpointAdded(nodeId, endpointId));
283
286
  node.events.nodeEndpointRemoved.on((endpointId) => this.events.nodeEndpointRemoved.emit(nodeId, endpointId));
284
287
  this.#nodes.set(nodeId, node);
285
288
  this.#nodes.seedState(nodeId, node.connectionState);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/controller/ControllerCommandHandler.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { NodeId } from "@matter/main";
7
+ import { EndpointNumber } from "@matter/main/types";
7
8
  import { NodeStates, PairedNode } from "@project-chip/matter.js/device";
8
9
  import { AttributeDataCache } from "./AttributeDataCache.js";
9
10
  /**
@@ -42,6 +43,15 @@ export declare class Nodes {
42
43
  * Remove a node from storage and clear its attribute cache and state tracking.
43
44
  */
44
45
  delete(nodeId: NodeId): void;
46
+ /**
47
+ * Buffer an endpoint_added until the next nodeStructureChanged for that node.
48
+ */
49
+ queueEndpointAdded(nodeId: NodeId, endpointId: EndpointNumber): void;
50
+ /**
51
+ * Take ownership of buffered endpoint additions for a node and clear the queue.
52
+ * Returned array is in insertion order; an empty array is returned if nothing is queued.
53
+ */
54
+ drainPendingEndpointAdds(nodeId: NodeId): EndpointNumber[];
45
55
  /**
46
56
  * Initialize state tracking for a newly paired/discovered node.
47
57
  * Sets previous state and initial availability so the first stateChanged event
@@ -1 +1 @@
1
- {"version":3,"file":"Nodes.d.ts","sourceRoot":"","sources":["../../../src/controller/Nodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;GAQG;AACH,qBAAa,KAAK;;IAQd;;OAEG;IACH,IAAI,cAAc,IAAI,kBAAkB,CAEvC;IAED;;OAEG;IACH,MAAM,IAAI,MAAM,EAAE,CAEjB;IAED;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAM9B;IAED;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3B;IAED;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAE1C;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAK3B;IAED;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,GAAG,IAAI,CAGxD;IAED;;;;OAIG;IACH,kBAAkB,CACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,UAAU,GACrB;QAAE,mBAAmB,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,mBAAmB,EAAE,KAAK,CAAA;KAAE,CAYpF;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIxC;IAED;;;;;;;;;;OAUG;IACH,eAAe,CAAC,YAAY,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,UAAU,GAAG,OAAO,CAU7E;IAED;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnC;CACJ"}
1
+ {"version":3,"file":"Nodes.d.ts","sourceRoot":"","sources":["../../../src/controller/Nodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;GAQG;AACH,qBAAa,KAAK;;IAed;;OAEG;IACH,IAAI,cAAc,IAAI,kBAAkB,CAEvC;IAED;;OAEG;IACH,MAAM,IAAI,MAAM,EAAE,CAEjB;IAED;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAM9B;IAED;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3B;IAED;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAE1C;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAM3B;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI,CAOnE;IAED;;;OAGG;IACH,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAOzD;IAED;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,GAAG,IAAI,CAGxD;IAED;;;;OAIG;IACH,kBAAkB,CACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,UAAU,GACrB;QAAE,mBAAmB,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,mBAAmB,EAAE,KAAK,CAAA;KAAE,CAYpF;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIxC;IAED;;;;;;;;;;OAUG;IACH,eAAe,CAAC,YAAY,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,UAAU,GAAG,OAAO,CAU7E;IAED;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnC;CACJ"}
@@ -13,6 +13,13 @@ class Nodes {
13
13
  #previousStates = /* @__PURE__ */ new Map();
14
14
  /** Cached availability so serialization and event paths always agree */
15
15
  #lastAvailability = /* @__PURE__ */ new Map();
16
+ /**
17
+ * Endpoint additions queued until the next nodeStructureChanged for that node.
18
+ * Preserves the wire contract used by python-matter-server: endpoint_added must
19
+ * arrive AFTER a node_updated that already carries the new endpoint, so consumers
20
+ * (e.g., Home Assistant) can resolve node.endpoints[endpoint_id] in their callback.
21
+ */
22
+ #pendingEndpointAdds = /* @__PURE__ */ new Map();
16
23
  /**
17
24
  * Get the attribute cache instance.
18
25
  */
@@ -56,6 +63,30 @@ class Nodes {
56
63
  this.#attributeCache.delete(nodeId);
57
64
  this.#previousStates.delete(nodeId);
58
65
  this.#lastAvailability.delete(nodeId);
66
+ this.#pendingEndpointAdds.delete(nodeId);
67
+ }
68
+ /**
69
+ * Buffer an endpoint_added until the next nodeStructureChanged for that node.
70
+ */
71
+ queueEndpointAdded(nodeId, endpointId) {
72
+ let queue = this.#pendingEndpointAdds.get(nodeId);
73
+ if (queue === void 0) {
74
+ queue = [];
75
+ this.#pendingEndpointAdds.set(nodeId, queue);
76
+ }
77
+ queue.push(endpointId);
78
+ }
79
+ /**
80
+ * Take ownership of buffered endpoint additions for a node and clear the queue.
81
+ * Returned array is in insertion order; an empty array is returned if nothing is queued.
82
+ */
83
+ drainPendingEndpointAdds(nodeId) {
84
+ const queue = this.#pendingEndpointAdds.get(nodeId);
85
+ if (queue === void 0 || queue.length === 0) {
86
+ return [];
87
+ }
88
+ this.#pendingEndpointAdds.delete(nodeId);
89
+ return queue;
59
90
  }
60
91
  /**
61
92
  * Initialize state tracking for a newly paired/discovered node.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/controller/Nodes.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,kBAA8B;AACvC,SAAS,mBAAmB;AAC5B,SAAS,0BAA0B;AAW5B,MAAM,MAAM;AAAA,EACf,SAAS,oBAAI,IAAwB;AAAA,EACrC,kBAAkB,IAAI,mBAAmB;AAAA;AAAA,EAEzC,kBAAkB,oBAAI,IAAwB;AAAA;AAAA,EAE9C,oBAAoB,oBAAI,IAAqB;AAAA;AAAA;AAAA;AAAA,EAK7C,IAAI,iBAAqC;AACrC,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,SAAmB;AACf,WAAO,MAAM,KAAK,KAAK,OAAO,KAAK,CAAC;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,QAA4B;AAC5B,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,QAAI,SAAS,QAAW;AACpB,YAAM,YAAY,cAAc,MAAM;AAAA,IAC1C;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAyB;AACzB,WAAO,KAAK,OAAO,IAAI,MAAM;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAgB,MAAwB;AACxC,SAAK,OAAO,IAAI,QAAQ,IAAI;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,QAAsB;AACzB,SAAK,OAAO,OAAO,MAAM;AACzB,SAAK,gBAAgB,OAAO,MAAM;AAClC,SAAK,gBAAgB,OAAO,MAAM;AAClC,SAAK,kBAAkB,OAAO,MAAM;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,UAAU,QAAgB,cAAgC;AACtD,SAAK,gBAAgB,IAAI,QAAQ,YAAY;AAC7C,SAAK,kBAAkB,IAAI,QAAQ,iBAAiB,WAAW,SAAS;AAAA,EAC5E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,mBACI,QACA,UACkF;AAClF,UAAM,gBAAgB,KAAK,gBAAgB,IAAI,MAAM;AACrD,UAAM,eAAe,KAAK,kBAAkB,IAAI,MAAM,KAAK;AAC3D,UAAM,YAAY,KAAK,gBAAgB,UAAU,aAAa;AAE9D,SAAK,gBAAgB,IAAI,QAAQ,QAAQ;AACzC,SAAK,kBAAkB,IAAI,QAAQ,SAAS;AAE5C,QAAI,iBAAiB,WAAW;AAC5B,aAAO,EAAE,qBAAqB,MAAM,UAAU;AAAA,IAClD;AACA,WAAO,EAAE,qBAAqB,MAAM;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,iBAAiB,QAAyB;AACtC,UAAM,eAAe,KAAK,kBAAkB,IAAI,MAAM,KAAK;AAC3D,SAAK,kBAAkB,IAAI,QAAQ,KAAK;AACxC,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,gBAAgB,cAA0B,eAAqC;AAC3E,QAAI,iBAAiB,WAAW,WAAW;AACvC,aAAO;AAAA,IACX;AAEA,QAAI,iBAAiB,WAAW,gBAAgB,kBAAkB,WAAW,WAAW;AACpF,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,YAAY,QAAyB;AACjC,WAAO,KAAK,kBAAkB,IAAI,MAAM,KAAK;AAAA,EACjD;AACJ;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter-server/ws-controller",
3
- "version": "0.6.3",
3
+ "version": "0.6.4",
4
4
  "type": "module",
5
5
  "description": "matter.js based Matter controller library",
6
6
  "bugs": {
@@ -34,12 +34,12 @@
34
34
  "node": ">=20.19.0 <22.0.0 || >=22.13.0"
35
35
  },
36
36
  "optionalDependencies": {
37
- "@matter/nodejs-ble": "0.17.0-alpha.0-20260429-8fd498888"
37
+ "@matter/nodejs-ble": "0.17.0-alpha.0-20260430-11b356f65"
38
38
  },
39
39
  "dependencies": {
40
- "@matter/main": "0.17.0-alpha.0-20260429-8fd498888",
41
- "@matter-server/ws-client": "0.6.3",
42
- "@project-chip/matter.js": "0.17.0-alpha.0-20260429-8fd498888",
40
+ "@matter/main": "0.17.0-alpha.0-20260430-11b356f65",
41
+ "@matter-server/ws-client": "0.6.4",
42
+ "@project-chip/matter.js": "0.17.0-alpha.0-20260430-11b356f65",
43
43
  "ws": "^8.20.0"
44
44
  },
45
45
  "devDependencies": {
@@ -15,6 +15,12 @@ const REGISTRY_MAX_ENTRIES = 256;
15
15
  * yet emitted a valid xa, but bounded so a noisy LAN can't grow `#instanceObservers`
16
16
  * without limit. Eviction targets the oldest xa-less observer first. */
17
17
  const INSTANCE_OBSERVER_CAP = 512;
18
+ /** Stale entries (sources.length === 0) become eligible for pruning 24h after their
19
+ * last successful mDNS discovery (entry.lastSeen). Pruning is lazy — `#pruneExpired`
20
+ * runs on `list` / `get` / `#onDiscovered`, so without activity an eligible entry
21
+ * may linger past the window. Long enough that BRs announcing once per ~half-day
22
+ * stay resolvable; short enough that vanished BRs eventually drop. */
23
+ const STALE_RETENTION_MS = 24 * 60 * 60 * 1000;
18
24
  const MESHCOP_TYPE_QNAME = "_meshcop._udp.local";
19
25
  const TREL_TYPE_QNAME = "_trel._udp.local";
20
26
  const MESHCOP_SUFFIX = "._meshcop._udp.local";
@@ -182,14 +188,25 @@ export class BorderRouterDiscovery {
182
188
  }
183
189
 
184
190
  list(): BorderRouterEntry[] {
191
+ this.#pruneExpired();
185
192
  return Array.from(this.#registry.values(), entry => this.#snapshotEntry(entry));
186
193
  }
187
194
 
188
195
  get(extAddressHex: string): BorderRouterEntry | undefined {
196
+ this.#pruneExpired();
189
197
  const entry = this.#registry.get(extAddressHex.toUpperCase());
190
198
  return entry === undefined ? undefined : this.#snapshotEntry(entry);
191
199
  }
192
200
 
201
+ #pruneExpired(): void {
202
+ const cutoff = Date.now() - STALE_RETENTION_MS;
203
+ for (const [xaKey, entry] of this.#registry) {
204
+ if (entry.sources.length === 0 && entry.lastSeen < cutoff) {
205
+ this.#registry.delete(xaKey);
206
+ }
207
+ }
208
+ }
209
+
193
210
  /** Shallow copy so callers cannot mutate registry state through the returned reference. */
194
211
  #snapshotEntry(entry: BorderRouterEntry): BorderRouterEntry {
195
212
  return {
@@ -201,6 +218,7 @@ export class BorderRouterDiscovery {
201
218
 
202
219
  #onDiscovered(name: DnssdNameLike): void {
203
220
  if (!this.#started) return;
221
+ this.#pruneExpired();
204
222
  const lower = name.qname.toLowerCase();
205
223
  if (lower === MESHCOP_TYPE_QNAME || lower === TREL_TYPE_QNAME) {
206
224
  return;
@@ -265,13 +283,12 @@ export class BorderRouterDiscovery {
265
283
 
266
284
  #onInstanceChanged(name: DnssdNameLike, source: Source): void {
267
285
  if (!this.#started) return;
268
- try {
269
- this.#parseAndUpsert(name, source);
270
- } catch (e) {
271
- logger.debug("Error processing border router instance change:", e);
272
- }
273
-
274
286
  if (name.isDiscovered) {
287
+ try {
288
+ this.#parseAndUpsert(name, source);
289
+ } catch (e) {
290
+ logger.debug("Error processing border router instance change:", e);
291
+ }
275
292
  return;
276
293
  }
277
294
 
@@ -299,36 +316,6 @@ export class BorderRouterDiscovery {
299
316
  if (idx !== -1) {
300
317
  entry.sources.splice(idx, 1);
301
318
  }
302
- // Clear fields exclusively contributed by the disappearing source so the registry
303
- // doesn't expose stale meshcop naming / state when only trel remains (or vice versa).
304
- if (source === "meshcop") {
305
- entry.meshcopPort = undefined;
306
- entry.networkName = undefined;
307
- entry.vendorName = undefined;
308
- entry.modelName = undefined;
309
- entry.threadVersion = undefined;
310
- entry.borderAgentIdHex = undefined;
311
- entry.stateBitmapHex = undefined;
312
- entry.activeTimestampHex = undefined;
313
- entry.partitionIdHex = undefined;
314
- entry.domainName = undefined;
315
- } else {
316
- entry.trelPort = undefined;
317
- }
318
- if (entry.sources.length === 0) {
319
- this.#registry.delete(xaKey);
320
- return;
321
- }
322
- // Hostname / addresses can come from either source (meshcop wins on conflict). With
323
- // the dropped source gone, re-parse the still-discovered companion instance so those
324
- // shared fields reflect the surviving advertisement instead of lingering on the
325
- // value the disappearing source last set.
326
- for (const otherTracking of this.#instanceObservers.values()) {
327
- if (otherTracking.xaKey === xaKey && otherTracking.source !== source) {
328
- this.#parseAndUpsert(otherTracking.name, otherTracking.source);
329
- break;
330
- }
331
- }
332
319
  }
333
320
 
334
321
  #onTargetChanged(target: DnssdNameLike): void {
@@ -554,21 +541,29 @@ export class BorderRouterDiscovery {
554
541
  }
555
542
 
556
543
  #evictOldest(): boolean {
557
- let oldestKey: string | undefined;
558
- let oldestSeen = Number.POSITIVE_INFINITY;
544
+ let oldestStaleKey: string | undefined;
545
+ let oldestStaleSeen = Number.POSITIVE_INFINITY;
546
+ let oldestLiveKey: string | undefined;
547
+ let oldestLiveSeen = Number.POSITIVE_INFINITY;
559
548
  for (const [xa, entry] of this.#registry) {
560
- if (entry.lastSeen < oldestSeen) {
561
- oldestSeen = entry.lastSeen;
562
- oldestKey = xa;
549
+ if (entry.sources.length === 0) {
550
+ if (entry.lastSeen < oldestStaleSeen) {
551
+ oldestStaleSeen = entry.lastSeen;
552
+ oldestStaleKey = xa;
553
+ }
554
+ } else if (entry.lastSeen < oldestLiveSeen) {
555
+ oldestLiveSeen = entry.lastSeen;
556
+ oldestLiveKey = xa;
563
557
  }
564
558
  }
565
- if (oldestKey === undefined) return false;
559
+ const evictKey = oldestStaleKey ?? oldestLiveKey;
560
+ if (evictKey === undefined) return false;
566
561
 
567
- this.#registry.delete(oldestKey);
562
+ this.#registry.delete(evictKey);
568
563
 
569
564
  let releasedObservers = 0;
570
565
  for (const [instanceKey, tracking] of [...this.#instanceObservers]) {
571
- if (tracking.xaKey !== oldestKey) continue;
566
+ if (tracking.xaKey !== evictKey) continue;
572
567
  tracking.name.off(tracking.observer);
573
568
  if (tracking.targetKey !== undefined) {
574
569
  this.#releaseTarget(tracking.targetKey);
@@ -583,7 +578,7 @@ export class BorderRouterDiscovery {
583
578
  `Border router registry exceeded ${REGISTRY_MAX_ENTRIES} entries; evicting oldest (released ${releasedObservers} instance observer${releasedObservers === 1 ? "" : "s"})`,
584
579
  );
585
580
  } else {
586
- logger.debug(`Evicted border router xa=${oldestKey}; released ${releasedObservers} instance observers`);
581
+ logger.debug(`Evicted border router xa=${evictKey}; released ${releasedObservers} instance observers`);
587
582
  }
588
583
  return true;
589
584
  }
@@ -373,13 +373,18 @@ export class ControllerCommandHandler {
373
373
  attributeCache.update(node);
374
374
  }
375
375
  basicInfoChangedInBatch = false;
376
+ // Emit node_updated first so consumers see the new endpoint in node.endpoints,
377
+ // then drain any endpoint_added events queued since the previous structure change.
376
378
  this.events.nodeStructureChanged.emit(nodeId);
379
+ for (const endpointId of this.#nodes.drainPendingEndpointAdds(nodeId)) {
380
+ this.events.nodeEndpointAdded.emit(nodeId, endpointId);
381
+ }
377
382
  });
378
383
  node.events.decommissioned.on(() => {
379
384
  this.#cleanupNodeAfterRemoval(nodeId);
380
385
  this.events.nodeDecommissioned.emit(nodeId);
381
386
  });
382
- node.events.nodeEndpointAdded.on(endpointId => this.events.nodeEndpointAdded.emit(nodeId, endpointId));
387
+ node.events.nodeEndpointAdded.on(endpointId => this.#nodes.queueEndpointAdded(nodeId, endpointId));
383
388
  node.events.nodeEndpointRemoved.on(endpointId => this.events.nodeEndpointRemoved.emit(nodeId, endpointId));
384
389
 
385
390
  // Store the node for direct access
@@ -5,6 +5,7 @@
5
5
  */
6
6
 
7
7
  import { NodeId } from "@matter/main";
8
+ import { EndpointNumber } from "@matter/main/types";
8
9
  import { NodeStates, PairedNode } from "@project-chip/matter.js/device";
9
10
  import { ServerError } from "../types/WebSocketMessageTypes.js";
10
11
  import { AttributeDataCache } from "./AttributeDataCache.js";
@@ -25,6 +26,13 @@ export class Nodes {
25
26
  #previousStates = new Map<NodeId, NodeStates>();
26
27
  /** Cached availability so serialization and event paths always agree */
27
28
  #lastAvailability = new Map<NodeId, boolean>();
29
+ /**
30
+ * Endpoint additions queued until the next nodeStructureChanged for that node.
31
+ * Preserves the wire contract used by python-matter-server: endpoint_added must
32
+ * arrive AFTER a node_updated that already carries the new endpoint, so consumers
33
+ * (e.g., Home Assistant) can resolve node.endpoints[endpoint_id] in their callback.
34
+ */
35
+ #pendingEndpointAdds = new Map<NodeId, EndpointNumber[]>();
28
36
 
29
37
  /**
30
38
  * Get the attribute cache instance.
@@ -74,6 +82,32 @@ export class Nodes {
74
82
  this.#attributeCache.delete(nodeId);
75
83
  this.#previousStates.delete(nodeId);
76
84
  this.#lastAvailability.delete(nodeId);
85
+ this.#pendingEndpointAdds.delete(nodeId);
86
+ }
87
+
88
+ /**
89
+ * Buffer an endpoint_added until the next nodeStructureChanged for that node.
90
+ */
91
+ queueEndpointAdded(nodeId: NodeId, endpointId: EndpointNumber): void {
92
+ let queue = this.#pendingEndpointAdds.get(nodeId);
93
+ if (queue === undefined) {
94
+ queue = [];
95
+ this.#pendingEndpointAdds.set(nodeId, queue);
96
+ }
97
+ queue.push(endpointId);
98
+ }
99
+
100
+ /**
101
+ * Take ownership of buffered endpoint additions for a node and clear the queue.
102
+ * Returned array is in insertion order; an empty array is returned if nothing is queued.
103
+ */
104
+ drainPendingEndpointAdds(nodeId: NodeId): EndpointNumber[] {
105
+ const queue = this.#pendingEndpointAdds.get(nodeId);
106
+ if (queue === undefined || queue.length === 0) {
107
+ return [];
108
+ }
109
+ this.#pendingEndpointAdds.delete(nodeId);
110
+ return queue;
77
111
  }
78
112
 
79
113
  /**