agent-comms 8.9.0 → 8.9.2

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 (68) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +1 -1
  4. package/dist/test/bridge-mesh-version-drift.integration.test.js +2 -9
  5. package/dist/test/bridge-mesh-version-drift.integration.test.js.map +1 -1
  6. package/dist/test/bridge-mesh.integration.test.js +3 -8
  7. package/dist/test/bridge-mesh.integration.test.js.map +1 -1
  8. package/dist/test/broadcast-window.integration.test.js +6 -5
  9. package/dist/test/broadcast-window.integration.test.js.map +1 -1
  10. package/dist/test/cc-peer-alias-reply-routing.integration.test.js +3 -7
  11. package/dist/test/cc-peer-alias-reply-routing.integration.test.js.map +1 -1
  12. package/dist/test/cc-peer-fronted-approval.integration.test.js +3 -7
  13. package/dist/test/cc-peer-fronted-approval.integration.test.js.map +1 -1
  14. package/dist/test/chat-controller-mesh-errors.integration.test.js +2 -7
  15. package/dist/test/chat-controller-mesh-errors.integration.test.js.map +1 -1
  16. package/dist/test/coordinator-failover-hub.integration.test.js +3 -7
  17. package/dist/test/coordinator-failover-hub.integration.test.js.map +1 -1
  18. package/dist/test/coordinator-failover.integration.test.js +6 -14
  19. package/dist/test/coordinator-failover.integration.test.js.map +1 -1
  20. package/dist/test/coordinator-socket-error.integration.test.js +4 -3
  21. package/dist/test/coordinator-socket-error.integration.test.js.map +1 -1
  22. package/dist/test/dm-admission.integration.test.js +4 -8
  23. package/dist/test/dm-admission.integration.test.js.map +1 -1
  24. package/dist/test/dm-delivery-status.integration.test.js +2 -7
  25. package/dist/test/dm-delivery-status.integration.test.js.map +1 -1
  26. package/dist/test/dm-first-contact.integration.test.js +4 -8
  27. package/dist/test/dm-first-contact.integration.test.js.map +1 -1
  28. package/dist/test/dm-grant-tool.integration.test.js +4 -8
  29. package/dist/test/dm-grant-tool.integration.test.js.map +1 -1
  30. package/dist/test/dm-send-capability-admission.integration.test.js +7 -11
  31. package/dist/test/dm-send-capability-admission.integration.test.js.map +1 -1
  32. package/dist/test/dm-send-principal-delegation.integration.test.js +2 -6
  33. package/dist/test/dm-send-principal-delegation.integration.test.js.map +1 -1
  34. package/dist/test/gateway-trust.integration.test.js +33 -14
  35. package/dist/test/gateway-trust.integration.test.js.map +1 -1
  36. package/dist/test/hub-exposure.integration.test.js +5 -7
  37. package/dist/test/hub-exposure.integration.test.js.map +1 -1
  38. package/dist/test/hub-peer-per-store.integration.test.js +9 -14
  39. package/dist/test/hub-peer-per-store.integration.test.js.map +1 -1
  40. package/dist/test/identity-restart.integration.test.js +7 -6
  41. package/dist/test/identity-restart.integration.test.js.map +1 -1
  42. package/dist/test/listener-policy.integration.test.js +12 -11
  43. package/dist/test/listener-policy.integration.test.js.map +1 -1
  44. package/dist/test/mesh-e2e.integration.test.js +6 -11
  45. package/dist/test/mesh-e2e.integration.test.js.map +1 -1
  46. package/dist/test/principal-membership-trust.integration.test.js +10 -15
  47. package/dist/test/principal-membership-trust.integration.test.js.map +1 -1
  48. package/dist/test/room-destroy-revocation.integration.test.js +2 -6
  49. package/dist/test/room-destroy-revocation.integration.test.js.map +1 -1
  50. package/dist/test/room-invite-directed.integration.test.js +3 -7
  51. package/dist/test/room-invite-directed.integration.test.js.map +1 -1
  52. package/dist/test/room-join-approval-timeout.integration.test.js +3 -7
  53. package/dist/test/room-join-approval-timeout.integration.test.js.map +1 -1
  54. package/dist/test/room-kick-revocation.integration.test.js +2 -6
  55. package/dist/test/room-kick-revocation.integration.test.js.map +1 -1
  56. package/dist/test/room-leave-revocation.integration.test.js +3 -7
  57. package/dist/test/room-leave-revocation.integration.test.js.map +1 -1
  58. package/dist/test/room-read-directed.integration.test.js +3 -7
  59. package/dist/test/room-read-directed.integration.test.js.map +1 -1
  60. package/dist/test/room-send-directed.integration.test.js +4 -8
  61. package/dist/test/room-send-directed.integration.test.js.map +1 -1
  62. package/dist/test/room-send-retry.integration.test.js +7 -6
  63. package/dist/test/room-send-retry.integration.test.js.map +1 -1
  64. package/dist/test/room-state-sync.integration.test.js +4 -8
  65. package/dist/test/room-state-sync.integration.test.js.map +1 -1
  66. package/dist/test/visibility.integration.test.js +6 -6
  67. package/dist/test/visibility.integration.test.js.map +1 -1
  68. package/package.json +2 -2
