agent-comms 2.8.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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +1 -1
- package/dist/core/bridge-mesh.d.ts.map +1 -1
- package/dist/core/bridge-mesh.js +3 -0
- package/dist/core/bridge-mesh.js.map +1 -1
- package/dist/core/mesh-store.d.ts +35 -1
- package/dist/core/mesh-store.d.ts.map +1 -1
- package/dist/core/mesh-store.js +202 -17
- package/dist/core/mesh-store.js.map +1 -1
- package/dist/core/random-id.d.ts +3 -0
- package/dist/core/random-id.d.ts.map +1 -0
- package/dist/core/random-id.js +7 -0
- package/dist/core/random-id.js.map +1 -0
- package/dist/test/delivery-receipt.helper.js +44 -10
- package/dist/test/delivery-receipt.helper.js.map +1 -1
- package/dist/test/identity-restart.integration.test.js +20 -2
- package/dist/test/identity-restart.integration.test.js.map +1 -1
- package/dist/test/invite-replay.test.d.ts +5 -0
- package/dist/test/invite-replay.test.d.ts.map +1 -0
- package/dist/test/invite-replay.test.js +67 -0
- package/dist/test/invite-replay.test.js.map +1 -0
- package/dist/test/mesh-e2e.integration.test.js +20 -4
- package/dist/test/mesh-e2e.integration.test.js.map +1 -1
- package/dist/test/mesh-smoke.runner.js +18 -3
- package/dist/test/mesh-smoke.runner.js.map +1 -1
- package/dist/test/random-id.test.d.ts +2 -0
- package/dist/test/random-id.test.d.ts.map +1 -0
- package/dist/test/{token-id.test.js → random-id.test.js} +6 -6
- package/dist/test/random-id.test.js.map +1 -0
- package/dist/test/room-join-admission.test.js +2 -0
- package/dist/test/room-join-admission.test.js.map +1 -1
- package/dist/test/room-send-directed.integration.test.d.ts +7 -0
- package/dist/test/room-send-directed.integration.test.d.ts.map +1 -0
- package/dist/test/room-send-directed.integration.test.js +133 -0
- package/dist/test/room-send-directed.integration.test.js.map +1 -0
- package/dist/test/room-send-retry-queue.test.d.ts +5 -0
- package/dist/test/room-send-retry-queue.test.d.ts.map +1 -0
- package/dist/test/room-send-retry-queue.test.js +142 -0
- package/dist/test/room-send-retry-queue.test.js.map +1 -0
- package/dist/test/room-send-retry.integration.test.d.ts +5 -0
- package/dist/test/room-send-retry.integration.test.d.ts.map +1 -0
- package/dist/test/{downtime-replay.integration.test.js → room-send-retry.integration.test.js} +18 -21
- package/dist/test/room-send-retry.integration.test.js.map +1 -0
- package/dist/test/state-sync-convergence.test.js +23 -1
- package/dist/test/state-sync-convergence.test.js.map +1 -1
- package/dist/test/test-transport.d.ts.map +1 -1
- package/dist/test/test-transport.js +2 -0
- package/dist/test/test-transport.js.map +1 -1
- package/package.json +2 -2
- package/dist/core/token-id.d.ts +0 -3
- package/dist/core/token-id.d.ts.map +0 -1
- package/dist/core/token-id.js +0 -7
- package/dist/core/token-id.js.map +0 -1
- package/dist/test/downtime-replay.integration.test.d.ts +0 -7
- package/dist/test/downtime-replay.integration.test.d.ts.map +0 -1
- package/dist/test/downtime-replay.integration.test.js.map +0 -1
- package/dist/test/downtime-replay.test.d.ts +0 -5
- package/dist/test/downtime-replay.test.d.ts.map +0 -1
- package/dist/test/downtime-replay.test.js +0 -156
- package/dist/test/downtime-replay.test.js.map +0 -1
- package/dist/test/token-id.test.d.ts +0 -2
- package/dist/test/token-id.test.d.ts.map +0 -1
- package/dist/test/token-id.test.js.map +0 -1
|
@@ -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"}
|
package/dist/test/{downtime-replay.integration.test.js → room-send-retry.integration.test.js}
RENAMED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Integration test for issue #28: a
|
|
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";
|
|
@@ -9,12 +7,13 @@ import { tmpdir } from "node:os";
|
|
|
9
7
|
import path from "node:path";
|
|
10
8
|
import { deviceIdToHex } from "wire-mesh-core/domain/device-id";
|
|
11
9
|
import { createSystemClock } from "wire-mesh-core/adapters/system-clock";
|
|
10
|
+
import { createRevocationView } from "wire-mesh-core/domain/revocation-view";
|
|
12
11
|
import { MeshStore } from "../core/mesh-store.js";
|
|
13
12
|
import { WireMeshTransport } from "../core/wire-mesh-transport.js";
|
|
14
13
|
import { loadOrCreateIdentity, releaseIdentityLock, } from "../core/identity-store.js";
|
|
15
14
|
import { toIdentityPort } from "../core/wire-mesh-identity.js";
|
|
16
15
|
import { ownerNamedRoomPath } from "../core/room-path.js";
|
|
17
|
-
const TEST_PORT =
|
|
16
|
+
const TEST_PORT = 19897;
|
|
18
17
|
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
19
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. */
|
|
20
19
|
async function makePeer(identity, slot) {
|
|
@@ -25,6 +24,7 @@ async function makePeer(identity, slot) {
|
|
|
25
24
|
identity: await toIdentityPort(identity),
|
|
26
25
|
clock: createSystemClock(),
|
|
27
26
|
slot,
|
|
27
|
+
revocation: createRevocationView(),
|
|
28
28
|
});
|
|
29
29
|
const deliveries = [];
|
|
30
30
|
return { store, deliveries };
|
|
@@ -39,12 +39,12 @@ async function waitFor(what, check) {
|
|
|
39
39
|
assert.ok(false, `timed out waiting for ${what}`);
|
|
40
40
|
}
|
|
41
41
|
async function main() {
|
|
42
|
-
const dir = fs.mkdtempSync(path.join(tmpdir(), "agent-comms-
|
|
42
|
+
const dir = fs.mkdtempSync(path.join(tmpdir(), "agent-comms-send-retry-"));
|
|
43
43
|
const slot = { harness: "pi", cwd: "/tmp/project", dir };
|
|
44
44
|
const slotA = {
|
|
45
45
|
harness: "claude-code",
|
|
46
46
|
cwd: "/tmp/a",
|
|
47
|
-
dir: fs.mkdtempSync(path.join(tmpdir(), "agent-comms-
|
|
47
|
+
dir: fs.mkdtempSync(path.join(tmpdir(), "agent-comms-send-retry-a-")),
|
|
48
48
|
};
|
|
49
49
|
// A is a normal ephemeral bridge that stays up throughout.
|
|
50
50
|
const a = await makePeer(loadOrCreateIdentity(slotA), slotA);
|
|
@@ -65,7 +65,7 @@ async function main() {
|
|
|
65
65
|
description: "issue 28 acceptance",
|
|
66
66
|
});
|
|
67
67
|
await sleep(200);
|
|
68
|
-
// 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.
|
|
69
69
|
const identityB = loadOrCreateIdentity(slot);
|
|
70
70
|
const b1 = await makePeer(identityB, slot);
|
|
71
71
|
await b1.store.init();
|
|
@@ -79,22 +79,19 @@ async function main() {
|
|
|
79
79
|
visibility: "visible",
|
|
80
80
|
tags: [],
|
|
81
81
|
});
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
await
|
|
88
|
-
const room = await a.store.getRoom(roomId);
|
|
89
|
-
return room?.members.includes(b1.store.peerId) === true;
|
|
90
|
-
});
|
|
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;
|
|
91
88
|
// B goes down.
|
|
92
89
|
await b1.store.shutdown();
|
|
93
90
|
await sleep(200);
|
|
94
|
-
// 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.
|
|
95
92
|
await a.store.sendRoomMessage(roomId, a.store.peerId, "while you were down");
|
|
96
93
|
await sleep(200);
|
|
97
|
-
// 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.
|
|
98
95
|
const identityB2 = loadOrCreateIdentity(slot);
|
|
99
96
|
assert.equal(deviceIdToHex(Uint8Array.from(identityB2.deviceId)), deviceIdToHex(Uint8Array.from(identityB.deviceId)));
|
|
100
97
|
const b2 = await makePeer(identityB2, slot);
|
|
@@ -110,13 +107,13 @@ async function main() {
|
|
|
110
107
|
visibility: "visible",
|
|
111
108
|
tags: [],
|
|
112
109
|
});
|
|
113
|
-
// 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.
|
|
114
111
|
await waitFor("the downtime message to push to the restarted bridge", async () => b2.deliveries.some((ev) => ev.type === "room_message" &&
|
|
115
112
|
ev.message.content === "while you were down"));
|
|
116
113
|
await b2.store.shutdown();
|
|
117
114
|
await a.store.shutdown();
|
|
118
115
|
releaseIdentityLock(slot);
|
|
119
|
-
console.log("✓
|
|
116
|
+
console.log("✓ a queued room.send retries and delivers on reconnect");
|
|
120
117
|
}
|
|
121
118
|
main().catch((err) => {
|
|
122
119
|
console.error("Test failed:", err);
|
|
@@ -124,4 +121,4 @@ main().catch((err) => {
|
|
|
124
121
|
// The sequence above keeps mesh handles open when it fails partway; exit explicitly so a failure cannot hang the runner.
|
|
125
122
|
process.exit(1);
|
|
126
123
|
});
|
|
127
|
-
//# sourceMappingURL=
|
|
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 =
|
|
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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-transport.d.ts","sourceRoot":"","sources":["../../src/test/test-transport.ts"],"names":[],"mappings":"AAAA,icAAic;
|
|
1
|
+
{"version":3,"file":"test-transport.d.ts","sourceRoot":"","sources":["../../src/test/test-transport.ts"],"names":[],"mappings":"AAAA,icAAic;AAUjc,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,6XAA6X;AAC7X,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,SAAS,EAChB,IAAI,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC5B,OAAO,CAAC,YAAY,CAAC,CAuBvB;AAMD;;GAEG;AACH,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,OAAO,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,SAA8B,GACtC,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
|
@@ -5,6 +5,7 @@ import { tmpdir } from "node:os";
|
|
|
5
5
|
import { WireMeshTransport } from "../core/wire-mesh-transport.js";
|
|
6
6
|
import { deviceIdToHex } from "wire-mesh-core/domain/device-id";
|
|
7
7
|
import { createSystemClock } from "wire-mesh-core/adapters/system-clock";
|
|
8
|
+
import { createRevocationView } from "wire-mesh-core/domain/revocation-view";
|
|
8
9
|
import { loadOrCreateIdentity } from "../core/identity-store.js";
|
|
9
10
|
import { toIdentityPort } from "../core/wire-mesh-identity.js";
|
|
10
11
|
import { nanoid } from "../core/nanoid.js";
|
|
@@ -23,6 +24,7 @@ export async function wireTestTransport(store, slot) {
|
|
|
23
24
|
identity: await toIdentityPort(identity),
|
|
24
25
|
clock: createSystemClock(),
|
|
25
26
|
slot: resolvedSlot,
|
|
27
|
+
revocation: createRevocationView(),
|
|
26
28
|
});
|
|
27
29
|
// Surface transport-level errors instead of leaving them silent — a genuine socket failure during a test run is signal worth seeing even when the test's own assertions still pass, since it can point at a real race the assertions don't happen to catch.
|
|
28
30
|
store.onError = (e) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-transport.js","sourceRoot":"","sources":["../../src/test/test-transport.ts"],"names":[],"mappings":"AAAA,icAAic;AAEjc,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,6XAA6X;AAC7X,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAgB,EAChB,IAA6B;IAE7B,MAAM,YAAY,GAAiB,IAAI,IAAI;QACzC,OAAO,EAAE,MAAM;QACf,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACd,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,4BAA4B,CAAC,CAAC;KACvE,CAAC;IACF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACpD,yXAAyX;IACzX,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,KAAK,CAAC,YAAY,CAChB,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,CACtE,CAAC;IACF,KAAK,CAAC,WAAW,CAAC;QAChB,QAAQ,EAAE,MAAM,cAAc,CAAC,QAAQ,CAAC;QACxC,KAAK,EAAE,iBAAiB,EAAE;QAC1B,IAAI,EAAE,YAAY;
|
|
1
|
+
{"version":3,"file":"test-transport.js","sourceRoot":"","sources":["../../src/test/test-transport.ts"],"names":[],"mappings":"AAAA,icAAic;AAEjc,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,6XAA6X;AAC7X,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAgB,EAChB,IAA6B;IAE7B,MAAM,YAAY,GAAiB,IAAI,IAAI;QACzC,OAAO,EAAE,MAAM;QACf,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACd,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,4BAA4B,CAAC,CAAC;KACvE,CAAC;IACF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACpD,yXAAyX;IACzX,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,KAAK,CAAC,YAAY,CAChB,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,CACtE,CAAC;IACF,KAAK,CAAC,WAAW,CAAC;QAChB,QAAQ,EAAE,MAAM,cAAc,CAAC,QAAQ,CAAC;QACxC,KAAK,EAAE,iBAAiB,EAAE;QAC1B,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,oBAAoB,EAAE;KACnC,CAAC,CAAC;IACH,4PAA4P;IAC5P,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE;QACpB,OAAO,CAAC,KAAK,CAAC,4BAA4B,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC,CAAC;IACF,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,+cAA+c;AAC/c,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAC3C,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,SAAwB,EACxB,WAAmB,EACnB,SAAS,GAAG,2BAA2B;IAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,CAAC,SAAS,CAAC,OAAO,WAAW,EAAE,CACjE,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5B,UAAU,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAC/C,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-comms",
|
|
3
|
-
"version": "2.
|
|
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
|
|
100
|
+
"wire-mesh-core": "1.1.0",
|
|
101
101
|
"ws": "8.21.1",
|
|
102
102
|
"zod": "4.4.3"
|
|
103
103
|
},
|
package/dist/core/token-id.d.ts
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/** Generates a random token-id: tokens.cddl defines token-id as an arbitrary-length bstr, and 16 random bytes (128 bits) is the conventional size for an unguessable identifier, matching a UUIDv4's own random payload. */
|
|
2
|
-
export declare function randomTokenId(): Uint8Array<ArrayBuffer>;
|
|
3
|
-
//# sourceMappingURL=token-id.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"token-id.d.ts","sourceRoot":"","sources":["../../src/core/token-id.ts"],"names":[],"mappings":"AAAA,4NAA4N;AAC5N,wBAAgB,aAAa,IAAI,UAAU,CAAC,WAAW,CAAC,CAIvD"}
|
package/dist/core/token-id.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/** Generates a random token-id: tokens.cddl defines token-id as an arbitrary-length bstr, and 16 random bytes (128 bits) is the conventional size for an unguessable identifier, matching a UUIDv4's own random payload. */
|
|
2
|
-
export function randomTokenId() {
|
|
3
|
-
const bytes = new Uint8Array(16);
|
|
4
|
-
crypto.getRandomValues(bytes);
|
|
5
|
-
return bytes;
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=token-id.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"token-id.js","sourceRoot":"","sources":["../../src/core/token-id.ts"],"names":[],"mappings":"AAAA,4NAA4N;AAC5N,MAAM,UAAU,aAAa;IAC3B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
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.
|
|
5
|
-
*/
|
|
6
|
-
export {};
|
|
7
|
-
//# sourceMappingURL=downtime-replay.integration.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"downtime-replay.integration.test.d.ts","sourceRoot":"","sources":["../../src/test/downtime-replay.integration.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"downtime-replay.integration.test.js","sourceRoot":"","sources":["../../src/test/downtime-replay.integration.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GAEpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,SAAS,GAAG,KAAK,CAAC;AACxB,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAOpE,iLAAiL;AACjL,KAAK,UAAU,QAAQ,CACrB,QAAsB,EACtB,IAAkB;IAElB,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;IACvC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,KAAK,CAAC,YAAY,CAChB,IAAI,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,CACtE,CAAC;IACF,KAAK,CAAC,WAAW,CAAC;QAChB,QAAQ,EAAE,MAAM,cAAc,CAAC,QAAQ,CAAC;QACxC,KAAK,EAAE,iBAAiB,EAAE;QAC1B,IAAI;KACL,CAAC,CAAC;IACH,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC;AAED,gEAAgE;AAChE,KAAK,UAAU,OAAO,CACpB,IAAY,EACZ,KAA6B;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,MAAM,KAAK,EAAE;YAAE,OAAO;QAC1B,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;IACzE,MAAM,IAAI,GAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC;IACvE,MAAM,KAAK,GAAiB;QAC1B,OAAO,EAAE,aAAa;QACtB,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,yBAAyB,CAAC,CAAC;KACpE,CAAC;IAEF,2DAA2D;IAC3D,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,MAAM,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;QAC1B,IAAI,EAAE,QAAQ;QACd,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,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;QACvB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM;QACrB,WAAW,EAAE,qBAAqB;KACnC,CAAC,CAAC;IACH,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAEjB,+DAA+D;IAC/D,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,0EAA0E;IAC1E,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IACjB,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC;QAC3B,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,cAAc;QACnB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IACH,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,OAAO,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,eAAe;IACf,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1B,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAEjB,0CAA0C;IAC1C,MAAM,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC7E,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAEjB,6DAA6D;IAC7D,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,CACV,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EACnD,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CACnD,CAAC;IACF,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5C,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAChC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC,CAAC;IACF,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC;QAC3B,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,cAAc;QACnB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,UAAU,EAAE,SAAS;QACrB,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;IAEH,sEAAsE;IACtE,MAAM,OAAO,CACX,sDAAsD,EACtD,KAAK,IAAI,EAAE,CACT,EAAE,CAAC,UAAU,CAAC,IAAI,CAChB,CAAC,EAAE,EAAE,EAAE,CACL,EAAE,CAAC,IAAI,KAAK,cAAc;QAC1B,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,qBAAqB,CAC/C,CACJ,CAAC;IAEF,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1B,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;AAC7D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC5B,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,yHAAyH;IACzH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unit tests for downtime delivery replay (#28): events that accumulated in peers' delivery queues while a target's process was down fire onDelivery when the target applies its first snapshot, without transport involvement.
|
|
3
|
-
*/
|
|
4
|
-
export {};
|
|
5
|
-
//# sourceMappingURL=downtime-replay.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"downtime-replay.test.d.ts","sourceRoot":"","sources":["../../src/test/downtime-replay.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|