@cello-protocol/daemon 0.0.169 → 0.0.170
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/dist/agent-id-migration.d.ts.map +1 -1
- package/dist/agent-id-migration.js +16 -0
- package/dist/agent-id-migration.js.map +1 -1
- package/dist/away-detection.d.ts +62 -15
- package/dist/away-detection.d.ts.map +1 -1
- package/dist/away-detection.js +77 -20
- package/dist/away-detection.js.map +1 -1
- package/dist/close-session-handler.d.ts.map +1 -1
- package/dist/close-session-handler.js +69 -3
- package/dist/close-session-handler.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +291 -38
- package/dist/daemon.js.map +1 -1
- package/dist/delivery-open-registry.d.ts +92 -0
- package/dist/delivery-open-registry.d.ts.map +1 -0
- package/dist/delivery-open-registry.js +121 -0
- package/dist/delivery-open-registry.js.map +1 -0
- package/dist/document-delivery-transport.d.ts +10 -1
- package/dist/document-delivery-transport.d.ts.map +1 -1
- package/dist/document-delivery-transport.js +10 -1
- package/dist/document-delivery-transport.js.map +1 -1
- package/dist/document-layer.d.ts +21 -0
- package/dist/document-layer.d.ts.map +1 -1
- package/dist/document-layer.js +34 -1
- package/dist/document-layer.js.map +1 -1
- package/dist/document-reconcile-scheduler.d.ts +33 -0
- package/dist/document-reconcile-scheduler.d.ts.map +1 -1
- package/dist/document-reconcile-scheduler.js +73 -0
- package/dist/document-reconcile-scheduler.js.map +1 -1
- package/dist/inbound-sessions.d.ts +7 -0
- package/dist/inbound-sessions.d.ts.map +1 -1
- package/dist/inbound-sessions.js +27 -6
- package/dist/inbound-sessions.js.map +1 -1
- package/dist/notification-handlers.d.ts.map +1 -1
- package/dist/notification-handlers.js +39 -2
- package/dist/notification-handlers.js.map +1 -1
- package/dist/session-content-handlers.d.ts.map +1 -1
- package/dist/session-content-handlers.js +134 -8
- package/dist/session-content-handlers.js.map +1 -1
- package/dist/session-node-manager.d.ts +153 -8
- package/dist/session-node-manager.d.ts.map +1 -1
- package/dist/session-node-manager.js +1376 -35
- package/dist/session-node-manager.js.map +1 -1
- package/dist/types.d.ts +64 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOD-M12B-DELIVERY-QUIET-1 — which sessions this daemon's DOCUMENT DELIVERY worker is opening.
|
|
3
|
+
*
|
|
4
|
+
* ── THE LOOP THIS EXISTS TO BREAK ────────────────────────────────────────────────────────────────
|
|
5
|
+
*
|
|
6
|
+
* Two reachability triggers fire when a session comes up, and both are correct when a PEER caused
|
|
7
|
+
* the session:
|
|
8
|
+
*
|
|
9
|
+
* 1. The initiator half — `onSessionOpened` in `initiate-session-handler.ts`, fired by the side
|
|
10
|
+
* that dialled.
|
|
11
|
+
* 2. The inbound half — `dispatchSessionStateChangedWithTelegram` on `state === "created"`,
|
|
12
|
+
* fired by the side that accepted, which ALSO rings the conversation doorbell and pushes a
|
|
13
|
+
* Telegram notification.
|
|
14
|
+
*
|
|
15
|
+
* Either one calls `ReconcileScheduler.onReachable`, and that is not a nudge: it sets
|
|
16
|
+
* `failures = 0` and `nextAttemptMs = 0` and sweeps every shared document immediately. The stated
|
|
17
|
+
* rationale is sound — "the backoff modeled 'they do not answer', and here they demonstrably just
|
|
18
|
+
* did" (SYNC-P5 R39 trigger 2) — but it is only sound when the peer caused the session.
|
|
19
|
+
*
|
|
20
|
+
* When the DELIVERY WORKER opened it, the "signal" is our own outbound act reflected back at us. We
|
|
21
|
+
* learn nothing about the peer, and we wipe a backoff that a refusal — possibly that same peer's
|
|
22
|
+
* refusal, seconds earlier — had just set. Then:
|
|
23
|
+
*
|
|
24
|
+
* the sweep needs a session → it opens one → creation fires the trigger → the trigger zeroes the
|
|
25
|
+
* backoff and sweeps every document → the sweep needs sessions → …
|
|
26
|
+
*
|
|
27
|
+
* Measured 2026-08-17: 321 reconcile attempts in 85 minutes driving 53 sessions and 63 standing-
|
|
28
|
+
* receiver rebuilds. After `DOD-SYNC-REFUSAL-BACKOFF-1` removed the refusal storm, still 55
|
|
29
|
+
* attempts in 20 minutes with 0 refusals — the volume that fix did not reach is this trigger.
|
|
30
|
+
*
|
|
31
|
+
* ── WHY AN INTENT, KEYED ON THE PEER, AND NOT A SESSION ID ───────────────────────────────────────
|
|
32
|
+
*
|
|
33
|
+
* The obvious design is to record the session id the delivery worker opened. It does not work: the
|
|
34
|
+
* id is minted by the DIRECTORY and only reaches the opener at the end of negotiation, whereas the
|
|
35
|
+
* directory has already pushed the assignment to the counterparty — which, when both agents live on
|
|
36
|
+
* one daemon (the measured configuration), is this same process. The inbound doorbell therefore
|
|
37
|
+
* fires BEFORE the opener ever learns the id, so a session-id registry is always too late.
|
|
38
|
+
*
|
|
39
|
+
* So what is registered is the INTENT — "this local agent's delivery worker is opening a session
|
|
40
|
+
* with this peer right now" — before negotiation starts, and released when the open returns.
|
|
41
|
+
*
|
|
42
|
+
* ── THE KNOWN IMPRECISION, STATED RATHER THAN HIDDEN ─────────────────────────────────────────────
|
|
43
|
+
*
|
|
44
|
+
* If a delivery open to peer P is in flight for agent A at the same instant A's OPERATOR opens a
|
|
45
|
+
* session to the same P, the inbound half cannot tell the two assignments apart and will suppress
|
|
46
|
+
* the operator's doorbell too. It is narrow (same local agent, same peer, overlapping windows) and
|
|
47
|
+
* it costs one missed notification for a session the operator started themselves and is therefore
|
|
48
|
+
* already watching. The alternative — suppressing nothing — is the storm. This is the same class of
|
|
49
|
+
* accepted, journaled imprecision as the away-ack coalescing guard in `daemon.ts`.
|
|
50
|
+
*
|
|
51
|
+
* Counting, not a boolean: two documents can be delivering to the same peer concurrently, and a
|
|
52
|
+
* boolean cleared by whichever finishes first would re-open the loop for the other.
|
|
53
|
+
*/
|
|
54
|
+
/** Who caused a session to exist. Decides whether its creation is a signal about the peer. */
|
|
55
|
+
export type SessionOpenedBy = "operator" | "document_delivery";
|
|
56
|
+
export interface DeliveryOpenRegistry {
|
|
57
|
+
/**
|
|
58
|
+
* Register that `openerPubkey`'s delivery worker is opening a session with `targetPubkey`.
|
|
59
|
+
* Returns the release function.
|
|
60
|
+
*/
|
|
61
|
+
begin(openerPubkey: string, targetPubkey: string): () => void;
|
|
62
|
+
/**
|
|
63
|
+
* True while a delivery open from `openerPubkey` toward `targetPubkey` is in flight.
|
|
64
|
+
*
|
|
65
|
+
* ORDER IS THE WHOLE THING. The two halves that ask this question stand at opposite ends of the
|
|
66
|
+
* same dial, so one of them must reverse its own arguments:
|
|
67
|
+
*
|
|
68
|
+
* initiator half — WE opened it: isDeliveryOpening(us, them)
|
|
69
|
+
* inbound half — THEY opened it: isDeliveryOpening(them, us)
|
|
70
|
+
*
|
|
71
|
+
* The first version of this registry keyed on (agent NAME, peer PUBKEY) and both halves passed
|
|
72
|
+
* their own local agent first. The initiator half matched; the inbound half asked
|
|
73
|
+
* `(receiver-name, initiator-pubkey)` against a registry holding `(initiator-name, target-pubkey)`
|
|
74
|
+
* — two tuples that can never be equal — so the doorbell guard read as protection and was
|
|
75
|
+
* unreachable in production, and the log line meant to prove it worked never fired either.
|
|
76
|
+
* Pubkeys on BOTH ends is what lets the two halves name the same pair at all.
|
|
77
|
+
*/
|
|
78
|
+
isDeliveryOpening(openerPubkey: string, targetPubkey: string): boolean;
|
|
79
|
+
/** In-flight count. Exposed for assertions and for the leak check a test can make. */
|
|
80
|
+
inFlight(): number;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* How long an entry may claim to be "in flight" before it is ignored.
|
|
84
|
+
*
|
|
85
|
+
* `openSessionAs` carries no deadline of its own, so a dial that never settles would leave the
|
|
86
|
+
* intent registered and silence that peer's doorbell for the life of the process — a worse outage
|
|
87
|
+
* than the storm this exists to stop. A dial that has been in flight for two minutes is not in
|
|
88
|
+
* flight; it is stuck, and a stuck dial must not be able to mute anything.
|
|
89
|
+
*/
|
|
90
|
+
export declare const DELIVERY_OPEN_STALE_MS = 120000;
|
|
91
|
+
export declare function createDeliveryOpenRegistry(now?: () => number): DeliveryOpenRegistry;
|
|
92
|
+
//# sourceMappingURL=delivery-open-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-open-registry.d.ts","sourceRoot":"","sources":["../src/delivery-open-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,8FAA8F;AAC9F,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,mBAAmB,CAAC;AAE/D,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC;IAC9D;;;;;;;;;;;;;;;OAeG;IACH,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;IACvE,sFAAsF;IACtF,QAAQ,IAAI,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,SAAU,CAAC;AAE9C,wBAAgB,0BAA0B,CAAC,GAAG,GAAE,MAAM,MAAiB,GAAG,oBAAoB,CAoD7F"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOD-M12B-DELIVERY-QUIET-1 — which sessions this daemon's DOCUMENT DELIVERY worker is opening.
|
|
3
|
+
*
|
|
4
|
+
* ── THE LOOP THIS EXISTS TO BREAK ────────────────────────────────────────────────────────────────
|
|
5
|
+
*
|
|
6
|
+
* Two reachability triggers fire when a session comes up, and both are correct when a PEER caused
|
|
7
|
+
* the session:
|
|
8
|
+
*
|
|
9
|
+
* 1. The initiator half — `onSessionOpened` in `initiate-session-handler.ts`, fired by the side
|
|
10
|
+
* that dialled.
|
|
11
|
+
* 2. The inbound half — `dispatchSessionStateChangedWithTelegram` on `state === "created"`,
|
|
12
|
+
* fired by the side that accepted, which ALSO rings the conversation doorbell and pushes a
|
|
13
|
+
* Telegram notification.
|
|
14
|
+
*
|
|
15
|
+
* Either one calls `ReconcileScheduler.onReachable`, and that is not a nudge: it sets
|
|
16
|
+
* `failures = 0` and `nextAttemptMs = 0` and sweeps every shared document immediately. The stated
|
|
17
|
+
* rationale is sound — "the backoff modeled 'they do not answer', and here they demonstrably just
|
|
18
|
+
* did" (SYNC-P5 R39 trigger 2) — but it is only sound when the peer caused the session.
|
|
19
|
+
*
|
|
20
|
+
* When the DELIVERY WORKER opened it, the "signal" is our own outbound act reflected back at us. We
|
|
21
|
+
* learn nothing about the peer, and we wipe a backoff that a refusal — possibly that same peer's
|
|
22
|
+
* refusal, seconds earlier — had just set. Then:
|
|
23
|
+
*
|
|
24
|
+
* the sweep needs a session → it opens one → creation fires the trigger → the trigger zeroes the
|
|
25
|
+
* backoff and sweeps every document → the sweep needs sessions → …
|
|
26
|
+
*
|
|
27
|
+
* Measured 2026-08-17: 321 reconcile attempts in 85 minutes driving 53 sessions and 63 standing-
|
|
28
|
+
* receiver rebuilds. After `DOD-SYNC-REFUSAL-BACKOFF-1` removed the refusal storm, still 55
|
|
29
|
+
* attempts in 20 minutes with 0 refusals — the volume that fix did not reach is this trigger.
|
|
30
|
+
*
|
|
31
|
+
* ── WHY AN INTENT, KEYED ON THE PEER, AND NOT A SESSION ID ───────────────────────────────────────
|
|
32
|
+
*
|
|
33
|
+
* The obvious design is to record the session id the delivery worker opened. It does not work: the
|
|
34
|
+
* id is minted by the DIRECTORY and only reaches the opener at the end of negotiation, whereas the
|
|
35
|
+
* directory has already pushed the assignment to the counterparty — which, when both agents live on
|
|
36
|
+
* one daemon (the measured configuration), is this same process. The inbound doorbell therefore
|
|
37
|
+
* fires BEFORE the opener ever learns the id, so a session-id registry is always too late.
|
|
38
|
+
*
|
|
39
|
+
* So what is registered is the INTENT — "this local agent's delivery worker is opening a session
|
|
40
|
+
* with this peer right now" — before negotiation starts, and released when the open returns.
|
|
41
|
+
*
|
|
42
|
+
* ── THE KNOWN IMPRECISION, STATED RATHER THAN HIDDEN ─────────────────────────────────────────────
|
|
43
|
+
*
|
|
44
|
+
* If a delivery open to peer P is in flight for agent A at the same instant A's OPERATOR opens a
|
|
45
|
+
* session to the same P, the inbound half cannot tell the two assignments apart and will suppress
|
|
46
|
+
* the operator's doorbell too. It is narrow (same local agent, same peer, overlapping windows) and
|
|
47
|
+
* it costs one missed notification for a session the operator started themselves and is therefore
|
|
48
|
+
* already watching. The alternative — suppressing nothing — is the storm. This is the same class of
|
|
49
|
+
* accepted, journaled imprecision as the away-ack coalescing guard in `daemon.ts`.
|
|
50
|
+
*
|
|
51
|
+
* Counting, not a boolean: two documents can be delivering to the same peer concurrently, and a
|
|
52
|
+
* boolean cleared by whichever finishes first would re-open the loop for the other.
|
|
53
|
+
*/
|
|
54
|
+
/**
|
|
55
|
+
* How long an entry may claim to be "in flight" before it is ignored.
|
|
56
|
+
*
|
|
57
|
+
* `openSessionAs` carries no deadline of its own, so a dial that never settles would leave the
|
|
58
|
+
* intent registered and silence that peer's doorbell for the life of the process — a worse outage
|
|
59
|
+
* than the storm this exists to stop. A dial that has been in flight for two minutes is not in
|
|
60
|
+
* flight; it is stuck, and a stuck dial must not be able to mute anything.
|
|
61
|
+
*/
|
|
62
|
+
export const DELIVERY_OPEN_STALE_MS = 120_000;
|
|
63
|
+
export function createDeliveryOpenRegistry(now = Date.now) {
|
|
64
|
+
// Pubkeys reach this code from a wire assignment on one side and from a caller's parameter on the
|
|
65
|
+
// other, and those two do not agree on case. Lowercased at the boundary so a comparison here can
|
|
66
|
+
// never be the reason the suppression silently stops working.
|
|
67
|
+
//
|
|
68
|
+
// NUL separator, written as an escape rather than a raw byte: a literal U+0000 in the source made
|
|
69
|
+
// this file binary to git, so `git show` printed no diff for it at all and the one new module in
|
|
70
|
+
// the unit could not be reviewed through the normal path.
|
|
71
|
+
const key = (openerPubkey, targetPubkey) => `${openerPubkey.toLowerCase()}\u0000${targetPubkey.toLowerCase()}`;
|
|
72
|
+
// Start times, newest last. An array rather than a count so a stale entry can be dropped
|
|
73
|
+
// individually — a bare counter cannot tell which of two in-flight opens is the wedged one.
|
|
74
|
+
const opens = new Map();
|
|
75
|
+
const live = (k) => {
|
|
76
|
+
const all = opens.get(k);
|
|
77
|
+
if (all === undefined)
|
|
78
|
+
return [];
|
|
79
|
+
const cutoff = now() - DELIVERY_OPEN_STALE_MS;
|
|
80
|
+
const fresh = all.filter((startedAt) => startedAt > cutoff);
|
|
81
|
+
if (fresh.length === 0)
|
|
82
|
+
opens.delete(k);
|
|
83
|
+
else if (fresh.length !== all.length)
|
|
84
|
+
opens.set(k, fresh);
|
|
85
|
+
return fresh;
|
|
86
|
+
};
|
|
87
|
+
return {
|
|
88
|
+
begin(openerPubkey, targetPubkey) {
|
|
89
|
+
const k = key(openerPubkey, targetPubkey);
|
|
90
|
+
const startedAt = now();
|
|
91
|
+
opens.set(k, [...live(k), startedAt]);
|
|
92
|
+
let released = false;
|
|
93
|
+
return () => {
|
|
94
|
+
// Idempotent: a caller that releases twice must not drop someone else's entry and leave the
|
|
95
|
+
// doorbell suppressed for a peer whose open has not finished.
|
|
96
|
+
if (released)
|
|
97
|
+
return;
|
|
98
|
+
released = true;
|
|
99
|
+
const remaining = opens.get(k);
|
|
100
|
+
if (remaining === undefined)
|
|
101
|
+
return;
|
|
102
|
+
const at = remaining.indexOf(startedAt);
|
|
103
|
+
const next = at === -1 ? remaining : [...remaining.slice(0, at), ...remaining.slice(at + 1)];
|
|
104
|
+
if (next.length === 0)
|
|
105
|
+
opens.delete(k);
|
|
106
|
+
else
|
|
107
|
+
opens.set(k, next);
|
|
108
|
+
};
|
|
109
|
+
},
|
|
110
|
+
isDeliveryOpening(openerPubkey, targetPubkey) {
|
|
111
|
+
return live(key(openerPubkey, targetPubkey)).length > 0;
|
|
112
|
+
},
|
|
113
|
+
inFlight() {
|
|
114
|
+
let total = 0;
|
|
115
|
+
for (const k of [...opens.keys()])
|
|
116
|
+
total += live(k).length;
|
|
117
|
+
return total;
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=delivery-open-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-open-registry.js","sourceRoot":"","sources":["../src/delivery-open-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,7 +40,13 @@ export interface DocumentTransportDeps {
|
|
|
40
40
|
* audit record: the tree is the sequence space both sides count in, so a sender that skips it
|
|
41
41
|
* falls one behind per frame and the peer silently drops what it has already consumed.
|
|
42
42
|
*/
|
|
43
|
-
|
|
43
|
+
/** DOD-M12B-INDEX-1: `assignedSeq` is the relay's position for this frame — the leaf goes THERE,
|
|
44
|
+
* not at the tail. A document leaf rides the same session sequence counter a message does, so it
|
|
45
|
+
* is subject to exactly the same divergence. Undefined when no relay answered. */
|
|
46
|
+
appendLeaf(agentName: string, sessionId: string, contentHash: Uint8Array, frameBytes: Uint8Array, correlationId: string, assignedSeq?: number): {
|
|
47
|
+
placed: boolean;
|
|
48
|
+
leafIndex: number | null;
|
|
49
|
+
};
|
|
44
50
|
/** The agent this worker delivers for. One worker per attended agent. */
|
|
45
51
|
agentName: string;
|
|
46
52
|
/** `runDiscoveryLookup`, supplied by the composition root — it lives in a closure there. */
|
|
@@ -70,15 +76,18 @@ export interface DocumentTransportDeps {
|
|
|
70
76
|
ok: true;
|
|
71
77
|
delivered: true;
|
|
72
78
|
relayRefusal?: string;
|
|
79
|
+
sequenceNumber?: number;
|
|
73
80
|
} | {
|
|
74
81
|
ok: true;
|
|
75
82
|
delivered: false;
|
|
76
83
|
parked: true;
|
|
77
84
|
relayRefusal?: string;
|
|
85
|
+
sequenceNumber?: number;
|
|
78
86
|
} | {
|
|
79
87
|
ok: false;
|
|
80
88
|
reason: string;
|
|
81
89
|
error: string;
|
|
90
|
+
sequenceNumber?: number;
|
|
82
91
|
}>;
|
|
83
92
|
logger: Logger;
|
|
84
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-delivery-transport.d.ts","sourceRoot":"","sources":["../src/document-delivery-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EAA6B,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"document-delivery-transport.d.ts","sourceRoot":"","sources":["../src/document-delivery-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -160,9 +160,18 @@ export function createDocumentDeliveryTransport(deps) {
|
|
|
160
160
|
// document frame in a fresh session arrives and everything after it does not. Adding one
|
|
161
161
|
// ordinary message before the exchange moved the failure earlier, which is what named the
|
|
162
162
|
// cause.
|
|
163
|
-
|
|
163
|
+
// THE FRAME BYTES, not the hash. When the leaf cannot be placed yet the bytes are held, and a
|
|
164
|
+
// hold is released by writing its content to the transcript — so handing this the hash would
|
|
165
|
+
// put 32 bytes of digest in the operator's transcript as a message they sent, and annex the
|
|
166
|
+
// same 32 bytes into the sealed record.
|
|
167
|
+
const placed = deps.appendLeaf(deps.agentName, session.sessionId, hash, bytes, correlationId, sent.sequenceNumber);
|
|
164
168
|
deps.logger.info("document.frame.sent", {
|
|
165
169
|
documentId,
|
|
170
|
+
// Whether the leaf is IN the chain yet. This hook is delivery-critical — a sender that skips
|
|
171
|
+
// its leaf falls one behind per frame and the peer silently drops what it has already
|
|
172
|
+
// consumed — so "sent" must not read the same when the leaf is merely held.
|
|
173
|
+
leafCommitted: placed.placed,
|
|
174
|
+
leafIndex: placed.leafIndex,
|
|
166
175
|
sessionId: session.sessionId,
|
|
167
176
|
sessionOpened: session.sessionOpened,
|
|
168
177
|
bytes: bytes.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-delivery-transport.js","sourceRoot":"","sources":["../src/document-delivery-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAElG,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"document-delivery-transport.js","sourceRoot":"","sources":["../src/document-delivery-transport.ts"],"names":[],"mappings":"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"}
|
package/dist/document-layer.d.ts
CHANGED
|
@@ -97,8 +97,29 @@ export interface DocumentLayerDeps {
|
|
|
97
97
|
ok: false;
|
|
98
98
|
reason: string;
|
|
99
99
|
}>;
|
|
100
|
+
/**
|
|
101
|
+
* A PEER REFUSED OUR EXCHANGE. Wired to the scheduler so the refusal can slow the asking down.
|
|
102
|
+
*
|
|
103
|
+
* Without it the refusal is logged and dropped, and the sweep — which can only see whether the
|
|
104
|
+
* frame was SENT — retries at full speed forever. Optional so a layer built without a scheduler
|
|
105
|
+
* (every unit fixture) needs no wiring; the scheduler treats the signal as a DELAY, never a
|
|
106
|
+
* prohibition (R41).
|
|
107
|
+
*/
|
|
108
|
+
onPeerRefusal?(ownerAgentId: string, peerAgentId: string, terminal: boolean): void;
|
|
100
109
|
}
|
|
101
110
|
export interface DocumentLayer {
|
|
111
|
+
/**
|
|
112
|
+
* DOD-M12B-SHUTDOWN-1 — refuse every further outbound reconcile, whichever caller asks.
|
|
113
|
+
*
|
|
114
|
+
* The reconcile scheduler is only one of four routes to `initiateReconcile`; `nudgeSeats` and the
|
|
115
|
+
* two invite notices reach it directly, and every document verb is still served while the daemon
|
|
116
|
+
* tears down, because the IPC server is the last thing stopped. Gating the scheduler alone left
|
|
117
|
+
* three paths dialling peers and opening sessions on the way out.
|
|
118
|
+
*
|
|
119
|
+
* Idempotent and one-way. The reconcile exchange is idempotent (R40), so a refused reconcile is
|
|
120
|
+
* deferred to the next process, never lost.
|
|
121
|
+
*/
|
|
122
|
+
stopReconciling(): void;
|
|
102
123
|
store: DocumentStore;
|
|
103
124
|
/** The file projection, or null when no workspace root was configured. */
|
|
104
125
|
writePath: DocumentWritePath | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-layer.d.ts","sourceRoot":"","sources":["../src/document-layer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAmB,MAAM,sBAAsB,CAAC;AAI9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAmC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,cAAc,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;;;OAUG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IACjD;;;;;;OAMG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9C;;;;;;OAMG;IACH,KAAK,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACjF;;;;;;;OAOG;IACH,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACjE;;;;;;OAMG;IACH;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CACP,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,UAAU;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"document-layer.d.ts","sourceRoot":"","sources":["../src/document-layer.ts"],"names":[],"mappings":"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"}
|
package/dist/document-layer.js
CHANGED
|
@@ -311,7 +311,25 @@ export function createDocumentLayer(deps) {
|
|
|
311
311
|
const derived = reconcileReads(ownerAgentId).deriveState(doc.documentId);
|
|
312
312
|
if (!derived.ok || derived.state.ended !== null)
|
|
313
313
|
continue;
|
|
314
|
-
|
|
314
|
+
const seats = [...derived.state.participants, ...derived.state.invited];
|
|
315
|
+
// A HOLDER THAT NO LONGER HOLDS A SEAT HAS NOTHING TO EXCHANGE.
|
|
316
|
+
//
|
|
317
|
+
// Removal is forward-only: the copy and its history stay ours to read, but edits no longer
|
|
318
|
+
// publish outward and theirs no longer arrive. So there is, by derivation, nothing left to
|
|
319
|
+
// reconcile — and the peers say so, refusing with `terminal: true` and the words "there is
|
|
320
|
+
// nothing further to reconcile".
|
|
321
|
+
//
|
|
322
|
+
// Without this the sweep derived its targets from the OTHER seats and never asked whether we
|
|
323
|
+
// still occupied one, so a removed holder asked forever: measured 105 refusals against one
|
|
324
|
+
// document in 85 minutes, every one of them terminal, every one of them asked again.
|
|
325
|
+
//
|
|
326
|
+
// The cost is not the wasted dial. Each attempt opens a session and pushes ack frames, and
|
|
327
|
+
// every frame consumes a relay canonical position while the receiving tree does not advance
|
|
328
|
+
// with it. That is what drives a conversation's tree behind the relay counter and strands
|
|
329
|
+
// real messages behind an ordering gap that nothing fills.
|
|
330
|
+
if (!seats.includes(ownerAgentId))
|
|
331
|
+
continue;
|
|
332
|
+
for (const seat of seats) {
|
|
315
333
|
if (seat === ownerAgentId)
|
|
316
334
|
continue;
|
|
317
335
|
const docs = targets.get(seat);
|
|
@@ -573,6 +591,9 @@ export function createDocumentLayer(deps) {
|
|
|
573
591
|
logger.warn("document.reconcile.refused_by_peer", {
|
|
574
592
|
senderAgentId, reason: frame.refusal.reason, terminal: frame.refusal.terminal, correlationId,
|
|
575
593
|
});
|
|
594
|
+
// ACTED ON, not merely surfaced. The comment above has always said "never to retry blindly",
|
|
595
|
+
// and until now nothing downstream could tell a refusal from a success.
|
|
596
|
+
deps.onPeerRefusal?.(ownerAgentId, senderAgentId, frame.refusal.terminal);
|
|
576
597
|
return { ok: true };
|
|
577
598
|
}
|
|
578
599
|
for (const block of frame.documents) {
|
|
@@ -581,6 +602,7 @@ export function createDocumentLayer(deps) {
|
|
|
581
602
|
documentId: block.document_id, senderAgentId,
|
|
582
603
|
reason: block.refusal.reason, terminal: block.refusal.terminal, correlationId,
|
|
583
604
|
});
|
|
605
|
+
deps.onPeerRefusal?.(ownerAgentId, senderAgentId, block.refusal.terminal);
|
|
584
606
|
}
|
|
585
607
|
}
|
|
586
608
|
if (frame.exchange_version !== DOCUMENT_RECONCILE_EXCHANGE_VERSION) {
|
|
@@ -792,7 +814,15 @@ export function createDocumentLayer(deps) {
|
|
|
792
814
|
return { ok: true };
|
|
793
815
|
};
|
|
794
816
|
/** SYNC-P3 — step 1: send our position for these documents to a peer. */
|
|
817
|
+
// DOD-M12B-SHUTDOWN-1: THE CHOKE POINT for outbound reconciles. The scheduler is only one of the
|
|
818
|
+
// four callers — `nudgeSeats` and the two invite notices reach here directly, outside it — so
|
|
819
|
+
// gating the scheduler alone left three paths still dialling on the way out. `cello_doc_write`,
|
|
820
|
+
// `cello_doc_publish` and `cello_doc_invite` are all still SERVED during shutdown, because the
|
|
821
|
+
// IPC server is the last thing stopped, so this is not a theoretical window.
|
|
822
|
+
let reconcileStopped = false;
|
|
795
823
|
const initiateReconcile = async (ownerAgentId, peerAgentId, documentIds) => {
|
|
824
|
+
if (reconcileStopped)
|
|
825
|
+
return { ok: false, reason: "daemon_shutting_down" };
|
|
796
826
|
const reads = reconcileReads(ownerAgentId);
|
|
797
827
|
const blocks = documentIds.map((id) => buildReconcileBlock(reads, id));
|
|
798
828
|
const sent = await deps.sendFrame(ownerAgentId, peerAgentId, encodeDocumentReconcile({
|
|
@@ -910,6 +940,9 @@ export function createDocumentLayer(deps) {
|
|
|
910
940
|
},
|
|
911
941
|
});
|
|
912
942
|
return {
|
|
943
|
+
/** DOD-M12B-SHUTDOWN-1 — see the interface. One-way, idempotent, and the single place that
|
|
944
|
+
* closes the whole class rather than one of the four callers. */
|
|
945
|
+
stopReconciling() { reconcileStopped = true; },
|
|
913
946
|
amendments,
|
|
914
947
|
verifySignature,
|
|
915
948
|
holdersFor,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-layer.js","sourceRoot":"","sources":["../src/document-layer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"document-layer.js","sourceRoot":"","sources":["../src/document-layer.ts"],"names":[],"mappings":"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"}
|