agent-comms 8.15.22 → 8.15.23

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.
Files changed (59) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/dist/bridges/cc-peer/front-controller.d.ts +2 -0
  4. package/dist/bridges/cc-peer/front-controller.d.ts.map +1 -1
  5. package/dist/bridges/cc-peer/front-controller.js +15 -2
  6. package/dist/bridges/cc-peer/front-controller.js.map +1 -1
  7. package/dist/bridges/cc-peer/front-relay.d.ts +2 -0
  8. package/dist/bridges/cc-peer/front-relay.d.ts.map +1 -1
  9. package/dist/bridges/cc-peer/front-relay.js +17 -2
  10. package/dist/bridges/cc-peer/front-relay.js.map +1 -1
  11. package/dist/bridges/cc-peer/front-runtime.d.ts +1 -1
  12. package/dist/bridges/cc-peer/front-runtime.d.ts.map +1 -1
  13. package/dist/bridges/cc-peer/front-runtime.js +25 -21
  14. package/dist/bridges/cc-peer/front-runtime.js.map +1 -1
  15. package/dist/core/bridge-mesh.d.ts +2 -2
  16. package/dist/core/bridge-mesh.d.ts.map +1 -1
  17. package/dist/core/bridge-mesh.js +1 -1
  18. package/dist/core/bridge-mesh.js.map +1 -1
  19. package/dist/core/discovery-default.d.ts +7 -0
  20. package/dist/core/discovery-default.d.ts.map +1 -0
  21. package/dist/core/discovery-default.js +14 -0
  22. package/dist/core/discovery-default.js.map +1 -0
  23. package/dist/core/discovery-mdns.d.ts +22 -4
  24. package/dist/core/discovery-mdns.d.ts.map +1 -1
  25. package/dist/core/discovery-mdns.js +74 -58
  26. package/dist/core/discovery-mdns.js.map +1 -1
  27. package/dist/core/discovery.d.ts +2 -0
  28. package/dist/core/discovery.d.ts.map +1 -1
  29. package/dist/core/discovery.js +6 -0
  30. package/dist/core/discovery.js.map +1 -1
  31. package/dist/core/mesh-store.d.ts +1 -1
  32. package/dist/core/mesh-store.d.ts.map +1 -1
  33. package/dist/core/mesh-store.js +3 -7
  34. package/dist/core/mesh-store.js.map +1 -1
  35. package/dist/test/bridge-mesh.integration.test.js +36 -0
  36. package/dist/test/bridge-mesh.integration.test.js.map +1 -1
  37. package/dist/test/cc-peer-front-controller.unit.test.js +65 -0
  38. package/dist/test/cc-peer-front-controller.unit.test.js.map +1 -1
  39. package/dist/test/cc-peer-front-relay.unit.test.js +23 -1
  40. package/dist/test/cc-peer-front-relay.unit.test.js.map +1 -1
  41. package/dist/test/cc-peer-front-runtime-mesh.unit.test.d.ts +2 -0
  42. package/dist/test/cc-peer-front-runtime-mesh.unit.test.d.ts.map +1 -0
  43. package/dist/test/cc-peer-front-runtime-mesh.unit.test.js +57 -0
  44. package/dist/test/cc-peer-front-runtime-mesh.unit.test.js.map +1 -0
  45. package/dist/test/discovery-mdns.unit.test.d.ts +2 -0
  46. package/dist/test/discovery-mdns.unit.test.d.ts.map +1 -0
  47. package/dist/test/discovery-mdns.unit.test.js +123 -0
  48. package/dist/test/discovery-mdns.unit.test.js.map +1 -0
  49. package/dist/test/mesh-store-orchestration.unit.test.js +12 -0
  50. package/dist/test/mesh-store-orchestration.unit.test.js.map +1 -1
  51. package/package.json +1 -1
  52. package/src/bridges/cc-peer/front-controller.ts +14 -2
  53. package/src/bridges/cc-peer/front-relay.ts +19 -2
  54. package/src/bridges/cc-peer/front-runtime.ts +25 -20
  55. package/src/core/bridge-mesh.ts +3 -3
  56. package/src/core/discovery-default.ts +15 -0
  57. package/src/core/discovery-mdns.ts +84 -61
  58. package/src/core/discovery.ts +7 -0
  59. package/src/core/mesh-store.ts +4 -7
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-store-orchestration.unit.test.js","sourceRoot":"","sources":["../../src/test/mesh-store-orchestration.unit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mesh-store-orchestration.unit.test.js","sourceRoot":"","sources":["../../src/test/mesh-store-orchestration.unit.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agent-comms",
3
3
  "description": "Cross-harness communication mesh for LLM agents — rooms, DMs, presence, and real-time push delivery over TCP",