@@ -15,7 +15,7 @@
15
15
  "source": "url",
16
16
  "url": "https://github.com/ExaDev/agent-comms.git"
17
17
  },
18
- "version": "8.9.0"
18
+ "version": "8.9.2"
19
19
  }
20
20
  ]
21
21
  }
@@ -18,5 +18,5 @@
18
18
  },
19
19
  "name": "agent-comms",
20
20
  "repository": "https://github.com/ExaDev/agent-comms",
21
- "version": "8.9.0"
21
+ "version": "8.9.2"
22
22
  }
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![GitHub](https://img.shields.io/badge/GitHub-181717?logo=github&logoColor=white)](https://github.com/ExaDev/agent-comms)
4
4
  [![npm](https://img.shields.io/badge/npm-CB3837?logo=npm&logoColor=white)](https://www.npmjs.com/package/agent-comms)
5
- [![version](https://img.shields.io/badge/version-8.9.0-blue)](https://github.com/ExaDev/agent-comms/releases/tag/v8.9.0)
5
+ [![version](https://img.shields.io/badge/version-8.9.2-blue)](https://github.com/ExaDev/agent-comms/releases/tag/v8.9.2)
6
6
  [![CI](https://img.shields.io/github/actions/workflow/status/ExaDev/agent-comms/ci.yml?branch=main)](https://github.com/ExaDev/agent-comms/actions)
7
7
 
8
8
  Cross-harness communication mesh for LLM agents: rooms, DMs, presence, and visibility over TCP with zero filesystem dependencies.
@@ -15,13 +15,6 @@ function tempSlot(harness) {
15
15
  const dir = fs.mkdtempSync(path.join(tmpdir(), "agent-comms-bridge-mesh-version-drift-test-"));
16
16
  return { harness, cwd: "/tmp/project", dir };
17
17
  }
18
- // Never rely on the default coordinator port (19876) in a test -- this machine routinely runs other, real agent-comms bridges (this very session's own MCP tool included) that are genuinely listening there, and a solo test store becoming a peer of that unrelated live mesh rather than its own coordinator hangs indefinitely on the first round trip that expects a same-test peer to answer. Matches the ephemeral port range bridge-mesh.test.ts's own multi-peer test already uses for the identical reason.
19
- const TEST_COORDINATOR_PORT_BASE = 21_100;
20
- const TEST_COORDINATOR_PORT_RANGE = 100;
21
- function testCoordinatorPort() {
22
- return (TEST_COORDINATOR_PORT_BASE +
23
- Math.floor(Math.random() * TEST_COORDINATOR_PORT_RANGE));
24
- }
25
18
  const POLL_TIMEOUT_MS = 5000;
26
19
  const POLL_INTERVAL_MS = 20;
27
20
  /**
@@ -45,7 +38,7 @@ test("createBridgeMesh's tool reports an available update when the injected vers
45
38
  const slot = tempSlot("test-harness-drift");
46
39
  const newerVersion = "9999.0.0";
47
40
  const { store, tool } = await createBridgeMesh(slot, {
48
- coordinatorPort: testCoordinatorPort(),
41
+ coordinatorPort: await freeLocalPort(),
49
42
  firstContactPort: await freeLocalPort(),
50
43
  fetchLatestVersion: async () => Promise.resolve(newerVersion),
51
44
  });
@@ -76,7 +69,7 @@ test("createBridgeMesh's tool reports an available update when the injected vers
76
69
  test("createBridgeMesh's tool reports its own version with no update line when no newer release is known", async () => {
77
70
  const slot = tempSlot("test-harness-no-drift");
78
71
  const { store, tool } = await createBridgeMesh(slot, {
79
- coordinatorPort: testCoordinatorPort(),
72
+ coordinatorPort: await freeLocalPort(),
80
73
  firstContactPort: await freeLocalPort(),
81
74
  fetchLatestVersion: async () => Promise.resolve(undefined),
82
75
  });
@@ -1 +1 @@
1
- {"version":3,"file":"bridge-mesh-version-drift.integration.test.js","sourceRoot":"","sources":["../../src/test/bridge-mesh-version-drift.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge-mesh-version-drift.integration.test.js","sourceRoot":"","sources":["../../src/test/bridge-mesh-version-drift.integration.test.ts"],"names":[],"mappings":"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"}
@@ -13,10 +13,6 @@ import { freeLocalPort } from "./hub-helpers.js";
13
13
  import { realHubOverWs, waitForCondition } from "./hub-helpers.js";
14
14
  /** A device-id is a 64-character lowercase hex SHA-256 digest. */
15
15
  const DEVICE_ID_HEX_LENGTH = 64;
16
- // Base of the ephemeral coordinator-port range used to avoid colliding with the mesh's real well-known port.
17
- const TEST_COORDINATOR_PORT_BASE = 20_900;
18
- // Width of the randomised offset added to TEST_COORDINATOR_PORT_BASE so concurrent test runs don't collide on the same port.
19
- const TEST_COORDINATOR_PORT_RANGE = 100;
20
16
  function tempSlot(harness) {
21
17
  const dir = fs.mkdtempSync(path.join(tmpdir(), "agent-comms-bridge-mesh-test-"));
22
18
  return { harness, cwd: "/tmp/project", dir };
@@ -52,8 +48,7 @@ test("createBridgeMesh wires a WireMeshTransport", async () => {
52
48
  test("createBridgeMesh passes an explicit coordinatorPort through to MeshStore, forming one shared mesh", async () => {
53
49
  const slotA = tempSlot("test-harness-a");
54
50
  const slotB = tempSlot("test-harness-b");
55
- const port = TEST_COORDINATOR_PORT_BASE +
56
- Math.floor(Math.random() * TEST_COORDINATOR_PORT_RANGE);
51
+ const port = await freeLocalPort();
57
52
  const a = await createBridgeMesh(slotA, {
58
53
  coordinatorPort: port,
59
54
  firstContactPort: await freeLocalPort(),
@@ -132,10 +127,10 @@ const REMOTE_DEVICE_HEX = "f".repeat(DEVICE_ID_HEX_LENGTH);
132
127
  test("createBridgeMesh passes an explicit hubUrl through to MeshStore, which dials it once it has an agent and trusts someone, and drops it on shutdown", async () => {
133
128
  const hub = await realHubOverWs();
134
129
  const slot = tempSlot("test-harness-hub");
135
- const port = TEST_COORDINATOR_PORT_BASE +
136
- Math.floor(Math.random() * TEST_COORDINATOR_PORT_RANGE);
130
+ const port = await freeLocalPort();
137
131
  const { store } = await createBridgeMesh(slot, {
138
132
  coordinatorPort: port,
133
+ firstContactPort: await freeLocalPort(),
139
134
  hubUrl: hub.url,
140
135
  });
141
136
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"bridge-mesh.integration.test.js","sourceRoot":"","sources":["../../src/test/bridge-mesh.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge-mesh.integration.test.js","sourceRoot":"","sources":["../../src/test/bridge-mesh.integration.test.ts"],"names":[],"mappings":"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"}
@@ -8,15 +8,15 @@ import { deviceIdToHex } from "wire-mesh-core/domain/device-id";
8
8
  import { MeshStore } from "../core/mesh-store.js";
9
9
  import { WireMeshTransport } from "../core/wire-mesh-transport.js";
10
10
  import { generateIdentity } from "../core/identity.js";
11
- const TEST_PORT = 19890;
11
+ import { freeLocalPort } from "./hub-helpers.js";
12
12
  const POLL_ATTEMPTS = 20;
13
13
  const POLL_INTERVAL_MS = 100;
14
14
  const sleep = async (ms) => new Promise((resolve) => {
15
15
  setTimeout(resolve, ms);
16
16
  });
17
17
  /** A peer wired like a real bridge: WireMeshTransport, device-id peer ID. */
18
- function makePeer(identity) {
19
- const store = new MeshStore({ coordinatorPort: TEST_PORT });
18
+ function makePeer(coordinatorPort, identity) {
19
+ const store = new MeshStore({ coordinatorPort });
20
20
  store.peerId = deviceIdToHex(Uint8Array.from(identity.deviceId));
21
21
  store.setTransport(new WireMeshTransport(store.events, identity));
22
22
  return store;
@@ -31,8 +31,9 @@ async function waitFor(what, check) {
31
31
  expect(false, `timed out waiting for ${what}`).toBeTruthy();
32
32
  }
33
33
  async function main() {
34
+ const port = await freeLocalPort();
34
35
  // A is the coordinator and stays up throughout.
35
- const a = makePeer(generateIdentity());
36
+ const a = makePeer(port, generateIdentity());
36
37
  await a.init();
37
38
  await a.registerAgent({
38
39
  name: "peer-a",
@@ -43,7 +44,7 @@ async function main() {
43
44
  tags: [],
44
45
  });
45
46
  // B joins and registers IMMEDIATELY after init() — no settle delay. This is exactly the production bridge pattern that used to race the dials.
46
- const b = makePeer(generateIdentity());
47
+ const b = makePeer(port, generateIdentity());
47
48
  await b.init();
48
49
  await b.registerAgent({
49
50
  name: "peer-b",
@@ -1 +1 @@
1
- {"version":3,"file":"broadcast-window.integration.test.js","sourceRoot":"","sources":["../../src/test/broadcast-window.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"broadcast-window.integration.test.js","sourceRoot":"","sources":["../../src/test/broadcast-window.integration.test.ts"],"names":[],"mappings":"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"}
@@ -7,11 +7,7 @@ import { CommsTool } from "../core/tool.js";
7
7
  import { buildFrontedSessionRecord } from "../bridges/cc-peer/front-relay.js";
8
8
  import { ReplyAliasDirectory } from "../bridges/cc-peer/reply-aliases.js";
9
9
  import { waitFor, wireTestTransport } from "./test-transport.js";
10
- let nextPort = 27_500;
11
- function freshPort() {
12
- nextPort += 1;
13
- return nextPort;
14
- }
10
+ import { freeLocalPort } from "./hub-helpers.js";
15
11
  const PEER_NAME = "agent-comms-front";
16
12
  const SESSION_PID = 4343;
17
13
  async function registered(port, name) {
@@ -62,7 +58,7 @@ function frontFor(fronted, cwd) {
62
58
  return { toSession, toSessionFromAlias, aliasDirectory, record };
63
59
  }
64
60
  test("a fronted session's reply to a room message posts back into that room, not a DM to its sender (agent-comms#289)", async () => {
65
- const port = freshPort();
61
+ const port = await freeLocalPort();
66
62
  const sender = await registered(port, "room-sender");
67
63
  const fronted = await registered(port, "room-fronted");
68
64
  await waitFor(() => sender.serialise().agents[fronted.peerId] !== undefined, "the sender sees the fronted agent");
@@ -108,7 +104,7 @@ test("a fronted session's reply to a room message posts back into that room, not
108
104
  await sender.shutdown();
109
105
  });
110
106
  test("a fronted session's reply to a genuine DM still becomes a DM, through the same alias mechanism (agent-comms#289)", async () => {
111
- const port = freshPort();
107
+ const port = await freeLocalPort();
112
108
  const sender = await registered(port, "dm-sender");
113
109
  const fronted = await registered(port, "dm-fronted");
114
110
  await waitFor(() => sender.serialise().agents[fronted.peerId] !== undefined, "the sender sees the fronted agent");
@@ -1 +1 @@
1
- {"version":3,"file":"cc-peer-alias-reply-routing.integration.test.js","sourceRoot":"","sources":["../../src/test/cc-peer-alias-reply-routing.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cc-peer-alias-reply-routing.integration.test.js","sourceRoot":"","sources":["../../src/test/cc-peer-alias-reply-routing.integration.test.ts"],"names":[],"mappings":"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"}
@@ -7,11 +7,7 @@ import { CommsTool } from "../core/tool.js";
7
7
  import { dmRoomPath } from "../core/room-path.js";
8
8
  import { buildFrontedSessionRecord } from "../bridges/cc-peer/front-relay.js";
9
9
  import { waitFor, wireTestTransport } from "./test-transport.js";
10
- let nextPort = 24_450;
11
- function freshPort() {
12
- nextPort += 1;
13
- return nextPort;
14
- }
10
+ import { freeLocalPort } from "./hub-helpers.js";
15
11
  const PEER_NAME = "agent-comms-front";
16
12
  const SESSION_PID = 4242;
17
13
  async function registered(port, name) {
@@ -29,7 +25,7 @@ async function registered(port, name) {
29
25
  return store;
30
26
  }
31
27
  test("a session with no agent-comms tool admits a first-contact DM by messaging the front, and hears the outcome", async () => {
32
- const port = freshPort();
28
+ const port = await freeLocalPort();
33
29
  const sender = await registered(port, "sender");
34
30
  const fronted = await registered(port, "fronted");
35
31
  await waitFor(() => sender.serialise().agents[fronted.peerId] !== undefined, "the sender sees the fronted agent");
@@ -91,7 +87,7 @@ test("a session with no agent-comms tool admits a first-contact DM by messaging
91
87
  }
92
88
  });
93
89
  test("a session that rejects a first-contact DM makes the sender's dm fail", async () => {
94
- const port = freshPort();
90
+ const port = await freeLocalPort();
95
91
  const sender = await registered(port, "sender");
96
92
  const fronted = await registered(port, "fronted");
97
93
  await waitFor(() => sender.serialise().agents[fronted.peerId] !== undefined, "the sender sees the fronted agent");
@@ -1 +1 @@
1
- {"version":3,"file":"cc-peer-fronted-approval.integration.test.js","sourceRoot":"","sources":["../../src/test/cc-peer-fronted-approval.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cc-peer-fronted-approval.integration.test.js","sourceRoot":"","sources":["../../src/test/cc-peer-fronted-approval.integration.test.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,8 @@
3
3
  */
4
4
  import { afterEach, describe, expect, it, vi } from "vitest";
5
5
  import { ChatController } from "../bridges/user/controller.js";
6
- import { unreachableHubUrl } from "./hub-helpers.js";
6
+ import { freeLocalPort, unreachableHubUrl } from "./hub-helpers.js";
7
7
  import { waitFor } from "./test-transport.js";
8
- let nextPort = 22_450;
9
- function freshPort() {
10
- nextPort += 1;
11
- return nextPort;
12
- }
13
8
  /** A device-id is a 64-character lowercase hex SHA-256 digest. */
14
9
  const DEVICE_ID_HEX_LENGTH = 64;
15
10
  /** Trusting a remote device is what makes the controller's store dial the hub. */
@@ -25,7 +20,7 @@ describe("ChatController mesh errors", () => {
25
20
  async function startController() {
26
21
  // A store with an agent whose machine trusts someone dials the hub, and this hub URL refuses connections, so the store reports a real error as soon as the test trusts a remote device.
27
22
  const controller = new ChatController("errors-test", {
28
- coordinatorPort: freshPort(),
23
+ coordinatorPort: await freeLocalPort(),
29
24
  hubUrl: await unreachableHubUrl(),
30
25
  });
31
26
  controllers.push(controller);
@@ -1 +1 @@
1
- {"version":3,"file":"chat-controller-mesh-errors.integration.test.js","sourceRoot":"","sources":["../../src/test/chat-controller-mesh-errors.integration.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,IAAI,QAAQ,GAAG,MAAM,CAAC;AACtB,SAAS,SAAS;IAChB,QAAQ,IAAI,CAAC,CAAC;IACd,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,kEAAkE;AAClE,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,kFAAkF;AAClF,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAE3D,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,MAAM,WAAW,GAAqB,EAAE,CAAC;IAEzC,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,EAAE,CAAC,eAAe,EAAE,CAAC;QACrB,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,eAAe;QAC5B,wLAAwL;QACxL,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE;YACnD,eAAe,EAAE,SAAS,EAAE;YAC5B,MAAM,EAAE,MAAM,iBAAiB,EAAE;SAClC,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,UAAU,GAAG,MAAM,eAAe,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YACtC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,kCAAkC,CAAC,CAAC;QAC3E,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4FAA4F,EAAE,KAAK,IAAI,EAAE;QAC1G,MAAM,UAAU,GAAG,MAAM,eAAe,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,EAAE;aACd,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;aAC9B,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAElC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,MAAM,OAAO,CACX,GAAG,EAAE,CACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAChC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CACzC,EACH,qCAAqC,CACtC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"chat-controller-mesh-errors.integration.test.js","sourceRoot":"","sources":["../../src/test/chat-controller-mesh-errors.integration.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,kEAAkE;AAClE,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC,kFAAkF;AAClF,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAE3D,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,MAAM,WAAW,GAAqB,EAAE,CAAC;IAEzC,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,EAAE,CAAC,eAAe,EAAE,CAAC;QACrB,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,eAAe;QAC5B,wLAAwL;QACxL,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE;YACnD,eAAe,EAAE,MAAM,aAAa,EAAE;YACtC,MAAM,EAAE,MAAM,iBAAiB,EAAE;SAClC,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,UAAU,GAAG,MAAM,eAAe,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YACtC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,kCAAkC,CAAC,CAAC;QAC3E,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4FAA4F,EAAE,KAAK,IAAI,EAAE;QAC1G,MAAM,UAAU,GAAG,MAAM,eAAe,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,EAAE;aACd,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;aAC9B,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAElC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QACxB,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;QAE1D,MAAM,OAAO,CACX,GAAG,EAAE,CACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAChC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CACzC,EACH,qCAAqC,CACtC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,14 +1,10 @@
1
1
  /**
2
2
  * The hub session across a local coordinator handover (agent-comms#293), against a real relay hub. Every store holds its own hub session from init, so losing the coordinator, gracefully or abruptly, must neither cost a surviving store its session nor make another machine lose sight of it. This is the property the coordinator-only gateway lacked: reachability from another machine followed whichever store won the coordinator role.
3
3
  */
4
- import { randomInt } from "node:crypto";
5
4
  import { expect, test } from "vitest";
6
5
  import { MeshStore } from "../core/mesh-store.js";
7
- import { TeardownStack, realHubOverWs } from "./hub-helpers.js";
6
+ import { TeardownStack, freeLocalPort, realHubOverWs } from "./hub-helpers.js";
8
7
  import { waitFor, wireTestTransportWithHub } from "./test-transport.js";
9
- /** Start of this file's own reserved port band, clear of the other integration tests' bands. */
10
- const HUB_FAILOVER_PORT_RANGE_START = 21_900;
11
- const HUB_FAILOVER_PORT_RANGE_WIDTH = 300;
12
8
  /** Short enough that a re-advertised agent reaches the other machine within a test's own wait, unlike the production default. */
13
9
  const FAST_GOSSIP_INTERVAL_MS = 50;
14
10
  async function startNode(name, coordinatorPort, hubUrl, teardown) {
@@ -34,10 +30,10 @@ async function startNode(name, coordinatorPort, hubUrl, teardown) {
34
30
  async function startMachines(teardown) {
35
31
  const hub = await realHubOverWs();
36
32
  teardown.push(hub.close);
37
- const port = HUB_FAILOVER_PORT_RANGE_START + randomInt(HUB_FAILOVER_PORT_RANGE_WIDTH);
33
+ const port = await freeLocalPort();
38
34
  const first = await startNode("first", port, hub.url, teardown);
39
35
  const second = await startNode("second", port, hub.url, teardown);
40
- const remote = await startNode("remote", port + HUB_FAILOVER_PORT_RANGE_WIDTH, hub.url, teardown);
36
+ const remote = await startNode("remote", await freeLocalPort(), hub.url, teardown);
41
37
  first.store.addTrustedGateway(remote.store.peerId);
42
38
  second.store.addTrustedGateway(remote.store.peerId);
43
39
  remote.store.addTrustedGateway(second.store.peerId);
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator-failover-hub.integration.test.js","sourceRoot":"","sources":["../../src/test/coordinator-failover-hub.integration.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAExE,gGAAgG;AAChG,MAAM,6BAA6B,GAAG,MAAM,CAAC;AAC7C,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAE1C,iIAAiI;AACjI,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAOnC,KAAK,UAAU,SAAS,CACtB,IAAY,EACZ,eAAuB,EACvB,MAAc,EACd,QAAuB;IAEvB,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,wBAAwB,CAAC,KAAK,EAAE;QAC1D,6BAA6B,EAAE,uBAAuB;KACvD,CAAC,CAAC;IACH,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACnB,MAAM,KAAK,CAAC,aAAa,CAAC;QACxB,IAAI;QACJ,OAAO,EAAE,QAAQ,IAAI,EAAE;QACvB,GAAG,EAAE,SAAS,IAAI,EAAE;QACpB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QACvB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,CAAC;AAED,sMAAsM;AACtM,KAAK,UAAU,aAAa,CAAC,QAAuB;IAKlD,MAAM,GAAG,GAAG,MAAM,aAAa,EAAE,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,MAAM,IAAI,GACR,6BAA6B,GAAG,SAAS,CAAC,6BAA6B,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,QAAQ,EACR,IAAI,GAAG,6BAA6B,EACpC,GAAG,CAAC,GAAG,EACP,QAAQ,CACT,CAAC;IACF,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,OAAO,CACX,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EACzE,8CAA8C,CAC/C,CAAC;IACF,MAAM,OAAO,CACX,KAAK,IAAI,EAAE,CACT,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CACvD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,CAC5C,EACH,+EAA+E,CAChF,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACnC,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,MAAY,EAAE,OAAe;IACrD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClE,OAAO,MAAM,CAAC,IAAI,CAChB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAC9D,CAAC;AACJ,CAAC;AAED,IAAI,CAAC,8HAA8H,EAAE,KAAK,IAAI,EAAE;IAC9I,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEhE,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAE7B,MAAM,OAAO,CACX,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EACpC,wCAAwC,CACzC,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,OAAO,CACX,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EACnD,kDAAkD,CACnD,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yHAAyH,EAAE,KAAK,IAAI,EAAE;IACzI,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEhE,MAAM,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAEjC,MAAM,OAAO,CACX,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EACpC,mDAAmD,CACpD,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,OAAO,CACX,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EACnD,kDAAkD,CACnD,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"coordinator-failover-hub.integration.test.js","sourceRoot":"","sources":["../../src/test/coordinator-failover-hub.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,10 @@
1
1
  /**
2
2
  * Coordinator failover over real localhost sockets (agent-comms#285): several MeshStore instances, each on its own WireMeshTransport, with the coordinator's transport torn down abruptly (no handover, the way a killed process behaves) and again gracefully. Asserts what a survivor of either kind of loss actually ends up with -- a rebound coordinator port, a mesh a fresh store can still join, and no dead agent left listed as active. The decision logic these exercise is unit-tested against fakes in coordinator-failover.unit.test.ts.
3
3
  */
4
- import { randomInt } from "node:crypto";
5
4
  import { test, expect } from "vitest";
6
5
  import { MeshStore } from "../core/mesh-store.js";
7
- import { TeardownStack } from "./hub-helpers.js";
6
+ import { TeardownStack, freeLocalPort } from "./hub-helpers.js";
8
7
  import { waitFor, wireTestTransportWithHub } from "./test-transport.js";
9
- /** Start of this file's own reserved port band -- clear of the fixed literals sibling integration tests hardcode (19878-19897) and of mesh-e2e's own randomised band (20100-20999), so a random pick here can never collide with one of those. */
10
- const FAILOVER_PORT_RANGE_START = 21_100;
11
- /** Width of the reserved band, wide enough that two concurrent runs of this file picking the same port by chance is negligible. */
12
- const FAILOVER_PORT_RANGE_WIDTH = 700;
13
- function freshCoordinatorPort() {
14
- return FAILOVER_PORT_RANGE_START + randomInt(FAILOVER_PORT_RANGE_WIDTH);
15
- }
16
8
  /** Starts one real store on its own transport, joining (or creating) the mesh on coordinatorPort. No hubUrl is given, so the store never contacts a hub: these tests are about local coordinator election rather than cross-machine relaying. */
17
9
  async function startNode(name, coordinatorPort, teardown) {
18
10
  const store = new MeshStore({ coordinatorPort });
@@ -46,7 +38,7 @@ async function killWithoutHandover(node) {
46
38
  test("a survivor takes over the coordinator port after the coordinator is killed", async () => {
47
39
  const teardown = new TeardownStack();
48
40
  try {
49
- const port = freshCoordinatorPort();
41
+ const port = await freeLocalPort();
50
42
  const first = await startNode("first", port, teardown);
51
43
  const second = await startNode("second", port, teardown);
52
44
  await waitFor(() => second.transport.hasCoordinatorConnection, "second joined the mesh through the coordinator port");
@@ -65,7 +57,7 @@ test("a survivor takes over the coordinator port after the coordinator is killed
65
57
  test("a killed coordinator's agent stops being listed as active on every survivor", async () => {
66
58
  const teardown = new TeardownStack();
67
59
  try {
68
- const port = freshCoordinatorPort();
60
+ const port = await freeLocalPort();
69
61
  const first = await startNode("first", port, teardown);
70
62
  const second = await startNode("second", port, teardown);
71
63
  const third = await startNode("third", port, teardown);
@@ -82,7 +74,7 @@ test("a killed coordinator's agent stops being listed as active on every survivo
82
74
  test("exactly one of three peers wins the race for the vacated coordinator port", async () => {
83
75
  const teardown = new TeardownStack();
84
76
  try {
85
- const port = freshCoordinatorPort();
77
+ const port = await freeLocalPort();
86
78
  const first = await startNode("first", port, teardown);
87
79
  const second = await startNode("second", port, teardown);
88
80
  const third = await startNode("third", port, teardown);
@@ -108,7 +100,7 @@ test("exactly one of three peers wins the race for the vacated coordinator port"
108
100
  test("a graceful shutdown still hands the coordinator role to the longest-running peer", async () => {
109
101
  const teardown = new TeardownStack();
110
102
  try {
111
- const port = freshCoordinatorPort();
103
+ const port = await freeLocalPort();
112
104
  const first = await startNode("first", port, teardown);
113
105
  const second = await startNode("second", port, teardown);
114
106
  await waitFor(() => second.transport.hasCoordinatorConnection, "second joined the mesh through the coordinator port");
@@ -137,7 +129,7 @@ async function waitForStatus(node, agentId, status) {
137
129
  }
138
130
  }
139
131
  test("a running agent stays online everywhere when the mesh is told it is offline, as happens to a session the previous coordinator was fronting", async () => {
140
- const port = freshCoordinatorPort();
132
+ const port = await freeLocalPort();
141
133
  const teardown = new TeardownStack();
142
134
  try {
143
135
  const coordinator = await startNode("coordinator", port, teardown);
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator-failover.integration.test.js","sourceRoot":"","sources":["../../src/test/coordinator-failover.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinator-failover.integration.test.js","sourceRoot":"","sources":["../../src/test/coordinator-failover.integration.test.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,8 @@
7
7
  import * as net from "node:net";
8
8
  import { MeshStore } from "../core/mesh-store.js";
9
9
  import { test, expect } from "vitest";
10
+ import { freeLocalPort } from "./hub-helpers.js";
10
11
  import { wireTestTransport } from "./test-transport.js";
11
- const TEST_PORT = 19879;
12
12
  // Time to let the coordinator's event loop process the ECONNRESET error event before asserting the process survived it.
13
13
  const ERROR_PROCESSING_DELAY_MS = 300;
14
14
  /**
@@ -20,12 +20,13 @@ const ERROR_PROCESSING_DELAY_MS = 300;
20
20
  * error event on the socket → uncaught exception → process crash.
21
21
  */
22
22
  test("coordinator survives ECONNRESET on accepted socket", async () => {
23
- const store = new MeshStore({ coordinatorPort: TEST_PORT });
23
+ const port = await freeLocalPort();
24
+ const store = new MeshStore({ coordinatorPort: port });
24
25
  await wireTestTransport(store);
25
26
  await store.init();
26
27
  // Connect a raw socket to the coordinator port
27
28
  const socket = net.createConnection({
28
- port: TEST_PORT,
29
+ port,
29
30
  host: "127.0.0.1",
30
31
  });
31
32
  await new Promise((resolve) => {
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator-socket-error.integration.test.js","sourceRoot":"","sources":["../../src/test/coordinator-socket-error.integration.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,SAAS,GAAG,KAAK,CAAC;AAExB,wHAAwH;AACxH,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAEtC;;;;;;;GAOG;AACH,IAAI,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;IACpE,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5D,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IAEnB,+CAA+C;IAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC;QAClC,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;IAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,qEAAqE;IACrE,MAAM,CAAC,eAAe,EAAE,CAAC;IAEzB,kDAAkD;IAClD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5B,UAAU,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,uEAAuE;IACvE,wCAAwC;IACxC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,CACJ,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EACrB,kCAAkC,CACnC,CAAC,UAAU,EAAE,CAAC;IAEf,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"coordinator-socket-error.integration.test.js","sourceRoot":"","sources":["../../src/test/coordinator-socket-error.integration.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,wHAAwH;AACxH,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAEtC;;;;;;;GAOG;AACH,IAAI,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;IACpE,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IAEnB,+CAA+C;IAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC;QAClC,IAAI;QACJ,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;IAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,qEAAqE;IACrE,MAAM,CAAC,eAAe,EAAE,CAAC;IAEzB,kDAAkD;IAClD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5B,UAAU,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,uEAAuE;IACvE,wCAAwC;IACxC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,CACJ,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EACrB,kCAAkC,CACnC,CAAC,UAAU,EAAE,CAAC;IAEf,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC"}
@@ -7,11 +7,7 @@ import { test, expect } from "vitest";
7
7
  import { MeshStore } from "../core/mesh-store.js";
8
8
  import { dmRoomPath } from "../core/room-path.js";
9
9
  import { waitFor, wireTestTransport } from "./test-transport.js";
10
- let nextPort = 20_950;
11
- function freshPort() {
12
- nextPort += 1;
13
- return nextPort;
14
- }
10
+ import { freeLocalPort } from "./hub-helpers.js";
15
11
  async function makeConnectedPair(port) {
16
12
  const a = new MeshStore({ coordinatorPort: port });
17
13
  await wireTestTransport(a);
@@ -39,7 +35,7 @@ async function makeConnectedPair(port) {
39
35
  return { a, b };
40
36
  }
41
37
  test("A's DM request holds open for B's decision; B's reply back auto-approves", async () => {
42
- const { a, b } = await makeConnectedPair(freshPort());
38
+ const { a, b } = await makeConnectedPair(await freeLocalPort());
43
39
  try {
44
40
  const dmPath = dmRoomPath(a.peerId, b.peerId);
45
41
  // A initiates: held open on B's side until a human decides.
@@ -61,7 +57,7 @@ test("A's DM request holds open for B's decision; B's reply back auto-approves",
61
57
  }
62
58
  });
63
59
  test("an unsolicited DM request (no prior outbound request) still needs a human decision", async () => {
64
- const { a, b } = await makeConnectedPair(freshPort());
60
+ const { a, b } = await makeConnectedPair(await freeLocalPort());
65
61
  try {
66
62
  const dmPath = dmRoomPath(a.peerId, b.peerId);
67
63
  const requestPromise = b.requestDmAccess(a.peerId);
@@ -78,7 +74,7 @@ test("an unsolicited DM request (no prior outbound request) still needs a human
78
74
  }
79
75
  });
80
76
  test("a rejected DM request throws, and never auto-approves the reciprocal reply", async () => {
81
- const { a, b } = await makeConnectedPair(freshPort());
77
+ const { a, b } = await makeConnectedPair(await freeLocalPort());
82
78
  try {
83
79
  const dmPath = dmRoomPath(a.peerId, b.peerId);
84
80
  const aRequestPromise = a.requestDmAccess(b.peerId);