@cello-protocol/daemon 0.0.174 → 0.0.175
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/close-session-handler.d.ts.map +1 -1
- package/dist/close-session-handler.js +10 -186
- package/dist/close-session-handler.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +22 -37
- package/dist/daemon.js.map +1 -1
- package/dist/seal-escalation.d.ts +80 -0
- package/dist/seal-escalation.d.ts.map +1 -0
- package/dist/seal-escalation.js +201 -0
- package/dist/seal-escalation.js.map +1 -0
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close-session-handler.d.ts","sourceRoot":"","sources":["../src/close-session-handler.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"close-session-handler.d.ts","sourceRoot":"","sources":["../src/close-session-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,9 +31,10 @@ import { randomUUID } from "node:crypto";
|
|
|
31
31
|
const ABANDON_NOTICE_DEADLINE_MS = 3_000;
|
|
32
32
|
import { classifyOnlineResult } from "./cross-node-negotiation.js";
|
|
33
33
|
import { validateSessionName } from "./session-name.js";
|
|
34
|
+
import { escalateToUnilateralSeal as runUnilateralEscalation, UNILATERAL_SEAL_TIMEOUT_MS } from "./seal-escalation.js";
|
|
34
35
|
export function registerCloseSessionHandler(deps) {
|
|
35
36
|
const { resolveConsortiumRoster, handlers, logger, sessionNodeManager, getConnState, resolveCurrentAgent, NO_CURRENT_AGENT_RESPONSE, getKeyProvider, signalingFor, sendOver, waitForSignalingConnected, openVisitingConnection, runDiscoveryLookup, crossNodeBrokerBySession, sealKey, sealInterruptedInProgress, pendingSealWaiters, pendingUnilateralWaiters, handleSealInterruptedFlow, handleActiveSealFlow, recoverParkedContent, } = deps;
|
|
36
|
-
const UNILATERAL_TIMEOUT_MS = deps.unilateralTimeoutMs ??
|
|
37
|
+
const UNILATERAL_TIMEOUT_MS = deps.unilateralTimeoutMs ?? UNILATERAL_SEAL_TIMEOUT_MS;
|
|
37
38
|
/**
|
|
38
39
|
* How long the seal path waits to learn where the counterparty is homed.
|
|
39
40
|
*
|
|
@@ -207,192 +208,15 @@ export function registerCloseSessionHandler(deps) {
|
|
|
207
208
|
};
|
|
208
209
|
handlers.set("cello_close_session", closeSession);
|
|
209
210
|
/**
|
|
210
|
-
* DOD-M12B-
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
* before: every exit from the interrupted branch is a `return`, so the active block below it —
|
|
214
|
-
* the only place this code lived — was structurally unreachable for an interrupted session. The
|
|
215
|
-
* result was that an interrupted session could never obtain a receipt, **even when a human closed
|
|
216
|
-
* it by hand**: it reached `seal_interrupted_pending`, a mutually signed record nobody was ever
|
|
217
|
-
* asked to notarize, and stopped there. 26 sessions sat in that state for up to 10.5 days.
|
|
218
|
-
*
|
|
219
|
-
* The directory enforces the delivery-grace gate and answers `seal_unilateral_too_early` with the
|
|
220
|
-
* time remaining, which is returned as `retry_after_seconds` so a caller that can wait does not
|
|
221
|
-
* have to be a human reading a sentence.
|
|
222
|
-
*/
|
|
223
|
-
const escalateToUnilateralSeal = async (record, sessionId, escalation, correlationId,
|
|
224
|
-
/**
|
|
225
|
-
* Refuse locally when the carry cannot possibly verify, instead of spending 30 s to be told
|
|
226
|
-
* nothing. ON for the two paths `submitAndEscalate` drives — the interrupted close and the
|
|
227
|
-
* `seal_interrupted_pending` close — and deliberately OFF for the ACTIVE one. Those two are new
|
|
228
|
-
* and are what the restart-seal resolver drives automatically for every orphan. The ACTIVE path's
|
|
229
|
-
* behaviour is left exactly as it was — it has shipped and been exercised for milestones, and
|
|
230
|
-
* a pre-flight refusal there could turn a seal that works today into one that does not.
|
|
211
|
+
* DOD-M12B-SEAL-ESCALATE-DUP-1: the body lives in `seal-escalation.ts` so the away/one-shot path
|
|
212
|
+
* in `daemon.ts` shares it. It used to be a second copy, and it missed every refusal this
|
|
213
|
+
* milestone added.
|
|
231
214
|
*/
|
|
232
|
-
opts = { refuseOnUnusableCarry: false }) => {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
// the directory rebuilds + verifies the tree OFFLINE — no directory→relay getSealLeaves dial. The
|
|
238
|
-
// store is keyed by the agent's K_local pubkey (the same key the relay client recorded under).
|
|
239
|
-
const sealAgentKp = getKeyProvider(record.agent_name);
|
|
240
|
-
const sealAgentPubkeyHex = sealAgentKp ? Buffer.from(await sealAgentKp.getPublicKey()).toString("hex") : "";
|
|
241
|
-
// NAMED SEPARATELY, because without it this falls through to an empty carry and answers
|
|
242
|
-
// `seal_carry_empty` — "the relay released the session, the receipt is no longer obtainable",
|
|
243
|
-
// which is TERMINAL in the restart-seal resolver. A local agent that is not loaded would have
|
|
244
|
-
// been written off as permanent relay-side loss, with a durable give-up row to match.
|
|
245
|
-
if (!sealAgentPubkeyHex) {
|
|
246
|
-
pendingUnilateralWaiters.delete(sealKey(record.agent_name, sessionId));
|
|
247
|
-
return {
|
|
248
|
-
ok: false,
|
|
249
|
-
reason: "seal_agent_key_unavailable",
|
|
250
|
-
guidance: "This agent's identity key is not loaded in this daemon, so the leaf chain a notarization is verified from cannot be read. Start the agent (cello_start_agent) and retry cello_close_session. Nothing about the session is lost.",
|
|
251
|
-
};
|
|
252
|
-
}
|
|
253
|
-
const sealCarry = sessionNodeManager.getSealCarry(sealAgentPubkeyHex, sessionId);
|
|
254
|
-
const seal_leaves = sealCarry.map((l) => ({
|
|
255
|
-
sequence_number: l.sequenceNumber,
|
|
256
|
-
leaf_kind: l.leafKind,
|
|
257
|
-
structure2_cbor: l.structure2Cbor,
|
|
258
|
-
structure1_cbor: l.structure1Cbor,
|
|
259
|
-
// Relay receipt (present only for the present party's OWN leaves — the seq-pinning teeth).
|
|
260
|
-
relay_id: l.relayId,
|
|
261
|
-
relay_timestamp: l.relayTimestamp,
|
|
262
|
-
relay_signature: l.relaySignatureHex ? new Uint8Array(Buffer.from(l.relaySignatureHex, "hex")) : undefined,
|
|
263
|
-
}));
|
|
264
|
-
// REFUSE LOCALLY FOR A LOCALLY-KNOWABLE FAILURE, rather than spending 30 s to be told nothing.
|
|
265
|
-
//
|
|
266
|
-
// Every directory-side refusal — `unilateral_leaves_unavailable`, `unilateral_chain_noncontiguous`,
|
|
267
|
-
// `unilateral_own_leaf_unwitnessed`, `unilateral_receipt_invalid`, `unilateral_root_unverifiable`,
|
|
268
|
-
// `unilateral_seal_leaf_invalid`, and the already-sealed dedup — is a bare `return` that sends
|
|
269
|
-
// no frame. All seven reach the caller as `seal_unilateral_timeout`, which names our own wait:
|
|
270
|
-
// the one thing that was working. That is this milestone's founding error-fidelity defect,
|
|
271
|
-
// reproduced, and the restart-seal resolver now hits it automatically for every orphan.
|
|
272
|
-
//
|
|
273
|
-
// Two of the causes are checkable here, from the carry we are about to send, and they are the
|
|
274
|
-
// dominant ones. The directory still re-checks everything — this refuses earlier and by name,
|
|
275
|
-
// it does not become the authority.
|
|
276
|
-
if (opts.refuseOnUnusableCarry && seal_leaves.length === 0) {
|
|
277
|
-
pendingUnilateralWaiters.delete(sealKey(record.agent_name, sessionId));
|
|
278
|
-
return {
|
|
279
|
-
ok: false,
|
|
280
|
-
reason: "seal_carry_empty",
|
|
281
|
-
guidance: "This side holds no relay-witnessed leaves for the session, so there is nothing the directory could rebuild the record from. That usually means the relay dropped the session (it releases one 24 hours after the last message) before it was closed. cello_transcript still shows what was said; a notarized receipt is no longer obtainable.",
|
|
282
|
-
};
|
|
283
|
-
}
|
|
284
|
-
const sequences = seal_leaves.map((l) => l.sequence_number).sort((a, b) => a - b);
|
|
285
|
-
const contiguousFromOne = sequences.every((n, i) => n === i + 1);
|
|
286
|
-
if (opts.refuseOnUnusableCarry && !contiguousFromOne) {
|
|
287
|
-
pendingUnilateralWaiters.delete(sealKey(record.agent_name, sessionId));
|
|
288
|
-
return {
|
|
289
|
-
ok: false,
|
|
290
|
-
reason: "seal_carry_noncontiguous",
|
|
291
|
-
guidance: `The record this side holds has a gap: the relay assigned sequences ${sequences.join(", ")}, and a unilateral seal requires an unbroken chain from 1. A message the relay witnessed never reached this daemon. Try again once it arrives (cello_receive drains what the relay still holds); if it never does, only a force-abandon can end the session, and that produces no receipt.`,
|
|
292
|
-
};
|
|
293
|
-
}
|
|
294
|
-
// A THIRD locally-knowable cause: a carry that already holds TWO of our SEAL ctrl leaves. Those
|
|
295
|
-
// sessions exist right now — the one-shot submit mark has always been in memory, so any close
|
|
296
|
-
// in flight across a restart could post a second before the durable recovery shipped. The
|
|
297
|
-
// directory refuses them with `unilateral_seal_leaf_invalid`, silently, so each one currently
|
|
298
|
-
// burns five resolver attempts and 30 s apiece before being reported as a directory timeout.
|
|
299
|
-
// JUDGED FIRST, because it is the PERMANENT one. Two of our own ctrl leaves can never be
|
|
300
|
-
// notarized by any directory, and a carry holding those plus the counterparty's would otherwise
|
|
301
|
-
// match the bilateral check below and be answered "wait, a better receipt is coming" — for a
|
|
302
|
-
// session where nothing is coming, and where the resolver would then spend five attempts
|
|
303
|
-
// instead of giving up once with the truthful reason.
|
|
304
|
-
const ownCtrl = sealCarry.filter((l) => l.leafKind === 0x02 && l.senderPubkeyHex === sealAgentPubkeyHex);
|
|
305
|
-
if (opts.refuseOnUnusableCarry && ownCtrl.length > 1) {
|
|
306
|
-
pendingUnilateralWaiters.delete(sealKey(record.agent_name, sessionId));
|
|
307
|
-
return {
|
|
308
|
-
ok: false,
|
|
309
|
-
reason: "seal_carry_duplicate_own_ctrl_leaf",
|
|
310
|
-
guidance: `This session's record holds ${ownCtrl.length} SEAL control leaves from this side where it may hold exactly one, so no directory can notarize it. That happens when a close was interrupted mid-flight and a later close posted a second leaf. The conversation itself is intact — cello_transcript shows it — but a notarized receipt is no longer obtainable, and only a force-abandon can end the session.`,
|
|
311
|
-
};
|
|
312
|
-
}
|
|
313
|
-
// WHAT THIS ACTUALLY CHECKS, and why it is deliberately NARROWER than the directory's rule.
|
|
314
|
-
// The directory refuses unless there is exactly ONE ctrl leaf (`ctrlLeaves.length !== 1`). This
|
|
315
|
-
// refuses only the case it can name usefully: more than one, from more than one SENDER — ours
|
|
316
|
-
// plus the counterparty's. Two cases the directory still refuses and this does NOT pre-empt:
|
|
317
|
-
// zero ctrl leaves — our own relay receipt may simply not have landed yet, so
|
|
318
|
-
// refusing here would be a FALSE refusal on a healthy session.
|
|
319
|
-
// >1, all authored by THEM — not ours to explain, and not actionable by this operator.
|
|
320
|
-
// The case it does catch is the responder-side normal: the relay reads two senders' leaves as
|
|
321
|
-
// both parties having posted and starts a full BILATERAL seal — a better receipt than a
|
|
322
|
-
// unilateral one — while this side would fire a unilateral request the directory refuses
|
|
323
|
-
// silently, costing a 30-second wait to be told nothing.
|
|
324
|
-
//
|
|
325
|
-
// ORDER MATTERS: the duplicate-own-leaf check above runs FIRST. A carry holding two of OUR
|
|
326
|
-
// leaves plus the counterparty's matches both predicates, and that session is permanently
|
|
327
|
-
// unsealable — telling the operator to wait for a bilateral seal that can never land would be
|
|
328
|
-
// worse than the silence this replaces.
|
|
329
|
-
const allCtrl = sealCarry.filter((l) => l.leafKind === 0x02);
|
|
330
|
-
if (opts.refuseOnUnusableCarry && allCtrl.length > 1 && new Set(allCtrl.map((l) => l.senderPubkeyHex)).size > 1) {
|
|
331
|
-
pendingUnilateralWaiters.delete(sealKey(record.agent_name, sessionId));
|
|
332
|
-
return {
|
|
333
|
-
ok: false,
|
|
334
|
-
reason: "seal_carry_bilateral_in_progress",
|
|
335
|
-
guidance: "Both parties have posted their SEAL leaf, so the relay has what it needs to notarize this BILATERALLY — a better receipt than a unilateral one, and asking for a unilateral seal now would be refused. Wait for the seal to land (cello_sessions shows the status) and read the receipt with cello_sealed_receipt.",
|
|
336
|
-
};
|
|
337
|
-
}
|
|
338
|
-
const sent = await sendOver(record.agent_name, {
|
|
339
|
-
type: "seal_unilateral",
|
|
340
|
-
session_id: new Uint8Array(Buffer.from(sessionId, "hex")),
|
|
341
|
-
reported_root: new Uint8Array(Buffer.from(escalation.reportedRootHex, "hex")),
|
|
342
|
-
reported_seq: escalation.sequenceNumber,
|
|
343
|
-
seal_leaves,
|
|
344
|
-
});
|
|
345
|
-
if (!sent.ok) {
|
|
346
|
-
pendingUnilateralWaiters.delete(sealKey(record.agent_name, sessionId));
|
|
347
|
-
return {
|
|
348
|
-
ok: false,
|
|
349
|
-
reason: "seal_unilateral_send_failed",
|
|
350
|
-
guidance: "The unilateral seal request could not be sent to the directory. Check the directory connection (cello status) and retry cello_close_session.",
|
|
351
|
-
};
|
|
352
|
-
}
|
|
353
|
-
let uniTimer;
|
|
354
|
-
const uniTimeoutP = new Promise((r) => {
|
|
355
|
-
uniTimer = setTimeout(() => r({ ok: false, reason: "seal_unilateral_timeout" }), UNILATERAL_TIMEOUT_MS);
|
|
356
|
-
});
|
|
357
|
-
const uniResult = await Promise.race([uniP, uniTimeoutP]);
|
|
358
|
-
clearTimeout(uniTimer);
|
|
359
|
-
pendingUnilateralWaiters.delete(sealKey(record.agent_name, sessionId));
|
|
360
|
-
if (uniResult.ok) {
|
|
361
|
-
logger.info("session.seal.completed", { sessionId, sealedRoot: uniResult.sealedRootHex, role: "unilateral", correlationId });
|
|
362
|
-
crossNodeBrokerBySession.delete(`${record.agent_name}:${sessionId}`); // Fix #1 review: evict on terminal seal success (a FAILED close keeps the entry so a retry can still reconnect).
|
|
363
|
-
// M8B FINDING-3 (cascade-2): return the legibility certificate inline — same shape as the
|
|
364
|
-
// bilateral close (AC-006) — so the operator gets the receipt on the surface that proves
|
|
365
|
-
// the seal, not just a bare root. It is also persisted for cello_get_sealed_receipt.
|
|
366
|
-
return {
|
|
367
|
-
ok: true,
|
|
368
|
-
sealed_root: uniResult.sealedRootHex,
|
|
369
|
-
seal_type: "unilateral",
|
|
370
|
-
...(uniResult.legibility !== undefined ? { legibility: uniResult.legibility } : {}),
|
|
371
|
-
};
|
|
372
|
-
}
|
|
373
|
-
if (uniResult.reason === "seal_unilateral_too_early") {
|
|
374
|
-
// F20: tell the operator WHEN the unilateral seal becomes available, not just "later".
|
|
375
|
-
const when = typeof uniResult.remainingSeconds === "number"
|
|
376
|
-
? `A unilateral seal becomes available in ~${uniResult.remainingSeconds}s. `
|
|
377
|
-
: "";
|
|
378
|
-
return {
|
|
379
|
-
ok: false,
|
|
380
|
-
reason: "seal_counterparty_pending",
|
|
381
|
-
// DOD-M12B-RESTART-SEAL-1: the deadline as a NUMBER, not only inside the sentence. The
|
|
382
|
-
// directory tells us exactly when this becomes allowed and, until now, the only consumer of
|
|
383
|
-
// that fact was English prose asking a human to come back in eleven minutes.
|
|
384
|
-
...(typeof uniResult.remainingSeconds === "number"
|
|
385
|
-
? { retry_after_seconds: uniResult.remainingSeconds }
|
|
386
|
-
: {}),
|
|
387
|
-
guidance: `Your SEAL leaf is recorded, but the counterparty has not closed and the directory's delivery-grace window has not yet elapsed, so a unilateral seal is not yet allowed. ${when}Retry cello_close_session after the grace period, or once the counterparty closes.`,
|
|
388
|
-
};
|
|
389
|
-
}
|
|
390
|
-
return {
|
|
391
|
-
ok: false,
|
|
392
|
-
reason: uniResult.reason,
|
|
393
|
-
guidance: "The unilateral seal did not complete (the directory could not verify the reported root, or the certificate failed verification). Confirm your messages reached the relay (cello_sessions) before retrying cello_close_session.",
|
|
394
|
-
};
|
|
395
|
-
};
|
|
215
|
+
const escalateToUnilateralSeal = (record, sessionId, escalation, correlationId, opts = { refuseOnUnusableCarry: false }) => runUnilateralEscalation({
|
|
216
|
+
logger, sessionNodeManager, sendOver, pendingUnilateralWaiters, sealKey, getKeyProvider,
|
|
217
|
+
timeoutMs: UNILATERAL_TIMEOUT_MS,
|
|
218
|
+
onSealed: (a, sid) => { crossNodeBrokerBySession.delete(`${a}:${sid}`); },
|
|
219
|
+
}, record.agent_name, sessionId, escalation, correlationId, opts);
|
|
396
220
|
/**
|
|
397
221
|
* Post this side's SEAL ctrl leaf (or recover the one a previous run already posted) and ask the
|
|
398
222
|
* directory to notarize. `null` means there was nothing to escalate with — the caller keeps its
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close-session-handler.js","sourceRoot":"","sources":["../src/close-session-handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"close-session-handler.js","sourceRoot":"","sources":["../src/close-session-handler.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EAOrB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EAOrB,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAmC,KAAK,UAAU,EAAsB,MAAM,iBAAiB,CAAC;AAEvG,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAO/D,OAAO,EAAoD,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAiB7G,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAsB,MAAM,2BAA2B,CAAC;AAS5G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAIlE,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AA2BnF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAYlD,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,SAAS,IAAI,oBAAoB,CAAC;IAClC;;;;;OAKG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACpE;;;;OAIG;IACH,qBAAqB,IAAI,kBAAkB,CAAC;IAC5C;;;;OAIG;IACH,oBAAoB,IAAI,kBAAkB,CAAC;IAC3C;;;OAGG;IACH,iBAAiB,IAAI,eAAe,CAAC;IACrC;;OAEG;IACH,eAAe,IAAI,YAAY,CAAC;IAChC;;;;;;;;OAQG;IACH,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACxC;AAYD,qBAAa,4BAA6B,YAAW,mBAAmB;IAChE,UAAU,CAAC,MAAM,EAAE,iBAAiB;CA8B3C;AAID,eAAO,MAAM,sBAAsB,QAAsB,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAS7E"}
|
package/dist/daemon.js
CHANGED
|
@@ -30,6 +30,7 @@ import { randomUUID } from "node:crypto";
|
|
|
30
30
|
import { dirname, join } from "node:path";
|
|
31
31
|
import { loadAgents } from "./agent-loader.js";
|
|
32
32
|
import { RestartSealResolver } from "./restart-seal-resolver.js";
|
|
33
|
+
import { escalateToUnilateralSeal as runUnilateralEscalation, UNILATERAL_SEAL_TIMEOUT_MS } from "./seal-escalation.js";
|
|
33
34
|
import { acquireLock, removeLockIfOwned } from "./lock-file.js";
|
|
34
35
|
import { acquireSingletonLock } from "./singleton-lock.js";
|
|
35
36
|
import { createIpcServer } from "./ipc-server.js";
|
|
@@ -1053,45 +1054,29 @@ async function startDaemonHoldingLock(config, singletonLock) {
|
|
|
1053
1054
|
logger.warn("session.away.inbox.oneshot.seal_pending", { agentName, sessionId });
|
|
1054
1055
|
return;
|
|
1055
1056
|
}
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
})
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
pendingUnilateralWaiters.set(sealKey(agentName, sessionId), resolveUni);
|
|
1071
|
-
const sent = await sendOver(agentName, {
|
|
1072
|
-
type: "seal_unilateral",
|
|
1073
|
-
session_id: new Uint8Array(Buffer.from(sessionId, "hex")),
|
|
1074
|
-
reported_root: new Uint8Array(Buffer.from(escalation.reportedRootHex, "hex")),
|
|
1075
|
-
reported_seq: escalation.sequenceNumber,
|
|
1076
|
-
seal_leaves,
|
|
1077
|
-
});
|
|
1078
|
-
if (!sent.ok) {
|
|
1079
|
-
pendingUnilateralWaiters.delete(sealKey(agentName, sessionId));
|
|
1080
|
-
logger.warn("session.away.inbox.oneshot.seal_unilateral_failed", { agentName, sessionId, reason: "send_failed" });
|
|
1081
|
-
return;
|
|
1082
|
-
}
|
|
1083
|
-
let uniTimer;
|
|
1084
|
-
const uniTimeoutP = new Promise((r) => {
|
|
1085
|
-
uniTimer = setTimeout(() => r({ ok: false, reason: "seal_unilateral_timeout" }), 30_000);
|
|
1086
|
-
});
|
|
1087
|
-
const uniResult = await Promise.race([uniP, uniTimeoutP]);
|
|
1088
|
-
clearTimeout(uniTimer);
|
|
1089
|
-
pendingUnilateralWaiters.delete(sealKey(agentName, sessionId));
|
|
1090
|
-
if (uniResult.ok) {
|
|
1091
|
-
logger.info("session.away.inbox.oneshot.sealed", { agentName, sessionId, sealedRoot: uniResult.sealedRootHex, sealType: "unilateral" });
|
|
1057
|
+
// DOD-M12B-SEAL-ESCALATE-DUP-1: THE SHARED ESCALATION, not a second copy.
|
|
1058
|
+
//
|
|
1059
|
+
// This used to be a line-for-line duplicate with its own hardcoded 30 s timeout, and
|
|
1060
|
+
// it missed every refusal the other one gained: an empty carry, a gappy chain, two of
|
|
1061
|
+
// our own ctrl leaves (permanently unsealable), and a bilateral seal already running.
|
|
1062
|
+
// It spent the full timeout on each and then reported `seal_unilateral_timeout` — the
|
|
1063
|
+
// label that names our own wait. Sharing the body is what stops that drifting again.
|
|
1064
|
+
const uni = await runUnilateralEscalation({
|
|
1065
|
+
logger, sessionNodeManager, sendOver, pendingUnilateralWaiters, sealKey,
|
|
1066
|
+
getKeyProvider: (a) => keyProviders.get(a),
|
|
1067
|
+
timeoutMs: UNILATERAL_SEAL_TIMEOUT_MS,
|
|
1068
|
+
}, agentName, sessionId, escalation, correlationId, { refuseOnUnusableCarry: true });
|
|
1069
|
+
if (uni.ok) {
|
|
1070
|
+
logger.info("session.away.inbox.oneshot.sealed", { agentName, sessionId, sealedRoot: uni.sealed_root, sealType: "unilateral" });
|
|
1092
1071
|
}
|
|
1093
1072
|
else {
|
|
1094
|
-
|
|
1073
|
+
// CARRY THE GUIDANCE. The four refusals this path just gained come with the
|
|
1074
|
+
// sentence that tells an operator whether to retry or force-abandon — and the log
|
|
1075
|
+
// is this path's ONLY surface, so dropping it leaves a nameable cause with no
|
|
1076
|
+
// action attached. The old reasons had no guidance to lose; these do.
|
|
1077
|
+
logger.warn("session.away.inbox.oneshot.seal_unilateral_failed", {
|
|
1078
|
+
agentName, sessionId, reason: uni.reason, guidance: uni.guidance,
|
|
1079
|
+
});
|
|
1095
1080
|
}
|
|
1096
1081
|
}
|
|
1097
1082
|
finally {
|