4
- "version": "8.15.22",
4
+ "version": "8.15.23",
5
5
  "bin": {
6
6
  "agent-comms": "dist/cli.js"
7
7
  },
@@ -66,6 +66,8 @@ export function toError(value: unknown): Error {
66
66
 
67
67
  export class CcPeerFront<TRecord extends FrontedSessionRecord> {
68
68
  private readonly fronted = new Map<number, TRecord>();
69
+ /** Sessions whose attach is still in flight. Ticks run on a fixed interval whether or not the previous one has finished, and an attach can wait out a room join's approval window, many intervals long: without this, every tick in that window would attach the same session again, each attach building another mesh store whose record the last one to finish overwrites, leaving the rest running and never detached. */
70
+ private readonly attaching = new Set<number>();
69
71
  private timer: ReturnType<typeof setInterval> | undefined;
70
72
 
71
73
  constructor(private readonly deps: Readonly<CcPeerFrontDeps<TRecord>>) {}
@@ -140,12 +142,22 @@ export class CcPeerFront<TRecord extends FrontedSessionRecord> {
140
142
  }
141
143
 
142
144
  for (const entry of selected) {
143
- if (this.fronted.has(entry.pid)) continue;
145
+ if (this.fronted.has(entry.pid) || this.attaching.has(entry.pid)) {
146
+ continue;
147
+ }
148
+ this.attaching.add(entry.pid);
144
149
  try {
145
150
  const record = await this.deps.attach(entry);
146
- this.fronted.set(entry.pid, record);
151
+ if (this.timer === undefined) {
152
+ // stop() ran while this attach was in flight and has already detached everything it knew of, so this record is detached here or nothing ever would.
153
+ await this.detachOne(record);
154
+ } else {
155
+ this.fronted.set(entry.pid, record);
156
+ }
147
157
  } catch (err) {
148
158
  this.deps.onError?.(toError(err));
159
+ } finally {
160
+ this.attaching.delete(entry.pid);
149
161
  }
150
162
  }
151
163
  }
@@ -186,6 +186,23 @@ export function buildFrontedSessionRecord(
186
186
  export async function detachFrontedSession(
187
187
  record: Readonly<Pick<FrontedRelayRecord, "agentId" | "store">>,
188
188
  ): Promise<void> {
189
- await record.store.setAgentOffline(record.agentId);
190
- await record.store.shutdown();
189
+ try {
190
+ await record.store.setAgentOffline(record.agentId);
191
+ } finally {
192
+ // The record is gone from the front either way, so a store left running here would hold its sockets and timers for the rest of the process.
193
+ await record.store.shutdown();
194
+ }
195
+ }
196
+
197
+ /** Builds a fronted session's record on a store attach() has just constructed for it, shutting that store down when building fails (registration, the project room's join) and rethrowing. The front retries a failed attach on a later tick with a new store, so a failed one left running would be one more running store, with its own sockets and timers, per failed attempt. */
198
+ export async function attachFrontedSession<TRecord>(
199
+ store: Readonly<Pick<FrontRelayStore, "shutdown">>,
200
+ build: () => Promise<TRecord>,
201
+ ): Promise<TRecord> {
202
+ try {
203
+ return await build();
204
+ } catch (error) {
205
+ await store.shutdown();
206
+ throw error;
207
+ }
191
208
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Real cc-peer/MeshStore construction for the default coordinator-run front (agent-comms#157) -- the counterpart to bridges/cc-peer/run.ts's own real CcPeer.create()/createBridgeMesh construction for the one-shot `bridge cc-peer` command. Wires front-controller.ts's CcPeerFront (attach/detach diffing across ticks) to front-relay.ts's buildFrontedSessionRecord/detachFrontedSession (one session's own relay) against one shared, front-wide CcPeer instance and a fresh per-session MeshStore built from loadIdentityForFront's lock-free identity.
3
3
  *
4
- * Untested directly, exactly like run.ts's own real construction (see cc-peer-bridge.test.ts's header comment): front.ts, front-controller.ts, and front-relay.ts already carry the front's entire decision/diffing/relay logic under direct DI-based unit tests, so this file's only remaining job -- calling the real cc-peer/core APIs in the right order -- is exercised by actually running a bridge as this machine's coordinator.
4
+ * front.ts, front-controller.ts, and front-relay.ts carry the front's decision, diffing and relay logic under direct DI-based unit tests, so this file's remaining job is calling the real cc-peer/core APIs in the right order. Its own tests cover what it decides there: a borrowed peer's ownership (cc-peer-front-runtime.unit.test.ts) and the options each fronted store is built with (cc-peer-front-runtime-mesh.unit.test.ts).
5
5
  */
6
6
 
7
7
  import { parseDisplayName } from "../../core/display-name.js";
@@ -22,6 +22,7 @@ import { computeFrontSlot } from "./front.js";
22
22
  import type { CcPeerRosterEntryLike } from "./front.js";
23
23
  import type { CcPeerInboundMessage } from "./bridge.js";
24
24
  import {
25
+ attachFrontedSession,
25
26
  buildFrontedSessionRecord,
26
27
  detachFrontedSession,
27
28
  type FrontedRelayRecord,
@@ -139,29 +140,33 @@ export function createDefaultCcPeerFront(
139
140
  const { store, tool } = await createBridgeMeshFromIdentity(identity, slot, {
140
141
  coordinatorPort: options.coordinatorPort,
141
142
  hubUrl: options.hubUrl,
143
+ // The front runs in the coordinator's process, whose own store already holds the first-contact presence and reaches this store over the coordinator port. A presence per fronted store would put one more socket on the shared beacon port for every fronted session, each answering every probe on the machine (agent-comms#476).
144
+ firstContactPort: false,
142
145
  });
143
146
  store.getCcPeerVersion = () => CC_PEER_VERSION;
144
147
 
145
- const reg = await ensureRegistered({
146
- store,
147
- harness: "claude-code",
148
- cwd: entry.cwd,
149
- defaultName: defaultSessionName(entry),
150
- visibility: "visible",
151
- });
152
- const roomId = await ensureProjectRoom(store, reg.agentId, entry.cwd);
148
+ return attachFrontedSession(store, async () => {
149
+ const reg = await ensureRegistered({
150
+ store,
151
+ harness: "claude-code",
152
+ cwd: entry.cwd,
153
+ defaultName: defaultSessionName(entry),
154
+ visibility: "visible",
155
+ });
156
+ const roomId = await ensureProjectRoom(store, reg.agentId, entry.cwd);
153
157
 
154
- return buildFrontedSessionRecord({
155
- entry,
156
- peerName,
157
- agentId: reg.agentId,
158
- roomId,
159
- store,
160
- tool,
161
- peer,
162
- aliasPool: ensureAliasPool(),
163
- aliasDirectory,
164
- onError: options.onError,
158
+ return buildFrontedSessionRecord({
159
+ entry,
160
+ peerName,
161
+ agentId: reg.agentId,
162
+ roomId,
163
+ store,
164
+ tool,
165
+ peer,
166
+ aliasPool: ensureAliasPool(),
167
+ aliasDirectory,
168
+ onError: options.onError,
169
+ });
165
170
  });
166
171
  }
167
172
  }
@@ -44,12 +44,12 @@ export interface BridgeMeshSync extends BridgeMesh {
44
44
  attachIdentity: () => Promise<void>;
45
45
  }
46
46
 
47
- /** coordinatorPort/hubUrl thread straight into MeshStore's own constructor, hubUrl defaulting here and nowhere below to resolveHubUrl() (AGENT_COMMS_HUB_URL, else the production hub); fetchLatestVersion is exposed purely for tests -- every real caller omits it and gets VersionDriftChecker's own default (a real npm registry lookup). firstContactPort defaults to FIRST_CONTACT_PORT, the default-on coordinator-free formation presence (agent-comms#341); a bridge-level test overrides it with an OS-assigned free port so test bridges never cross-discover each other. */
47
+ /** coordinatorPort/hubUrl thread straight into MeshStore's own constructor, hubUrl defaulting here and nowhere below to resolveHubUrl() (AGENT_COMMS_HUB_URL, else the production hub); fetchLatestVersion is exposed purely for tests -- every real caller omits it and gets VersionDriftChecker's own default (a real npm registry lookup). firstContactPort defaults to FIRST_CONTACT_PORT, the default-on coordinator-free formation presence (agent-comms#341); a bridge-level test overrides it with an OS-assigned free port so test bridges never cross-discover each other, and false builds a store with no presence at all, for a store that lives in a process whose own store already runs one (the cc-peer front's per-session stores, agent-comms#476). */
48
48
  export interface BridgeMeshOptions {
49
49
  coordinatorPort?: number | undefined;
50
50
  hubUrl?: string | undefined;
51
51
  fetchLatestVersion?: (() => Promise<string | undefined>) | undefined;
52
- firstContactPort?: number | undefined;
52
+ firstContactPort?: number | false | undefined;
53
53
  }
54
54
 
55
55
  /** Seams that let a test run a real bridge against an isolated mesh; every real launch omits them. */
@@ -94,7 +94,7 @@ export function createBridgeMeshSyncFromIdentity(
94
94
  coordinatorPort,
95
95
  hubUrl,
96
96
  slot,
97
- firstContactPort,
97
+ firstContactPort: firstContactPort === false ? undefined : firstContactPort,
98
98
  });
99
99
  store.peerId = deviceIdToHex(Uint8Array.from(identity.deviceId));
100
100
  // One shared dataStorage instance for both the transport's own data-domain frame responder and the store's own durable-send mint path (P5, agent-comms#50) -- oplogDirFor(slot) needs only the slot, not the async identity below, so this can be constructed synchronously right here.
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The discovery manager every MeshStore starts with: the LAN beacon backend and the tailnet probe backend. Kept apart from discovery.ts because each backend imports that module's types, and from mesh-store.ts so the store names no concrete backend.
3
+ */
4
+
5
+ import { DiscoveryManager } from "./discovery.js";
6
+ import { MdnsDiscoveryBackend } from "./discovery-mdns.js";
7
+ import { TailscaleDiscoveryBackend } from "./discovery-tailscale.js";
8
+
9
+ /** Builds a DiscoveryManager with the mDNS beacon and Tailscale backends registered. */
10
+ export function createDefaultDiscovery(): DiscoveryManager {
11
+ const discovery = new DiscoveryManager();
12
+ discovery.registerBackend(new MdnsDiscoveryBackend());
13
+ discovery.registerBackend(new TailscaleDiscoveryBackend());
14
+ return discovery;
15
+ }
@@ -39,13 +39,29 @@ interface BeaconPayload {
39
39
  // mDNS (UDP beacon) backend
40
40
  // ---------------------------------------------------------------------------
41
41
 
42
+ export interface MdnsDiscoveryBackendOptions {
43
+ /** The UDP port beacons are bound, sent and heard on. Defaults to the shared beacon port; overridable so tests take an OS-assigned free port rather than contending with a real machine presence. */
44
+ port?: number;
45
+ /** Creates the backend's UDP socket. Defaults to dgram.createSocket; overridable so tests can observe every socket the backend opens and closes. */
46
+ createSocket?: (options: dgram.SocketOptions) => dgram.Socket;
47
+ }
48
+
42
49
  export class MdnsDiscoveryBackend implements DiscoveryBackend {
43
50
  readonly name = "mdns";
44
51
 
52
+ private readonly port: number;
53
+ private readonly createSocket: (options: dgram.SocketOptions) => dgram.Socket;
54
+ /** The one bind this backend has in flight or has completed: every caller needing the socket awaits this same promise, so concurrent advertise and discover calls share one socket rather than each binding their own. Cleared when the socket is closed or its bind fails, so the next caller binds afresh. */
55
+ private listening: Promise<dgram.Socket> | undefined;
56
+ /** The bound socket, set once its bind completes and cleared when it is closed. */
45
57
  private socket: dgram.Socket | undefined;
46
58
  private beaconTimer: ReturnType<typeof setInterval> | undefined;
47
59
  private currentPayload: BeaconPayload | undefined;
48
- private isListening = false;
60
+
61
+ constructor(options: Readonly<MdnsDiscoveryBackendOptions> = {}) {
62
+ this.port = options.port ?? BEACON_PORT;
63
+ this.createSocket = options.createSocket ?? dgram.createSocket;
64
+ }
49
65
 
50
66
  async startAdvertising(opts: Readonly<AdvertiseOptions>): Promise<string> {
51
67
  const id = `mdns-${String(opts.port)}`;
@@ -57,53 +73,28 @@ export class MdnsDiscoveryBackend implements DiscoveryBackend {
57
73
  policies: opts.policy === "name-only" ? ["name-only"] : ["full"],
58
74
  };
59
75
 
60
- await this.ensureListening();
61
- this.startBeacon();
76
+ const socket = await this.ensureListening();
77
+ // A stop() that arrived while the socket was binding has already closed it; beaconing now would start a timer nothing ever clears.
78
+ if (this.socket === socket) this.startBeacon();
62
79
 
63
80
  return id;
64
81
  }
65
82
 
66
83
  async stopAdvertising(): Promise<void> {
67
- if (this.beaconTimer !== undefined) {
68
- clearInterval(this.beaconTimer);
69
- this.beaconTimer = undefined;
70
- }
71
-
84
+ await this.settleBinding();
85
+ this.stopBeacon();
72
86
  this.currentPayload = undefined;
73
87
 
74
88
  // Only close the socket if we're not also discovering
75
- if (this.socket && !this.hasActiveListeners()) {
76
- await this.closeSocket();
77
- }
89
+ await this.releaseIfIdle();
78
90
  }
79
91
 
80
92
  /** Stop all beacon activity and close the socket. */
81
93
  async stop(): Promise<void> {
82
- if (this.beaconTimer !== undefined) {
83
- clearInterval(this.beaconTimer);
84
- this.beaconTimer = undefined;
85
- }
86
-
94
+ await this.settleBinding();
95
+ this.stopBeacon();
87
96
  this.currentPayload = undefined;
88
-
89
- if (this.socket) {
90
- await this.closeSocket();
91
- }
92
- }
93
-
94
- /** Close the UDP socket and wait for the underlying handle to actually release before resolving. */
95
- private async closeSocket(): Promise<void> {
96
- const socket = this.socket;
97
- if (!socket) return;
98
-
99
- await new Promise<void>((resolve) => {
100
- socket.close(() => {
101
- resolve();
102
- });
103
- });
104
-
105
- this.socket = undefined;
106
- this.isListening = false;
97
+ await this.closeSocket();
107
98
  }
108
99
 
109
100
  async discover(
@@ -111,10 +102,7 @@ export class MdnsDiscoveryBackend implements DiscoveryBackend {
111
102
  ): Promise<DiscoveredMesh[]> {
112
103
  const discovered = new Map<string, DiscoveredMesh>();
113
104
 
114
- await this.ensureListening();
115
-
116
- const socket = this.socket;
117
- if (socket === undefined) return [];
105
+ const socket = await this.ensureListening();
118
106
 
119
107
  // Collect beacons for the specified duration
120
108
  const handler = (msg: Buffer, rinfo: dgram.RemoteInfo) => {
@@ -132,7 +120,7 @@ export class MdnsDiscoveryBackend implements DiscoveryBackend {
132
120
  });
133
121
 
134
122
  socket.off("message", handler);
135
- this.cleanupSocket();
123
+ await this.releaseIfIdle();
136
124
 
137
125
  return [...discovered.values()];
138
126
  }
@@ -141,29 +129,72 @@ export class MdnsDiscoveryBackend implements DiscoveryBackend {
141
129
  // Internals
142
130
  // -----------------------------------------------------------------------
143
131
 
144
- private async ensureListening(): Promise<void> {
145
- if (this.isListening && this.socket) return;
132
+ private async ensureListening(): Promise<dgram.Socket> {
133
+ this.listening ??= this.bindSocket();
134
+ return this.listening;
135
+ }
146
136
 
147
- const socket = dgram.createSocket({
137
+ /** Creates and binds the backend's one socket. A failed bind closes the socket it created (Node leaves a socket whose bind failed open) and rejects, so the caller learns the beacon port is unusable instead of waiting forever on a bind callback that never fires. */
138
+ private async bindSocket(): Promise<dgram.Socket> {
139
+ const socket = this.createSocket({
148
140
  type: "udp4",
149
141
  reuseAddr: true,
150
142
  });
151
143
 
152
- socket.on("error", () => {
153
- // Binding errors are non-fatal for discovery — the beacon simply
154
- // won't reach anyone on this interface.
155
- this.isListening = false;
156
- });
144
+ try {
145
+ await new Promise<void>((resolve, reject) => {
146
+ socket.once("error", reject);
147
+ socket.bind(this.port, () => {
148
+ socket.off("error", reject);
149
+ resolve();
150
+ });
151
+ });
152
+ } catch (error) {
153
+ this.listening = undefined;
154
+ socket.close();
155
+ throw error;
156
+ }
157
+
158
+ socket.setBroadcast(true);
159
+ // An error on a bound socket leaves it bound and usable, so it is neither closed nor replaced: replacing it is what used to leave the old socket open beside a new one. The listener exists because an "error" event with none would crash the process.
160
+ socket.on("error", () => undefined);
161
+ this.socket = socket;
162
+ return socket;
163
+ }
164
+
165
+ /** Waits for a bind still in flight to finish, so the socket it produces is the one a stop closes rather than one that appears after the stop has returned. */
166
+ private async settleBinding(): Promise<void> {
167
+ if (this.listening !== undefined) {
168
+ await Promise.allSettled([this.listening]);
169
+ }
170
+ }
171
+
172
+ /** Close the UDP socket and wait for the underlying handle to actually release before resolving. The fields are cleared first, so a caller arriving while the close is in progress binds a fresh socket rather than reusing a closing one. */
173
+ private async closeSocket(): Promise<void> {
174
+ const socket = this.socket;
175
+ if (!socket) return;
157
176
 
177
+ this.socket = undefined;
178
+ this.listening = undefined;
158
179
  await new Promise<void>((resolve) => {
159
- socket.bind(BEACON_PORT, () => {
160
- socket.setBroadcast(true);
161
- this.isListening = true;
180
+ socket.close(() => {
162
181
  resolve();
163
182
  });
164
183
  });
184
+ }
165
185
 
166
- this.socket = socket;
186
+ /** Closes the socket once nothing uses it: no advertisement and no discover() still listening on it. */
187
+ private async releaseIfIdle(): Promise<void> {
188
+ if (this.currentPayload === undefined && !this.hasActiveListeners()) {
189
+ await this.closeSocket();
190
+ }
191
+ }
192
+
193
+ private stopBeacon(): void {
194
+ if (this.beaconTimer !== undefined) {
195
+ clearInterval(this.beaconTimer);
196
+ this.beaconTimer = undefined;
197
+ }
167
198
  }
168
199
 
169
200
  private startBeacon(): void {
@@ -183,7 +214,7 @@ export class MdnsDiscoveryBackend implements DiscoveryBackend {
183
214
 
184
215
  const payload = Buffer.from(JSON.stringify(this.currentPayload));
185
216
  // Broadcast to the beacon port on the standard broadcast address
186
- this.socket.send(payload, BEACON_PORT, "255.255.255.255", (err) => {
217
+ this.socket.send(payload, this.port, "255.255.255.255", (err) => {
187
218
  if (err) {
188
219
  // Broadcast failures are non-fatal — the network may not
189
220
  // support broadcast (e.g. some cloud environments).
@@ -236,12 +267,4 @@ export class MdnsDiscoveryBackend implements DiscoveryBackend {
236
267
  if (!this.socket) return false;
237
268
  return this.socket.listenerCount("message") > 0;
238
269
  }
239
-
240
- private cleanupSocket(): void {
241
- if (this.socket && !this.currentPayload && !this.hasActiveListeners()) {
242
- this.socket.close();
243
- this.socket = undefined;
244
- this.isListening = false;
245
- }
246
- }
247
270
  }
@@ -103,6 +103,13 @@ export class DiscoveryManager {
103
103
  return id;
104
104
  }
105
105
 
106
+ /** Stops every backend (timers and sockets) and forgets every advertisement, live or paused. The owning store calls this on shutdown, since nothing will resume them and an advertisement's beacon socket would otherwise outlive the store for the life of the process. */
107
+ async stop(): Promise<void> {
108
+ this.activeAdvertisements.clear();
109
+ this.pausedAdvertisements.clear();
110
+ await this.stopAllBackends();
111
+ }
112
+
106
113
  /**
107
114
  * Set mesh-wide visibility level.
108
115
  *
@@ -16,9 +16,8 @@ import {
16
16
  ROOM_JOIN_APPROVAL_TIMEOUT_MS,
17
17
  ROOM_REQUEST_TIMEOUT_MS,
18
18
  } from "./request-timeouts.js";
19
- import { DiscoveryManager } from "./discovery.js";
20
- import { MdnsDiscoveryBackend } from "./discovery-mdns.js";
21
- import { TailscaleDiscoveryBackend } from "./discovery-tailscale.js";
19
+ import type { DiscoveryManager } from "./discovery.js";
20
+ import { createDefaultDiscovery } from "./discovery-default.js";
22
21
  import type { MeshStoreIdentity } from "./mesh-store-shared.js";
23
22
  import { GatewayTrust, type VerifiedMember } from "./gateway-trust.js";
24
23
  import { ReceiverSet } from "./receiver-set.js";
@@ -332,10 +331,7 @@ export class MeshStore implements CommsStore {
332
331
  setIdentity: this.setIdentity.bind(this),
333
332
  });
334
333
 
335
- // Discovery manager — registers available backends
336
- this.discovery = new DiscoveryManager();
337
- this.discovery.registerBackend(new MdnsDiscoveryBackend());
338
- this.discovery.registerBackend(new TailscaleDiscoveryBackend());
334
+ this.discovery = createDefaultDiscovery();
339
335
 
340
336
  this.deliveryEngine = new DeliveryEngine({
341
337
  agents: this.agents,
@@ -1088,6 +1084,7 @@ export class MeshStore implements CommsStore {
1088
1084
  this.isShutDown = true;
1089
1085
  this.membership.stop();
1090
1086
  this.peerLifecycle.stopFirstContact();
1087
+ await this.discovery.stop();
1091
1088
  // Clear any pending markRead timers so they don't fire after the transport is shut down (which would attempt sends on closed sockets) or keep the event loop alive after process.exit().
1092
1089
  for (const timer of this.pendingMarkReadTimers) {
1093
1090
  clearTimeout(timer);