@cello-protocol/daemon 0.0.177 → 0.0.179
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/daemon.js +1 -5
- package/dist/daemon.js.map +1 -1
- package/dist/document-layer.d.ts +5 -0
- package/dist/document-layer.d.ts.map +1 -1
- package/dist/document-layer.js +38 -13
- package/dist/document-layer.js.map +1 -1
- package/dist/document-reconcile-scheduler.d.ts +62 -23
- package/dist/document-reconcile-scheduler.d.ts.map +1 -1
- package/dist/document-reconcile-scheduler.js +103 -27
- package/dist/document-reconcile-scheduler.js.map +1 -1
- package/dist/session-node-manager.d.ts +22 -1
- package/dist/session-node-manager.d.ts.map +1 -1
- package/dist/session-node-manager.js +100 -1
- package/dist/session-node-manager.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-layer.d.ts","sourceRoot":"","sources":["../src/document-layer.ts"],"names":[],"mappings":"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
|
|
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
|
@@ -271,24 +271,48 @@ export function createDocumentLayer(deps) {
|
|
|
271
271
|
return "stranger";
|
|
272
272
|
};
|
|
273
273
|
/**
|
|
274
|
-
*
|
|
275
|
-
*
|
|
276
|
-
*
|
|
277
|
-
*
|
|
274
|
+
* DOD-DOC-PUSH-NOT-POLL-1 — WHAT WE HOLD THAT THIS PARTY HAS NOT CONFIRMED RECEIVING, as a
|
|
275
|
+
* fingerprint the scheduler compares and never interprets; `null` means nothing is pending.
|
|
276
|
+
*
|
|
277
|
+
* This is the SAME comparison that answers "are they behind" on the list surface, deliberately
|
|
278
|
+
* written once: two copies of it is two daemons disagreeing about who needs an exchange. The
|
|
279
|
+
* list projects it to a boolean; the sweep needs the VALUE, because it must tell an unchanged
|
|
280
|
+
* holding (already offered — go quiet) from a new one (a trigger — speak now).
|
|
281
|
+
*
|
|
282
|
+
* A party with no view row at all has confirmed nothing, so everything we hold is pending.
|
|
283
|
+
*
|
|
284
|
+
* NOT the retired `pendingContent` count (R47): that was an operator-facing number no ledger
|
|
285
|
+
* could make truthful. This never leaves the scheduler, and holds no authority — R41 stands,
|
|
286
|
+
* it may only delay an exchange.
|
|
278
287
|
*/
|
|
279
|
-
const
|
|
280
|
-
const
|
|
281
|
-
if (!view)
|
|
282
|
-
return { sync: "unseen", lastSyncedAtMs: null };
|
|
283
|
-
let behind = false;
|
|
288
|
+
const pendingAgainstView = (ownerAgentId, documentId, view) => {
|
|
289
|
+
const parts = [];
|
|
284
290
|
for (const [author, mark] of amendments.watermarks(ownerAgentId, documentId)) {
|
|
285
|
-
if (mark.seq > (view
|
|
286
|
-
|
|
291
|
+
if (mark.seq > (view?.govSeqs[author] ?? 0))
|
|
292
|
+
parts.push(`g:${author}:${mark.seq}`);
|
|
287
293
|
}
|
|
288
294
|
for (const [author, count] of store.envelopeCountsBySender(ownerAgentId, documentId)) {
|
|
289
|
-
if (count > (view
|
|
290
|
-
|
|
295
|
+
if (count > (view?.contentCounts[author] ?? 0))
|
|
296
|
+
parts.push(`c:${author}:${count}`);
|
|
291
297
|
}
|
|
298
|
+
if (parts.length === 0)
|
|
299
|
+
return null;
|
|
300
|
+
parts.sort();
|
|
301
|
+
return parts.join(",");
|
|
302
|
+
};
|
|
303
|
+
const pendingFor = (ownerAgentId, documentId, partyAgentId) => pendingAgainstView(ownerAgentId, documentId, store.partyView(ownerAgentId, documentId, partyAgentId));
|
|
304
|
+
/**
|
|
305
|
+
* SYNC-R46 / spec §9 — one party's sync state for the LIST SURFACE, projected from `pendingFor`
|
|
306
|
+
* against our own positions. Never a correctness input (R44): the same comparison decides what
|
|
307
|
+
* the operator is shown and whether the sweep has anything to say, so the two cannot disagree.
|
|
308
|
+
*/
|
|
309
|
+
const partySync = (ownerAgentId, documentId, partyAgentId) => {
|
|
310
|
+
const view = store.partyView(ownerAgentId, documentId, partyAgentId);
|
|
311
|
+
if (!view)
|
|
312
|
+
return { sync: "unseen", lastSyncedAtMs: null };
|
|
313
|
+
// The row we already hold — re-reading it here doubled the row reads on a surface that walks
|
|
314
|
+
// every party of every document (review F6).
|
|
315
|
+
const behind = pendingAgainstView(ownerAgentId, documentId, view) !== null;
|
|
292
316
|
const blockedBy = view.refused.length === 0
|
|
293
317
|
? undefined
|
|
294
318
|
: view.refused.find((hash) => store.getEnvelopeLog(ownerAgentId, documentId).some((row) => row.docPrevHash === hash));
|
|
@@ -949,6 +973,7 @@ export function createDocumentLayer(deps) {
|
|
|
949
973
|
isCurrentHolder,
|
|
950
974
|
standingOf,
|
|
951
975
|
partySync,
|
|
976
|
+
pendingFor,
|
|
952
977
|
sweepTargets,
|
|
953
978
|
initiateReconcile,
|
|
954
979
|
governanceFrontierFor: (ownerAgentId, documentId) => {
|
|
@@ -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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"}
|
|
@@ -12,12 +12,44 @@
|
|
|
12
12
|
* reachability signal RESETS backoff: the backoff modeled "they do not answer", and here
|
|
13
13
|
* they demonstrably just did.
|
|
14
14
|
* 3. the periodic sweep — `sweep`, wired to a timer. Bounded per R43: batched per party (R16's
|
|
15
|
-
* cap is the exchange's own),
|
|
16
|
-
*
|
|
17
|
-
* and backed off for parties that do not answer.
|
|
15
|
+
* cap is the exchange's own), and — DOD-DOC-PUSH-NOT-POLL-1 — it speaks only for a party we
|
|
16
|
+
* HOLD something for. A timer is not a reason to speak.
|
|
18
17
|
*
|
|
19
18
|
* R42: the in-flight mark is TIME-BOUNDED and released LOUDLY on expiry. An unbounded in-flight
|
|
20
19
|
* mark is the stall this milestone already paid for twice.
|
|
20
|
+
*
|
|
21
|
+
* DOD-DOC-PUSH-NOT-POLL-1 (Andre, 2026-08-18) — WHAT THE TIMER MAY NO LONGER DO, and what it cost.
|
|
22
|
+
* The suppressor used to be a BELIEF with an expiry: a party was skipped only while every shared
|
|
23
|
+
* document read in_sync AND had been exchanged within ten minutes. Past the window it asked again
|
|
24
|
+
* whether or not anything had changed. Measured live: three agents, thirty documents, the freshest
|
|
25
|
+
* exchange days old, and one stale timestamp kept a whole party — fourteen documents — sweeping
|
|
26
|
+
* every 120 seconds forever. Each of those frames takes a position in the CONVERSATION's hash
|
|
27
|
+
* chain, so a quiet document spends a real conversation's sequence numbers: 34 positions on one
|
|
28
|
+
* live session, 2 of them actual messages, and the seal refused `session_incomplete`.
|
|
29
|
+
*
|
|
30
|
+
* The rule now: WE SPEAK WHEN WE HOLD SOMETHING THE PARTY HAS NOT CONFIRMED RECEIVING, and an
|
|
31
|
+
* unchanged holding is offered once, not on every tick. Nothing pending, no frame, no position.
|
|
32
|
+
*
|
|
33
|
+
* THE GATE IS ON THE DECISION, NOT ON THE FRAME'S CONTENTS (review F2). Once one document has
|
|
34
|
+
* justified speaking to a party, the frame carries every document shared with them: a block is
|
|
35
|
+
* POSITIONS ONLY, and the responder replies solely for a document where one side is actually
|
|
36
|
+
* ahead — so a quiet document rides along for bytes, never for a frame or a position. Narrowing
|
|
37
|
+
* the list would have dropped the pull for those documents and saved nothing.
|
|
38
|
+
*
|
|
39
|
+
* THE TRADE, STATED RATHER THAN HIDDEN: `pendingFor` can only see what we hold that they lack —
|
|
40
|
+
* never what they hold that we lack — so removing the expiry removes the timer-driven PULL. The
|
|
41
|
+
* pull moves onto the two triggers that are events rather than clocks: their publish nudges us
|
|
42
|
+
* (R39 trigger 1), and a session with them coming up sweeps everything (`onReachable`, which
|
|
43
|
+
* deliberately does NOT inherit the pending gate).
|
|
44
|
+
*
|
|
45
|
+
* THE THIRD TRADE, WHICH IS A REMOVAL CASE (review F4). A removed holder is in neither the
|
|
46
|
+
* participants nor the invited set of the remover's derived state, so the REMOVER never sweeps to
|
|
47
|
+
* them — there is no push and no nudge in that direction. Their primary notice is the parked frame
|
|
48
|
+
* the relay holds; when that is gone, the backstop was their own belief expiring and asking, which
|
|
49
|
+
* earned the terminal `document_reconcile_removed` answer. That backstop now waits for them to
|
|
50
|
+
* hold something pending — their next write, or their next session. This WIDENS a gap the M14B
|
|
51
|
+
* board already names (DOD-SYNC-P6, "R32's terminal-refusal delivery is not exercised by the
|
|
52
|
+
* enforcers"); it does not open a new one, and nothing here forbids the exchange.
|
|
21
53
|
*/
|
|
22
54
|
import type { Logger } from "./types.js";
|
|
23
55
|
/** How long one attempt may hold the in-flight mark before the sweep stops honoring it. */
|
|
@@ -25,11 +57,6 @@ export declare const RECONCILE_INFLIGHT_BOUND_MS = 60000;
|
|
|
25
57
|
/** First back-off step for a party that did not answer; doubles per consecutive failure. */
|
|
26
58
|
export declare const RECONCILE_BACKOFF_BASE_MS = 30000;
|
|
27
59
|
export declare const RECONCILE_BACKOFF_CAP_MS: number;
|
|
28
|
-
/**
|
|
29
|
-
* A party whose every shared document reads in_sync, heard from within this window, is believed
|
|
30
|
-
* current and skipped (R43). Past the window the sweep asks anyway — the cache is a belief.
|
|
31
|
-
*/
|
|
32
|
-
export declare const RECONCILE_BELIEVED_CURRENT_MS: number;
|
|
33
60
|
/** R16's per-frame batching ceiling, honored by chunking a party's documents. */
|
|
34
61
|
export declare const RECONCILE_BATCH_CAP = 32;
|
|
35
62
|
export interface ReconcileSchedulerDeps {
|
|
@@ -41,13 +68,14 @@ export interface ReconcileSchedulerDeps {
|
|
|
41
68
|
*/
|
|
42
69
|
sweepTargets(ownerAgentId: string): Map<string, string[]>;
|
|
43
70
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
71
|
+
* DOD-DOC-PUSH-NOT-POLL-1 — WHAT we hold on this document that this party has not confirmed
|
|
72
|
+
* receiving, as a comparable fingerprint; `null` when there is nothing. Derived by the caller
|
|
73
|
+
* from the same comparison that answers "are they behind" on the list surface — two copies of
|
|
74
|
+
* that question is two daemons disagreeing about who needs an exchange.
|
|
75
|
+
*
|
|
76
|
+
* Compared, never interpreted: the scheduler only asks whether it changed since it last spoke.
|
|
46
77
|
*/
|
|
47
|
-
|
|
48
|
-
sync: "in_sync" | "behind" | "unseen";
|
|
49
|
-
lastSyncedAtMs: number | null;
|
|
50
|
-
};
|
|
78
|
+
pendingFor(ownerAgentId: string, documentId: string, partyAgentId: string): string | null;
|
|
51
79
|
initiateReconcile(ownerAgentId: string, peerAgentId: string, documentIds: readonly string[]): Promise<{
|
|
52
80
|
ok: true;
|
|
53
81
|
} | {
|
|
@@ -60,20 +88,21 @@ export interface ReconcileSchedulerDeps {
|
|
|
60
88
|
* ladder walks a fast-sweep test out of its window). Omitted = the production constants.
|
|
61
89
|
*/
|
|
62
90
|
backoffBaseMs?: number;
|
|
63
|
-
/**
|
|
64
|
-
* Same test-pace escape for the believed-current window — see backoffBaseMs. CLAMPED to the
|
|
65
|
-
* production constant as a CEILING (review F5): the backoff has a cap and this did not, and an
|
|
66
|
-
* override longer than the production window would let one mis-set environment variable suppress
|
|
67
|
-
* sweeps for as long as it liked. R41 permits scheduling state to DELAY an exchange, never to
|
|
68
|
-
* forbid one, so the only direction this knob may move is shorter.
|
|
69
|
-
*/
|
|
70
|
-
believedCurrentMs?: number;
|
|
71
91
|
}
|
|
72
92
|
export interface SweepResult {
|
|
73
93
|
attempted: number;
|
|
94
|
+
/** Held back because this peer FAILED or REFUSED us. Look at the peer. */
|
|
74
95
|
skippedBackoff: number;
|
|
75
96
|
skippedInFlight: number;
|
|
76
|
-
|
|
97
|
+
/**
|
|
98
|
+
* Held back because we had nothing NEW to say — we already offered this exact holding. Kept
|
|
99
|
+
* apart from `skippedBackoff` (review F5) because this unit exists to make sweep traffic
|
|
100
|
+
* diagnosable from these very logs, and one counter for two causes sends the reader to the
|
|
101
|
+
* wrong subsystem.
|
|
102
|
+
*/
|
|
103
|
+
skippedQuiet: number;
|
|
104
|
+
/** Nothing pending at all: no frame was owed to this party. */
|
|
105
|
+
skippedNothingPending: number;
|
|
77
106
|
failed: number;
|
|
78
107
|
}
|
|
79
108
|
export declare class ReconcileScheduler {
|
|
@@ -101,6 +130,16 @@ export declare class ReconcileScheduler {
|
|
|
101
130
|
* R39's second trigger: this party is demonstrably reachable RIGHT NOW — a session with them
|
|
102
131
|
* just came up. Backoff is reset (it modeled silence; they answered) and the attempt fires
|
|
103
132
|
* for every shared document, in R16-capped batches.
|
|
133
|
+
*
|
|
134
|
+
* DELIBERATELY EXEMPT FROM THE PENDING GATE (DOD-DOC-PUSH-NOT-POLL-1). The gate can only see
|
|
135
|
+
* what we hold that they lack; the exchange is the only thing that sees the other direction.
|
|
136
|
+
* Take the gate off the timer and this becomes where the PULL lives, so gating it here too
|
|
137
|
+
* would leave nothing that ever asks.
|
|
138
|
+
*
|
|
139
|
+
* It DOES record what it just offered (review F3). Nulling that instead cost one guaranteed
|
|
140
|
+
* duplicate frame per session establishment — the sweep tick minutes later would find no
|
|
141
|
+
* record of the offer, treat an unchanged holding as new, and spend another position in the
|
|
142
|
+
* conversation's hash chain. That is the exact currency this unit defends.
|
|
104
143
|
*/
|
|
105
144
|
onReachable(ownerAgentId: string, peerAgentId: string): Promise<void>;
|
|
106
145
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-reconcile-scheduler.d.ts","sourceRoot":"","sources":["../src/document-reconcile-scheduler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"document-reconcile-scheduler.d.ts","sourceRoot":"","sources":["../src/document-reconcile-scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,2FAA2F;AAC3F,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAClD,4FAA4F;AAC5F,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAChD,eAAO,MAAM,wBAAwB,QAAc,CAAC;AACpD,iFAAiF;AACjF,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,MAAM,WAAW,sBAAsB;IACrC,GAAG,IAAI,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1D;;;;;;;OAOG;IACH,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1F,iBAAiB,CACf,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAkBD,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,qBAAqB,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,kBAAkB;;gBAOjB,IAAI,EAAE,sBAAsB;IAIxC;;;;;;;;;;;;;;;;OAgBG;IACH,IAAI,IAAI,IAAI;IA+CZ;;;;;;;;;;;;;;OAcG;IACG,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3E;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAe/E,4DAA4D;IACtD,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAiHxD"}
|
|
@@ -12,23 +12,50 @@
|
|
|
12
12
|
* reachability signal RESETS backoff: the backoff modeled "they do not answer", and here
|
|
13
13
|
* they demonstrably just did.
|
|
14
14
|
* 3. the periodic sweep — `sweep`, wired to a timer. Bounded per R43: batched per party (R16's
|
|
15
|
-
* cap is the exchange's own),
|
|
16
|
-
*
|
|
17
|
-
* and backed off for parties that do not answer.
|
|
15
|
+
* cap is the exchange's own), and — DOD-DOC-PUSH-NOT-POLL-1 — it speaks only for a party we
|
|
16
|
+
* HOLD something for. A timer is not a reason to speak.
|
|
18
17
|
*
|
|
19
18
|
* R42: the in-flight mark is TIME-BOUNDED and released LOUDLY on expiry. An unbounded in-flight
|
|
20
19
|
* mark is the stall this milestone already paid for twice.
|
|
20
|
+
*
|
|
21
|
+
* DOD-DOC-PUSH-NOT-POLL-1 (Andre, 2026-08-18) — WHAT THE TIMER MAY NO LONGER DO, and what it cost.
|
|
22
|
+
* The suppressor used to be a BELIEF with an expiry: a party was skipped only while every shared
|
|
23
|
+
* document read in_sync AND had been exchanged within ten minutes. Past the window it asked again
|
|
24
|
+
* whether or not anything had changed. Measured live: three agents, thirty documents, the freshest
|
|
25
|
+
* exchange days old, and one stale timestamp kept a whole party — fourteen documents — sweeping
|
|
26
|
+
* every 120 seconds forever. Each of those frames takes a position in the CONVERSATION's hash
|
|
27
|
+
* chain, so a quiet document spends a real conversation's sequence numbers: 34 positions on one
|
|
28
|
+
* live session, 2 of them actual messages, and the seal refused `session_incomplete`.
|
|
29
|
+
*
|
|
30
|
+
* The rule now: WE SPEAK WHEN WE HOLD SOMETHING THE PARTY HAS NOT CONFIRMED RECEIVING, and an
|
|
31
|
+
* unchanged holding is offered once, not on every tick. Nothing pending, no frame, no position.
|
|
32
|
+
*
|
|
33
|
+
* THE GATE IS ON THE DECISION, NOT ON THE FRAME'S CONTENTS (review F2). Once one document has
|
|
34
|
+
* justified speaking to a party, the frame carries every document shared with them: a block is
|
|
35
|
+
* POSITIONS ONLY, and the responder replies solely for a document where one side is actually
|
|
36
|
+
* ahead — so a quiet document rides along for bytes, never for a frame or a position. Narrowing
|
|
37
|
+
* the list would have dropped the pull for those documents and saved nothing.
|
|
38
|
+
*
|
|
39
|
+
* THE TRADE, STATED RATHER THAN HIDDEN: `pendingFor` can only see what we hold that they lack —
|
|
40
|
+
* never what they hold that we lack — so removing the expiry removes the timer-driven PULL. The
|
|
41
|
+
* pull moves onto the two triggers that are events rather than clocks: their publish nudges us
|
|
42
|
+
* (R39 trigger 1), and a session with them coming up sweeps everything (`onReachable`, which
|
|
43
|
+
* deliberately does NOT inherit the pending gate).
|
|
44
|
+
*
|
|
45
|
+
* THE THIRD TRADE, WHICH IS A REMOVAL CASE (review F4). A removed holder is in neither the
|
|
46
|
+
* participants nor the invited set of the remover's derived state, so the REMOVER never sweeps to
|
|
47
|
+
* them — there is no push and no nudge in that direction. Their primary notice is the parked frame
|
|
48
|
+
* the relay holds; when that is gone, the backstop was their own belief expiring and asking, which
|
|
49
|
+
* earned the terminal `document_reconcile_removed` answer. That backstop now waits for them to
|
|
50
|
+
* hold something pending — their next write, or their next session. This WIDENS a gap the M14B
|
|
51
|
+
* board already names (DOD-SYNC-P6, "R32's terminal-refusal delivery is not exercised by the
|
|
52
|
+
* enforcers"); it does not open a new one, and nothing here forbids the exchange.
|
|
21
53
|
*/
|
|
22
54
|
/** How long one attempt may hold the in-flight mark before the sweep stops honoring it. */
|
|
23
55
|
export const RECONCILE_INFLIGHT_BOUND_MS = 60_000;
|
|
24
56
|
/** First back-off step for a party that did not answer; doubles per consecutive failure. */
|
|
25
57
|
export const RECONCILE_BACKOFF_BASE_MS = 30_000;
|
|
26
58
|
export const RECONCILE_BACKOFF_CAP_MS = 15 * 60_000;
|
|
27
|
-
/**
|
|
28
|
-
* A party whose every shared document reads in_sync, heard from within this window, is believed
|
|
29
|
-
* current and skipped (R43). Past the window the sweep asks anyway — the cache is a belief.
|
|
30
|
-
*/
|
|
31
|
-
export const RECONCILE_BELIEVED_CURRENT_MS = 10 * 60_000;
|
|
32
59
|
/** R16's per-frame batching ceiling, honored by chunking a party's documents. */
|
|
33
60
|
export const RECONCILE_BATCH_CAP = 32;
|
|
34
61
|
export class ReconcileScheduler {
|
|
@@ -72,15 +99,46 @@ export class ReconcileScheduler {
|
|
|
72
99
|
#stateFor(key) {
|
|
73
100
|
let s = this.#state.get(key);
|
|
74
101
|
if (!s) {
|
|
75
|
-
s = {
|
|
102
|
+
s = {
|
|
103
|
+
nextAttemptMs: 0,
|
|
104
|
+
failures: 0,
|
|
105
|
+
inFlightUntilMs: null,
|
|
106
|
+
lastPendingSignature: null,
|
|
107
|
+
repeats: 0,
|
|
108
|
+
quietUntilMs: 0,
|
|
109
|
+
};
|
|
76
110
|
this.#state.set(key, s);
|
|
77
111
|
}
|
|
78
112
|
return s;
|
|
79
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* What we hold for this party that they have not confirmed, across the documents we share:
|
|
116
|
+
* `null` when there is nothing anywhere. One computation for both triggers, so an offer made by
|
|
117
|
+
* one is recognised as already-made by the other.
|
|
118
|
+
*/
|
|
119
|
+
#holdingFor(ownerAgentId, peerAgentId, docs) {
|
|
120
|
+
const parts = [];
|
|
121
|
+
for (const documentId of docs) {
|
|
122
|
+
const pending = this.#d.pendingFor(ownerAgentId, documentId, peerAgentId);
|
|
123
|
+
if (pending !== null)
|
|
124
|
+
parts.push(`${documentId}=${pending}`);
|
|
125
|
+
}
|
|
126
|
+
return parts.length === 0 ? null : parts.join("\n");
|
|
127
|
+
}
|
|
80
128
|
/**
|
|
81
129
|
* R39's second trigger: this party is demonstrably reachable RIGHT NOW — a session with them
|
|
82
130
|
* just came up. Backoff is reset (it modeled silence; they answered) and the attempt fires
|
|
83
131
|
* for every shared document, in R16-capped batches.
|
|
132
|
+
*
|
|
133
|
+
* DELIBERATELY EXEMPT FROM THE PENDING GATE (DOD-DOC-PUSH-NOT-POLL-1). The gate can only see
|
|
134
|
+
* what we hold that they lack; the exchange is the only thing that sees the other direction.
|
|
135
|
+
* Take the gate off the timer and this becomes where the PULL lives, so gating it here too
|
|
136
|
+
* would leave nothing that ever asks.
|
|
137
|
+
*
|
|
138
|
+
* It DOES record what it just offered (review F3). Nulling that instead cost one guaranteed
|
|
139
|
+
* duplicate frame per session establishment — the sweep tick minutes later would find no
|
|
140
|
+
* record of the offer, treat an unchanged holding as new, and spend another position in the
|
|
141
|
+
* conversation's hash chain. That is the exact currency this unit defends.
|
|
84
142
|
*/
|
|
85
143
|
async onReachable(ownerAgentId, peerAgentId) {
|
|
86
144
|
if (this.#stopped)
|
|
@@ -89,9 +147,12 @@ export class ReconcileScheduler {
|
|
|
89
147
|
if (!docs || docs.length === 0)
|
|
90
148
|
return;
|
|
91
149
|
const s = this.#stateFor(this.#key(ownerAgentId, peerAgentId));
|
|
150
|
+
// They answered: silence is no longer the model, so both ladders start over.
|
|
92
151
|
s.failures = 0;
|
|
152
|
+
s.repeats = 0;
|
|
93
153
|
s.nextAttemptMs = 0;
|
|
94
|
-
|
|
154
|
+
s.quietUntilMs = 0;
|
|
155
|
+
await this.#attempt(ownerAgentId, peerAgentId, docs, s, this.#holdingFor(ownerAgentId, peerAgentId, docs));
|
|
95
156
|
}
|
|
96
157
|
/**
|
|
97
158
|
* A PEER ANSWERED "NO". That is an answer, and it must slow the asking down.
|
|
@@ -125,7 +186,8 @@ export class ReconcileScheduler {
|
|
|
125
186
|
/** R39's third trigger — one bounded pass for one owner. */
|
|
126
187
|
async sweep(ownerAgentId) {
|
|
127
188
|
const result = {
|
|
128
|
-
attempted: 0, skippedBackoff: 0, skippedInFlight: 0,
|
|
189
|
+
attempted: 0, skippedBackoff: 0, skippedInFlight: 0,
|
|
190
|
+
skippedQuiet: 0, skippedNothingPending: 0, failed: 0,
|
|
129
191
|
};
|
|
130
192
|
// DOD-M12B-SHUTDOWN-1: the in-flight pass stops HERE, not at the next timer tick.
|
|
131
193
|
if (this.#stopped)
|
|
@@ -159,28 +221,35 @@ export class ReconcileScheduler {
|
|
|
159
221
|
result.skippedBackoff += 1;
|
|
160
222
|
continue;
|
|
161
223
|
}
|
|
162
|
-
//
|
|
163
|
-
//
|
|
164
|
-
//
|
|
165
|
-
const
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
224
|
+
// DOD-DOC-PUSH-NOT-POLL-1 — the only reason to speak: we hold something they have not
|
|
225
|
+
// confirmed receiving. No holding, no frame and no sequence position, however long ago
|
|
226
|
+
// this party last exchanged.
|
|
227
|
+
const signature = this.#holdingFor(ownerAgentId, peerAgentId, docs);
|
|
228
|
+
if (signature === null) {
|
|
229
|
+
result.skippedNothingPending += 1;
|
|
230
|
+
continue;
|
|
231
|
+
}
|
|
232
|
+
// Offered already, and nothing has changed since. A real change steps over this — it is a
|
|
233
|
+
// trigger (R39), not noise — but the refusal/failure backoff checked ABOVE is never stepped
|
|
234
|
+
// over, which is what keeps DOD-SYNC-REFUSAL-BACKOFF-1 intact. The order of these two
|
|
235
|
+
// blocks is the guarantee; a test pins it.
|
|
236
|
+
if (signature === s.lastPendingSignature && now < s.quietUntilMs) {
|
|
237
|
+
result.skippedQuiet += 1;
|
|
174
238
|
continue;
|
|
175
239
|
}
|
|
176
240
|
result.attempted += 1;
|
|
177
|
-
|
|
241
|
+
// EVERY shared document rides the frame, not just the ones that justified it (review F2):
|
|
242
|
+
// a block carries positions only, and the responder answers solely where a side is ahead,
|
|
243
|
+
// so the quiet documents cost bytes rather than a frame — and keep their pull.
|
|
244
|
+
const ok = await this.#attempt(ownerAgentId, peerAgentId, docs, s, signature);
|
|
178
245
|
if (!ok)
|
|
179
246
|
result.failed += 1;
|
|
180
247
|
}
|
|
181
248
|
return result;
|
|
182
249
|
}
|
|
183
|
-
async #attempt(ownerAgentId, peerAgentId, docs, s) {
|
|
250
|
+
async #attempt(ownerAgentId, peerAgentId, docs, s, signature) {
|
|
251
|
+
// Read BEFORE the send: whether this round is a re-offer decides the cadence below.
|
|
252
|
+
const repeat = signature !== null && signature === s.lastPendingSignature;
|
|
184
253
|
const started = this.#d.now();
|
|
185
254
|
s.inFlightUntilMs = started + RECONCILE_INFLIGHT_BOUND_MS;
|
|
186
255
|
let allOk = true;
|
|
@@ -211,13 +280,20 @@ export class ReconcileScheduler {
|
|
|
211
280
|
s.inFlightUntilMs = null;
|
|
212
281
|
}
|
|
213
282
|
const now = this.#d.now();
|
|
283
|
+
const base = this.#d.backoffBaseMs ?? RECONCILE_BACKOFF_BASE_MS;
|
|
214
284
|
if (allOk) {
|
|
215
285
|
s.failures = 0;
|
|
216
|
-
s.nextAttemptMs = now;
|
|
286
|
+
s.nextAttemptMs = now;
|
|
287
|
+
// THE SEND SUCCEEDING MEANS THE FRAME WENT OUT, NEVER THAT THE PARTY ACTED ON IT. An
|
|
288
|
+
// invitation nobody accepts stays pending forever, so without this the sweep re-offered the
|
|
289
|
+
// identical holding on every tick — one frame each, each one spending a position in the
|
|
290
|
+
// conversation's hash chain. Every re-offer doubles the silence, up to the same cap.
|
|
291
|
+
s.repeats = repeat ? s.repeats + 1 : 1;
|
|
292
|
+
s.lastPendingSignature = signature;
|
|
293
|
+
s.quietUntilMs = now + Math.min(base * 2 ** (s.repeats - 1), RECONCILE_BACKOFF_CAP_MS);
|
|
217
294
|
}
|
|
218
295
|
else {
|
|
219
296
|
s.failures += 1;
|
|
220
|
-
const base = this.#d.backoffBaseMs ?? RECONCILE_BACKOFF_BASE_MS;
|
|
221
297
|
s.nextAttemptMs = now + Math.min(base * 2 ** (s.failures - 1), RECONCILE_BACKOFF_CAP_MS);
|
|
222
298
|
}
|
|
223
299
|
return allOk;
|