agent-comms 2.9.0 → 2.10.0

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 (37) 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/core/mesh-store.d.ts +26 -2
  5. package/dist/core/mesh-store.d.ts.map +1 -1
  6. package/dist/core/mesh-store.js +143 -24
  7. package/dist/core/mesh-store.js.map +1 -1
  8. package/dist/test/delivery-receipt.helper.js +44 -10
  9. package/dist/test/delivery-receipt.helper.js.map +1 -1
  10. package/dist/test/identity-restart.integration.test.js +18 -2
  11. package/dist/test/identity-restart.integration.test.js.map +1 -1
  12. package/dist/test/invite-replay.test.d.ts +5 -0
  13. package/dist/test/invite-replay.test.d.ts.map +1 -0
  14. package/dist/test/invite-replay.test.js +67 -0
  15. package/dist/test/invite-replay.test.js.map +1 -0
  16. package/dist/test/mesh-e2e.integration.test.js +20 -4
  17. package/dist/test/mesh-e2e.integration.test.js.map +1 -1
  18. package/dist/test/mesh-smoke.runner.js +15 -1
  19. package/dist/test/mesh-smoke.runner.js.map +1 -1
  20. package/dist/test/room-send-retry-queue.test.d.ts +5 -0
  21. package/dist/test/room-send-retry-queue.test.d.ts.map +1 -0
  22. package/dist/test/room-send-retry-queue.test.js +142 -0
  23. package/dist/test/room-send-retry-queue.test.js.map +1 -0
  24. package/dist/test/room-send-retry.integration.test.d.ts +5 -0
  25. package/dist/test/room-send-retry.integration.test.d.ts.map +1 -0
  26. package/dist/test/{downtime-replay.integration.test.js → room-send-retry.integration.test.js} +16 -21
  27. package/dist/test/room-send-retry.integration.test.js.map +1 -0
  28. package/dist/test/state-sync-convergence.test.js +23 -1
  29. package/dist/test/state-sync-convergence.test.js.map +1 -1
  30. package/package.json +2 -2
  31. package/dist/test/downtime-replay.integration.test.d.ts +0 -7
  32. package/dist/test/downtime-replay.integration.test.d.ts.map +0 -1
  33. package/dist/test/downtime-replay.integration.test.js.map +0 -1
  34. package/dist/test/downtime-replay.test.d.ts +0 -5
  35. package/dist/test/downtime-replay.test.d.ts.map +0 -1
  36. package/dist/test/downtime-replay.test.js +0 -156
  37. package/dist/test/downtime-replay.test.js.map +0 -1
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Unit test for invite replay (#28): a pending room invite that accumulated in a peer's delivery queue while its target's process was down fires onDelivery when the target applies its first snapshot, without transport involvement, and stops replaying once the invite is consumed (accepted or declined). Split out of downtime-replay.test.ts, whose own other two tests covered room_message replay via applyStateSync/deliveryQueues -- machinery P3.5's directed room.send fan-out no longer uses for message delivery (see room-send-retry.integration.test.ts for that behaviour's own replacement). Invite delivery itself is untouched by that migration: room.invite's own receiving side is still P3.6 work, so this legacy replay path remains the real mechanism for it today.
3
+ */
4
+ import * as assert from "node:assert/strict";
5
+ import { test } from "node:test";
6
+ import { MeshStore } from "../core/mesh-store.js";
7
+ import { ownerNamedRoomPath } from "../core/room-path.js";
8
+ import { wireTestTransport } from "./test-transport.js";
9
+ /** A wire-accurate snapshot: production always applies parsed (cloned) state. */
10
+ function snapshotOf(store) {
11
+ return structuredClone(store.serialise());
12
+ }
13
+ /** A local-only store: transport is set (registerAgent's own broadcastPatch needs one) but never started, so no ports and no flake -- the stores in these tests never actually connect. */
14
+ async function makeStore() {
15
+ const store = new MeshStore();
16
+ await wireTestTransport(store);
17
+ return store;
18
+ }
19
+ void test("a pending invite replays until accepted or declined", async () => {
20
+ const sender = await makeStore();
21
+ const author = await sender.registerAgent({
22
+ name: "owner",
23
+ harness: "pi",
24
+ cwd: "/tmp/p",
25
+ pid: process.pid,
26
+ visibility: "visible",
27
+ tags: [],
28
+ });
29
+ const target = await makeStore();
30
+ const targetAgent = await target.registerAgent({
31
+ name: "invitee",
32
+ harness: "claude-code",
33
+ cwd: "/tmp/t",
34
+ pid: process.pid,
35
+ visibility: "visible",
36
+ tags: [],
37
+ });
38
+ sender.applyStateSync(target.serialise());
39
+ const roomId = ownerNamedRoomPath(author.id, "private-room");
40
+ await sender.createRoom({
41
+ name: "private-room",
42
+ type: "private",
43
+ owner: author.id,
44
+ description: "x",
45
+ });
46
+ await sender.inviteToRoom(roomId, targetAgent.id, author.id);
47
+ const returned = await makeStore();
48
+ const deliveries = [];
49
+ returned.onDelivery = (_id, ev) => {
50
+ deliveries.push(ev);
51
+ };
52
+ returned.peerId = targetAgent.id;
53
+ // Still on the invited list: the invite replays.
54
+ returned.applyStateSync(snapshotOf(sender));
55
+ assert.equal(deliveries.filter((ev) => ev.type === "room_invite").length, 1);
56
+ // Declined (no longer invited): the same snapshot no longer replays it.
57
+ await sender.declineInvite(roomId, targetAgent.id, "not now");
58
+ const declined = await makeStore();
59
+ const deliveries2 = [];
60
+ declined.onDelivery = (_id, ev) => {
61
+ deliveries2.push(ev);
62
+ };
63
+ declined.peerId = targetAgent.id;
64
+ declined.applyStateSync(snapshotOf(sender));
65
+ assert.equal(deliveries2.filter((ev) => ev.type === "room_invite").length, 0);
66
+ });
67
+ //# sourceMappingURL=invite-replay.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invite-replay.test.js","sourceRoot":"","sources":["../../src/test/invite-replay.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,iFAAiF;AACjF,SAAS,UAAU,CAAC,KAAgB;IAClC,OAAO,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,2LAA2L;AAC3L,KAAK,UAAU,SAAS;IACtB,MAAM,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;IAC9B,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,IAAI,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;IAC1E,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;QACxC,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;QAC7C,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,aAAa;QACtB,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IAC7D,MAAM,MAAM,CAAC,UAAU,CAAC;QACtB,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,MAAM,CAAC,EAAE;QAChB,WAAW,EAAE,GAAG;KACjB,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAG,MAAM,SAAS,EAAE,CAAC;IACnC,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,QAAQ,CAAC,UAAU,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAChC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC,CAAC;IACF,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;IAEjC,iDAAiD;IACjD,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAE7E,wEAAwE;IACxE,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,MAAM,SAAS,EAAE,CAAC;IACnC,MAAM,WAAW,GAAoB,EAAE,CAAC;IACxC,QAAQ,CAAC,UAAU,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAChC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC;IACF,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAChF,CAAC,CAAC,CAAC"}
@@ -8,7 +8,7 @@ import { MeshStore } from "../core/mesh-store.js";
8
8
  import { CommsTool } from "../core/tool.js";
9
9
  import { buildAction } from "../core/bridge.js";
10
10
  import * as assert from "node:assert/strict";
11
- import { wireTestTransport } from "./test-transport.js";
11
+ import { waitFor, wireTestTransport } from "./test-transport.js";
12
12
  const E2E_PORT = 19878;
13
13
  async function createStore(name, harness) {
14
14
  const store = new MeshStore(E2E_PORT);
@@ -65,9 +65,14 @@ async function main() {
65
65
  const roomsB = await b.store.listRooms(b.store.peerId);
66
66
  console.log(` B sees ${String(roomsB.length)} room(s)`);
67
67
  assert.ok(roomsB.length >= 1, "B should see the room");
68
- // --- Test: B joins room ---
68
+ // --- Test: B joins room --- The room already replicated to B via legacy full-state-sync, but knowing about a room is not the same as holding a room:member token for it -- B's own join still goes through real wire-level admission, held open until A approves it.
69
69
  console.log("Test: B joins room...");
70
- await b.store.joinRoom(room.id, b.store.peerId);
70
+ const joinPromise = b.store.joinRoom(room.id, b.store.peerId);
71
+ await waitFor(() => a.store
72
+ .listPendingRoomJoins()
73
+ .some((p) => p.roomPath === room.id && p.requesterId === b.store.peerId), "A to see B's pending join request");
74
+ a.store.acceptRoomJoin(room.id, b.store.peerId);
75
+ await joinPromise;
71
76
  await sleep(200);
72
77
  // --- Test: room membership visible on both sides ---
73
78
  console.log("Test: room membership on A and B...");
@@ -88,7 +93,18 @@ async function main() {
88
93
  assert.ok(roomMsg);
89
94
  assert.strictEqual(roomMsg.type, "room_message");
90
95
  assert.strictEqual(roomMsg.message.content, "Hello from A!");
91
- // --- Test: DM from A to B ---
96
+ // --- Test: DM from A to B --- The two-round DM consent flow (section 6): A's own outbound room.join is what authorises the DM, and B (the party contacted first) still needs a human decision.
97
+ console.log("Test: A requests DM access from B...");
98
+ const dmAccessPromise = a.store.requestDmAccess(b.store.peerId);
99
+ await waitFor(() => b.store
100
+ .listPendingRoomJoins()
101
+ .some((p) => p.requesterId === a.store.peerId), "B to see A's pending DM request");
102
+ const pendingDm = b.store
103
+ .listPendingRoomJoins()
104
+ .find((p) => p.requesterId === a.store.peerId);
105
+ assert.ok(pendingDm);
106
+ b.store.acceptRoomJoin(pendingDm.roomPath, a.store.peerId);
107
+ await dmAccessPromise;
92
108
  console.log("Test: DM from A to B...");
93
109
  b.deliveries.length = 0;
94
110
  await a.store.sendDm(a.store.peerId, b.store.peerId, "Hey B!");
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-e2e.integration.test.js","sourceRoot":"","sources":["../../src/test/mesh-e2e.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mesh-e2e.integration.test.js","sourceRoot":"","sources":["../../src/test/mesh-e2e.integration.test.ts"],"names":[],"mappings":"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"}
@@ -179,7 +179,21 @@ async function main() {
179
179
  ` description: "Smoke test room",`,
180
180
  `});`,
181
181
  `log({ type: "room_created", data: { id: room.id } });`,
182
- `await new Promise(r => setTimeout(r, 1500));`,
182
+ // B's own join is a real, admitted wire-level room.join -- A (the room's owner) must accept it before B can ever hold a working room:member token, so this polls for and accepts the request rather than assuming legacy replication alone made B a member. acceptRoomJoin only resolves the held-open request's own promise; its continuation (minting the token, updating this room's own membership) runs on a later tick, so this also waits for that membership update to actually land before sending -- otherwise sendRoomMessage's own fan-out reads room.members before admitRoomJoin has added B to it.
183
+ `for (let i = 0; i < 20; i++) {`,
184
+ ` const pending = store.listPendingRoomJoins();`,
185
+ ` if (pending.some(p => p.roomPath === room.id)) {`,
186
+ ` store.acceptRoomJoin(room.id, pending.find(p => p.roomPath === room.id).requesterId);`,
187
+ ` log({ type: "accepted_join", data: { room: room.id } });`,
188
+ ` break;`,
189
+ ` }`,
190
+ ` await new Promise(r => setTimeout(r, 100));`,
191
+ `}`,
192
+ `for (let i = 0; i < 20; i++) {`,
193
+ ` const current = await store.getRoom(room.id);`,
194
+ ` if (current && current.members.length >= 2) break;`,
195
+ ` await new Promise(r => setTimeout(r, 100));`,
196
+ `}`,
183
197
  `await store.sendRoomMessage(room.id, agent.id, "Hello from A!");`,
184
198
  `log({ type: "sent", data: { room: room.id } });`,
185
199
  ].join("\n "));
@@ -1 +1 @@
1
- {"version":3,"file":"mesh-smoke.runner.js","sourceRoot":"","sources":["../../src/test/mesh-smoke.runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mesh-smoke.runner.js","sourceRoot":"","sources":["../../src/test/mesh-smoke.runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Unit tests for the directed room.send fan-out's own retry queue (P3.5): a send that fails because its target member isn't currently reachable is queued rather than thrown or dropped, and retried the moment that member's connection is (re)established -- handlePeerConnected fires for exactly that event, so these tests trigger it directly via store.events.onPeerConnected rather than driving a real second peer (see room-send-retry.integration.test.ts for the real, two-peer version of this same acceptance behaviour).
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=room-send-retry-queue.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room-send-retry-queue.test.d.ts","sourceRoot":"","sources":["../../src/test/room-send-retry-queue.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Unit tests for the directed room.send fan-out's own retry queue (P3.5): a send that fails because its target member isn't currently reachable is queued rather than thrown or dropped, and retried the moment that member's connection is (re)established -- handlePeerConnected fires for exactly that event, so these tests trigger it directly via store.events.onPeerConnected rather than driving a real second peer (see room-send-retry.integration.test.ts for the real, two-peer version of this same acceptance behaviour).
3
+ */
4
+ import * as assert from "node:assert/strict";
5
+ import { test } from "node:test";
6
+ import { MeshStore } from "../core/mesh-store.js";
7
+ import { deleteRoomToken } from "../core/identity-store.js";
8
+ import { waitFor, wireTestTransport } from "./test-transport.js";
9
+ const MEMBER_ID = "b".repeat(64);
10
+ const QUEUE_CAP = 100;
11
+ /** A MeshTransport whose sendRoomRequest always fails until told otherwise -- flippable mid-test to simulate the member becoming reachable, and recording every attempt made against it (including retries) so a test can assert exactly which sends were retried. */
12
+ function fakeTransport() {
13
+ let connected = false;
14
+ const attempts = [];
15
+ const transport = {
16
+ dataPort: 0,
17
+ isCoordinator: false,
18
+ hasCoordinatorConnection: false,
19
+ startDataServer: async () => { },
20
+ connectToCoordinator: async () => { },
21
+ becomeCoordinator: async () => { },
22
+ connectToPeer: async () => { },
23
+ send: async () => { },
24
+ acceptConnection: async () => { },
25
+ rejectConnection: async () => { },
26
+ connectToRemote: async () => { },
27
+ broadcast: async () => { },
28
+ sendRoomRequest: async (_memberId, command) => {
29
+ attempts.push(command.params);
30
+ if (!connected) {
31
+ return { result: "error", code: "not_connected" };
32
+ }
33
+ return { result: "ok" };
34
+ },
35
+ addListener: async () => "id",
36
+ removeListener: async () => { },
37
+ listListeners: () => [],
38
+ shutdown: async () => { },
39
+ unref: () => { },
40
+ };
41
+ return {
42
+ transport,
43
+ attempts,
44
+ setConnected: (value) => {
45
+ connected = value;
46
+ },
47
+ };
48
+ }
49
+ void test("a room.send to an unreachable member is queued and retried once it reconnects", async () => {
50
+ const store = new MeshStore();
51
+ await wireTestTransport(store);
52
+ const owner = await store.registerAgent({
53
+ name: "owner",
54
+ harness: "pi",
55
+ cwd: "/tmp/p",
56
+ pid: process.pid,
57
+ visibility: "visible",
58
+ tags: [],
59
+ });
60
+ const room = await store.createRoom({
61
+ name: "general",
62
+ type: "public",
63
+ owner: owner.id,
64
+ description: "",
65
+ });
66
+ await store.joinRoom(room.id, MEMBER_ID);
67
+ const { transport, attempts, setConnected } = fakeTransport();
68
+ store.setTransport(transport);
69
+ await store.sendRoomMessage(room.id, owner.id, "hello");
70
+ assert.equal(attempts.length, 1, "the first, failed attempt was made");
71
+ setConnected(true);
72
+ store.events.onPeerConnected({ id: MEMBER_ID }, { id: MEMBER_ID, port: 0, startedAt: new Date().toISOString() });
73
+ await waitFor(() => attempts.length === 2, "the queued send to retry once the member reconnects");
74
+ });
75
+ void test("the retry queue is bounded oldest-first per member", async () => {
76
+ const store = new MeshStore();
77
+ await wireTestTransport(store);
78
+ const owner = await store.registerAgent({
79
+ name: "owner",
80
+ harness: "pi",
81
+ cwd: "/tmp/p",
82
+ pid: process.pid,
83
+ visibility: "visible",
84
+ tags: [],
85
+ });
86
+ const room = await store.createRoom({
87
+ name: "general",
88
+ type: "public",
89
+ owner: owner.id,
90
+ description: "",
91
+ });
92
+ await store.joinRoom(room.id, MEMBER_ID);
93
+ const { transport, attempts, setConnected } = fakeTransport();
94
+ store.setTransport(transport);
95
+ const overflow = 20;
96
+ for (let i = 0; i < QUEUE_CAP + overflow; i++) {
97
+ await store.sendRoomMessage(room.id, owner.id, `msg-${String(i)}`);
98
+ }
99
+ assert.equal(attempts.length, QUEUE_CAP + overflow);
100
+ attempts.length = 0;
101
+ setConnected(true);
102
+ store.events.onPeerConnected({ id: MEMBER_ID }, { id: MEMBER_ID, port: 0, startedAt: new Date().toISOString() });
103
+ await waitFor(() => attempts.length === QUEUE_CAP, "exactly the cap's worth of retries to fire");
104
+ function textOf(params) {
105
+ if (typeof params !== "object" || params === null)
106
+ return undefined;
107
+ if (!("text" in params))
108
+ return undefined;
109
+ return typeof params.text === "string" ? params.text : undefined;
110
+ }
111
+ assert.equal(textOf(attempts[0]), `msg-${String(overflow)}`);
112
+ assert.equal(textOf(attempts[attempts.length - 1]), `msg-${String(QUEUE_CAP + overflow - 1)}`);
113
+ });
114
+ void test("a flush drops (not re-queues) a send whose room this store no longer holds a token for", async () => {
115
+ const store = new MeshStore();
116
+ const slot = await wireTestTransport(store);
117
+ const owner = await store.registerAgent({
118
+ name: "owner",
119
+ harness: "pi",
120
+ cwd: "/tmp/p",
121
+ pid: process.pid,
122
+ visibility: "visible",
123
+ tags: [],
124
+ });
125
+ const room = await store.createRoom({
126
+ name: "general",
127
+ type: "public",
128
+ owner: owner.id,
129
+ description: "",
130
+ });
131
+ await store.joinRoom(room.id, MEMBER_ID);
132
+ const { transport, attempts } = fakeTransport();
133
+ store.setTransport(transport);
134
+ await store.sendRoomMessage(room.id, owner.id, "hello");
135
+ assert.equal(attempts.length, 1);
136
+ deleteRoomToken(slot, room.id);
137
+ store.events.onPeerConnected({ id: MEMBER_ID }, { id: MEMBER_ID, port: 0, startedAt: new Date().toISOString() });
138
+ // No token to present -- give the flush a moment to run, then confirm it made no further attempt.
139
+ await new Promise((resolve) => setTimeout(resolve, 50));
140
+ assert.equal(attempts.length, 1);
141
+ });
142
+ //# sourceMappingURL=room-send-retry-queue.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room-send-retry-queue.test.js","sourceRoot":"","sources":["../../src/test/room-send-retry-queue.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Integration test for issue #28's own acceptance behaviour, re-verified against P3.5's directed fan-out: a room message sent while its recipient is offline must still reach the recipient once it reconnects. Unlike the legacy full-state-sync this replaces, a directed room.send to a disconnected member fails immediately rather than eventually converging, so the fan-out queues it for retry (pendingRoomSends) and flushes that queue the moment the member's connection is (re)established (handlePeerConnected). Replaces downtime-replay.integration.test.ts, whose own scenario relied on deliveryQueues/applyStateSync -- machinery this fan-out no longer uses for message delivery.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=room-send-retry.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room-send-retry.integration.test.d.ts","sourceRoot":"","sources":["../../src/test/room-send-retry.integration.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,7 +1,5 @@
1
1
  /**
2
- * Integration test for issue #28: a bridge restarted with a persisted identity must be push-delivered the events that accumulated while its process was down, not just find them in synced history.
3
- *
4
- * Peer B goes away; A sends a room message while B is down; B restarts in the same identity slot and must fire onDelivery for the missed message.
2
+ * Integration test for issue #28's own acceptance behaviour, re-verified against P3.5's directed fan-out: a room message sent while its recipient is offline must still reach the recipient once it reconnects. Unlike the legacy full-state-sync this replaces, a directed room.send to a disconnected member fails immediately rather than eventually converging, so the fan-out queues it for retry (pendingRoomSends) and flushes that queue the moment the member's connection is (re)established (handlePeerConnected). Replaces downtime-replay.integration.test.ts, whose own scenario relied on deliveryQueues/applyStateSync -- machinery this fan-out no longer uses for message delivery.
5
3
  */
6
4
  import * as assert from "node:assert/strict";
7
5
  import * as fs from "node:fs";
@@ -15,7 +13,7 @@ import { WireMeshTransport } from "../core/wire-mesh-transport.js";
15
13
  import { loadOrCreateIdentity, releaseIdentityLock, } from "../core/identity-store.js";
16
14
  import { toIdentityPort } from "../core/wire-mesh-identity.js";
17
15
  import { ownerNamedRoomPath } from "../core/room-path.js";
18
- const TEST_PORT = 19896;
16
+ const TEST_PORT = 19897;
19
17
  const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
20
18
  /** A peer wired like a real bridge: WireMeshTransport, device-id peer ID, and a persisted identity slot so createRoom can mint and persist the owner's own room:member grant. */
21
19
  async function makePeer(identity, slot) {
@@ -41,12 +39,12 @@ async function waitFor(what, check) {
41
39
  assert.ok(false, `timed out waiting for ${what}`);
42
40
  }
43
41
  async function main() {
44
- const dir = fs.mkdtempSync(path.join(tmpdir(), "agent-comms-downtime-"));
42
+ const dir = fs.mkdtempSync(path.join(tmpdir(), "agent-comms-send-retry-"));
45
43
  const slot = { harness: "pi", cwd: "/tmp/project", dir };
46
44
  const slotA = {
47
45
  harness: "claude-code",
48
46
  cwd: "/tmp/a",
49
- dir: fs.mkdtempSync(path.join(tmpdir(), "agent-comms-downtime-a-")),
47
+ dir: fs.mkdtempSync(path.join(tmpdir(), "agent-comms-send-retry-a-")),
50
48
  };
51
49
  // A is a normal ephemeral bridge that stays up throughout.
52
50
  const a = await makePeer(loadOrCreateIdentity(slotA), slotA);
@@ -67,7 +65,7 @@ async function main() {
67
65
  description: "issue 28 acceptance",
68
66
  });
69
67
  await sleep(200);
70
- // B joins with a persisted identity and becomes a room member.
68
+ // B joins with a persisted identity and becomes a room member -- a real admitted join, since the room already replicating to B via legacy full-state-sync says nothing about B holding a room:member token for it.
71
69
  const identityB = loadOrCreateIdentity(slot);
72
70
  const b1 = await makePeer(identityB, slot);
73
71
  await b1.store.init();
@@ -81,22 +79,19 @@ async function main() {
81
79
  visibility: "visible",
82
80
  tags: [],
83
81
  });
84
- await waitFor("the room to reach the joiner", async () => {
85
- const rooms = await b1.store.listRooms(b1.store.peerId);
86
- return rooms.some((room) => room.id === roomId);
87
- });
88
- await b1.store.joinRoom(roomId, b1.store.peerId);
89
- await waitFor("membership to reach the sender", async () => {
90
- const room = await a.store.getRoom(roomId);
91
- return room?.members.includes(b1.store.peerId) === true;
92
- });
82
+ const joinPromise = b1.store.joinRoom(roomId, b1.store.peerId);
83
+ await waitFor("A to see B's pending join request", async () => Promise.resolve(a.store
84
+ .listPendingRoomJoins()
85
+ .some((p) => p.roomPath === roomId && p.requesterId === b1.store.peerId)));
86
+ a.store.acceptRoomJoin(roomId, b1.store.peerId);
87
+ await joinPromise;
93
88
  // B goes down.
94
89
  await b1.store.shutdown();
95
90
  await sleep(200);
96
- // A sends a room message while B is down.
91
+ // A sends a room message while B is down: the directed send to B fails immediately (B isn't connected), so it's queued for retry rather than thrown or silently dropped.
97
92
  await a.store.sendRoomMessage(roomId, a.store.peerId, "while you were down");
98
93
  await sleep(200);
99
- // B restarts in the same slot: same identity, same agent ID.
94
+ // B restarts in the same slot: same identity, same agent ID, same persisted room:member token -- the queued send retries the moment the reconnection to A completes.
100
95
  const identityB2 = loadOrCreateIdentity(slot);
101
96
  assert.equal(deviceIdToHex(Uint8Array.from(identityB2.deviceId)), deviceIdToHex(Uint8Array.from(identityB.deviceId)));
102
97
  const b2 = await makePeer(identityB2, slot);
@@ -112,13 +107,13 @@ async function main() {
112
107
  visibility: "visible",
113
108
  tags: [],
114
109
  });
115
- // The message sent during downtime must push to the restarted bridge.
110
+ // The message sent during downtime must push to the restarted bridge, once A's own pendingRoomSends queue flushes against the new connection.
116
111
  await waitFor("the downtime message to push to the restarted bridge", async () => b2.deliveries.some((ev) => ev.type === "room_message" &&
117
112
  ev.message.content === "while you were down"));
118
113
  await b2.store.shutdown();
119
114
  await a.store.shutdown();
120
115
  releaseIdentityLock(slot);
121
- console.log("✓ downtime messages push-deliver on restart");
116
+ console.log("✓ a queued room.send retries and delivers on reconnect");
122
117
  }
123
118
  main().catch((err) => {
124
119
  console.error("Test failed:", err);
@@ -126,4 +121,4 @@ main().catch((err) => {
126
121
  // The sequence above keeps mesh handles open when it fails partway; exit explicitly so a failure cannot hang the runner.
127
122
  process.exit(1);
128
123
  });
129
- //# sourceMappingURL=downtime-replay.integration.test.js.map
124
+ //# sourceMappingURL=room-send-retry.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room-send-retry.integration.test.js","sourceRoot":"","sources":["../../src/test/room-send-retry.integration.test.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,13 @@
5
5
  */
6
6
  import * as assert from "node:assert/strict";
7
7
  import { test } from "node:test";
8
+ import { deviceIdFromHex } from "wire-mesh-core/domain/device-id";
9
+ import { createSystemClock } from "wire-mesh-core/adapters/system-clock";
10
+ import { mintCapabilityToken } from "wire-mesh-core/domain/tokens";
8
11
  import { MeshStore } from "../core/mesh-store.js";
9
12
  import { ownerNamedRoomPath } from "../core/room-path.js";
13
+ import { loadOrCreateIdentity, saveRoomToken } from "../core/identity-store.js";
14
+ import { toIdentityPort } from "../core/wire-mesh-identity.js";
10
15
  import { wireTestTransport } from "./test-transport.js";
11
16
  /** A local-only store: transport is set (registerAgent's own broadcastPatch needs one) but never started, so no ports and no flake -- the stores in these tests never actually connect. */
12
17
  async function makeStore() {
@@ -63,7 +68,8 @@ void test("a current holder rejects a stale snapshot instead of regressing", asy
63
68
  });
64
69
  void test("room membership changes converge and stale member lists are rejected", async () => {
65
70
  const a = await makeStore();
66
- const b = await makeStore();
71
+ const b = new MeshStore();
72
+ const bSlot = await wireTestTransport(b);
67
73
  const owner = await a.registerAgent({
68
74
  name: "owner",
69
75
  harness: "pi",
@@ -91,6 +97,22 @@ void test("room membership changes converge and stale member lists are rejected"
91
97
  a.applyStateSync(snapshotOf(b));
92
98
  b.applyStateSync(snapshotOf(a));
93
99
  assert.equal((await a.getRoom(roomId))?.members.includes(joiner.id), false);
100
+ // joiner.id is B's own peerId (registerAgent's own id is always this.peerId), so this is a real self-join as far as joinRoom's own admission gate is concerned -- give B a token for the room first so the gate sees an already-admitted member and exercises the CRDT membership-merge logic this test actually targets, not a real (and here, transport-free, therefore impossible) wire-level join.
101
+ const bClock = createSystemClock();
102
+ const bIdentity = await toIdentityPort(loadOrCreateIdentity(bSlot));
103
+ const grantVerdict = await mintCapabilityToken({
104
+ identity: bIdentity,
105
+ clock: bClock,
106
+ tokenId: new Uint8Array([1]),
107
+ bearer: deviceIdFromHex(joiner.id),
108
+ capability: "room:member",
109
+ scope: { kind: "room", path: roomId },
110
+ expires: bClock.now() + 60_000,
111
+ delegationsRemaining: 0,
112
+ });
113
+ assert.ok(grantVerdict.ok, "expected the fixture grant to mint successfully");
114
+ if (grantVerdict.ok)
115
+ saveRoomToken(bSlot, roomId, grantVerdict.token);
94
116
  await b.joinRoom(roomId, joiner.id);
95
117
  a.applyStateSync(snapshotOf(b));
96
118
  assert.equal((await a.getRoom(roomId))?.members.includes(joiner.id), true);
@@ -1 +1 @@
1
- {"version":3,"file":"state-sync-convergence.test.js","sourceRoot":"","sources":["../../src/test/state-sync-convergence.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-sync-convergence.test.js","sourceRoot":"","sources":["../../src/test/state-sync-convergence.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-comms",
3
- "version": "2.9.0",
3
+ "version": "2.10.0",
4
4
  "description": "Cross-harness communication mesh for LLM agents — rooms, DMs, presence, and real-time push delivery over TCP",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@10.33.0",
@@ -97,7 +97,7 @@
97
97
  "cbor2": "2.3.0",
98
98
  "preact": "10.29.7",
99
99
  "typebox": "1.3.6",
100
- "wire-mesh-core": "1.0.3",
100
+ "wire-mesh-core": "1.1.0",
101
101
  "ws": "8.21.1",
102
102
  "zod": "4.4.3"
103
103
  },