@cello-protocol/daemon 0.0.181 → 0.0.183
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 +9 -0
- package/dist/agent-id-migration.d.ts.map +1 -1
- package/dist/agent-id-migration.js +73 -1
- package/dist/agent-id-migration.js.map +1 -1
- package/dist/agent-selection.d.ts +73 -0
- package/dist/agent-selection.d.ts.map +1 -0
- package/dist/agent-selection.js +80 -0
- package/dist/agent-selection.js.map +1 -0
- package/dist/agent-settings-keys.d.ts.map +1 -1
- package/dist/agent-settings-keys.js +18 -0
- package/dist/agent-settings-keys.js.map +1 -1
- package/dist/assignment-verify.d.ts +62 -0
- package/dist/assignment-verify.d.ts.map +1 -0
- package/dist/assignment-verify.js +185 -0
- package/dist/assignment-verify.js.map +1 -0
- package/dist/backup-restore.d.ts +102 -0
- package/dist/backup-restore.d.ts.map +1 -0
- package/dist/backup-restore.js +340 -0
- package/dist/backup-restore.js.map +1 -0
- package/dist/bin/cello-daemon.js +91 -49
- package/dist/bin/cello-daemon.js.map +1 -1
- package/dist/close-commitment.d.ts +67 -0
- package/dist/close-commitment.d.ts.map +1 -0
- package/dist/close-commitment.js +78 -0
- package/dist/close-commitment.js.map +1 -0
- package/dist/close-session-handler.d.ts +20 -0
- package/dist/close-session-handler.d.ts.map +1 -1
- package/dist/close-session-handler.js +351 -58
- package/dist/close-session-handler.js.map +1 -1
- package/dist/consortium-bootstrap.d.ts +2 -0
- package/dist/consortium-bootstrap.d.ts.map +1 -1
- package/dist/consortium-bootstrap.js +182 -9
- package/dist/consortium-bootstrap.js.map +1 -1
- package/dist/content-encryption-status.d.ts +97 -0
- package/dist/content-encryption-status.d.ts.map +1 -0
- package/dist/content-encryption-status.js +122 -0
- package/dist/content-encryption-status.js.map +1 -0
- package/dist/content-park-client.d.ts +10 -0
- package/dist/content-park-client.d.ts.map +1 -1
- package/dist/content-park-client.js +84 -3
- package/dist/content-park-client.js.map +1 -1
- package/dist/content-park.d.ts.map +1 -1
- package/dist/content-park.js +323 -21
- package/dist/content-park.js.map +1 -1
- package/dist/daemon.d.ts +13 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +1168 -141
- package/dist/daemon.js.map +1 -1
- package/dist/delivery-session-suspects.d.ts.map +1 -1
- package/dist/delivery-session-suspects.js +5 -0
- package/dist/delivery-session-suspects.js.map +1 -1
- package/dist/directory-auth-posture.d.ts +87 -0
- package/dist/directory-auth-posture.d.ts.map +1 -0
- package/dist/directory-auth-posture.js +134 -0
- package/dist/directory-auth-posture.js.map +1 -0
- package/dist/directory-bootstrap.d.ts +66 -3
- package/dist/directory-bootstrap.d.ts.map +1 -1
- package/dist/directory-bootstrap.js +133 -7
- package/dist/directory-bootstrap.js.map +1 -1
- package/dist/document-delivery-transport.d.ts +22 -2
- package/dist/document-delivery-transport.d.ts.map +1 -1
- package/dist/document-delivery-transport.js +11 -3
- package/dist/document-delivery-transport.js.map +1 -1
- package/dist/document-handlers.d.ts.map +1 -1
- package/dist/document-handlers.js +119 -0
- package/dist/document-handlers.js.map +1 -1
- package/dist/document-layer.d.ts +0 -2
- package/dist/document-layer.d.ts.map +1 -1
- package/dist/document-layer.js.map +1 -1
- package/dist/inbound-sessions.d.ts +31 -1
- package/dist/inbound-sessions.d.ts.map +1 -1
- package/dist/inbound-sessions.js +276 -16
- package/dist/inbound-sessions.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/initiate-session-handler.d.ts.map +1 -1
- package/dist/initiate-session-handler.js +34 -3
- package/dist/initiate-session-handler.js.map +1 -1
- package/dist/ipc-server.d.ts +5 -1
- package/dist/ipc-server.d.ts.map +1 -1
- package/dist/ipc-server.js +19 -3
- package/dist/ipc-server.js.map +1 -1
- package/dist/manifest-deps.d.ts +0 -11
- package/dist/manifest-deps.d.ts.map +1 -1
- package/dist/manifest-deps.js +28 -2
- package/dist/manifest-deps.js.map +1 -1
- package/dist/manifest-validity.d.ts +153 -0
- package/dist/manifest-validity.d.ts.map +1 -0
- package/dist/manifest-validity.js +268 -0
- package/dist/manifest-validity.js.map +1 -0
- package/dist/notification-handlers.d.ts.map +1 -1
- package/dist/notification-handlers.js +15 -0
- package/dist/notification-handlers.js.map +1 -1
- package/dist/outbound-sessions.d.ts +31 -0
- package/dist/outbound-sessions.d.ts.map +1 -1
- package/dist/outbound-sessions.js +217 -17
- package/dist/outbound-sessions.js.map +1 -1
- package/dist/park-envelope.d.ts +95 -1
- package/dist/park-envelope.d.ts.map +1 -1
- package/dist/park-envelope.js +195 -4
- package/dist/park-envelope.js.map +1 -1
- package/dist/refusal-reasons.d.ts +72 -0
- package/dist/refusal-reasons.d.ts.map +1 -0
- package/dist/refusal-reasons.js +69 -0
- package/dist/refusal-reasons.js.map +1 -0
- package/dist/register-handler.d.ts.map +1 -1
- package/dist/register-handler.js +76 -0
- package/dist/register-handler.js.map +1 -1
- package/dist/registration-manager.d.ts.map +1 -1
- package/dist/registration-manager.js +20 -1
- package/dist/registration-manager.js.map +1 -1
- package/dist/relay-only.d.ts +133 -0
- package/dist/relay-only.d.ts.map +1 -0
- package/dist/relay-only.js +183 -0
- package/dist/relay-only.js.map +1 -0
- package/dist/restart-seal-resolver.d.ts.map +1 -1
- package/dist/restart-seal-resolver.js +6 -0
- package/dist/restart-seal-resolver.js.map +1 -1
- package/dist/retry-queue.d.ts +49 -2
- package/dist/retry-queue.d.ts.map +1 -1
- package/dist/retry-queue.js +55 -10
- package/dist/retry-queue.js.map +1 -1
- package/dist/roster-freshness.d.ts +169 -0
- package/dist/roster-freshness.d.ts.map +1 -0
- package/dist/roster-freshness.js +249 -0
- package/dist/roster-freshness.js.map +1 -0
- package/dist/seal-certificate-pull.d.ts +17 -1
- package/dist/seal-certificate-pull.d.ts.map +1 -1
- package/dist/seal-certificate-pull.js +37 -3
- package/dist/seal-certificate-pull.js.map +1 -1
- package/dist/seal-coordinator.d.ts +17 -1
- package/dist/seal-coordinator.d.ts.map +1 -1
- package/dist/seal-coordinator.js +71 -0
- package/dist/seal-coordinator.js.map +1 -1
- package/dist/seal-failure-store.d.ts +104 -0
- package/dist/seal-failure-store.d.ts.map +1 -0
- package/dist/seal-failure-store.js +126 -0
- package/dist/seal-failure-store.js.map +1 -0
- package/dist/seal-flows.d.ts.map +1 -1
- package/dist/seal-flows.js +35 -6
- package/dist/seal-flows.js.map +1 -1
- package/dist/seal-upgrade.d.ts +20 -5
- package/dist/seal-upgrade.d.ts.map +1 -1
- package/dist/seal-upgrade.js +28 -5
- package/dist/seal-upgrade.js.map +1 -1
- package/dist/session-assignment-parser.d.ts +41 -5
- package/dist/session-assignment-parser.d.ts.map +1 -1
- package/dist/session-assignment-parser.js +77 -14
- package/dist/session-assignment-parser.js.map +1 -1
- package/dist/session-ceremony.d.ts +35 -0
- package/dist/session-ceremony.d.ts.map +1 -1
- package/dist/session-ceremony.js +97 -0
- package/dist/session-ceremony.js.map +1 -1
- package/dist/session-connection-gater.d.ts +46 -7
- package/dist/session-connection-gater.d.ts.map +1 -1
- package/dist/session-connection-gater.js +163 -12
- package/dist/session-connection-gater.js.map +1 -1
- package/dist/session-content-handlers.d.ts +12 -0
- package/dist/session-content-handlers.d.ts.map +1 -1
- package/dist/session-content-handlers.js +149 -8
- package/dist/session-content-handlers.js.map +1 -1
- package/dist/session-node-manager.d.ts +653 -40
- package/dist/session-node-manager.d.ts.map +1 -1
- package/dist/session-node-manager.js +5938 -374
- package/dist/session-node-manager.js.map +1 -1
- package/dist/session-read-handlers.d.ts +27 -0
- package/dist/session-read-handlers.d.ts.map +1 -1
- package/dist/session-read-handlers.js +127 -6
- package/dist/session-read-handlers.js.map +1 -1
- package/dist/session-relay-client.d.ts +177 -2
- package/dist/session-relay-client.d.ts.map +1 -1
- package/dist/session-relay-client.js +564 -16
- package/dist/session-relay-client.js.map +1 -1
- package/dist/session-salt-agreement.d.ts +338 -0
- package/dist/session-salt-agreement.d.ts.map +1 -0
- package/dist/session-salt-agreement.js +478 -0
- package/dist/session-salt-agreement.js.map +1 -0
- package/dist/signal-submission.d.ts.map +1 -1
- package/dist/signal-submission.js +10 -1
- package/dist/signal-submission.js.map +1 -1
- package/dist/signaling-connect.d.ts +18 -1
- package/dist/signaling-connect.d.ts.map +1 -1
- package/dist/signaling-connect.js +206 -6
- package/dist/signaling-connect.js.map +1 -1
- package/dist/types.d.ts +75 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/vocabulary.d.ts.map +1 -1
- package/dist/vocabulary.js +10 -0
- package/dist/vocabulary.js.map +1 -1
- package/dist/wire-content-hash.d.ts +68 -0
- package/dist/wire-content-hash.d.ts.map +1 -1
- package/dist/wire-content-hash.js +83 -0
- package/dist/wire-content-hash.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roster-freshness.js","sourceRoot":"","sources":["../src/roster-freshness.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,9 +33,25 @@ export interface SealCertificatePullDeps {
|
|
|
33
33
|
getPersistence: (agentName: string) => DaemonRegistrationPersistence;
|
|
34
34
|
getAgentPubkeyHex: (agentName: string) => string | undefined;
|
|
35
35
|
}
|
|
36
|
-
export type SealCertificatePullResult =
|
|
36
|
+
export type SealCertificatePullResult =
|
|
37
|
+
/**
|
|
38
|
+
* `verified` is REQUIRED, not optional, and that is the point.
|
|
39
|
+
*
|
|
40
|
+
* `verifyBilateralSealCertificate` returns `{ok:true, verified:false}` when this daemon holds no
|
|
41
|
+
* key for the certificate's signer — a legitimate state, and no longer a rare one: clearing a
|
|
42
|
+
* counterparty's pin (the remedy for the identity-refusal lockout) moves every past session with
|
|
43
|
+
* them from *verified* to *taken on their word*.
|
|
44
|
+
*
|
|
45
|
+
* Until now the pull returned `{ok:true, rootHex}` either way, so `cello_sealed_receipt` handed
|
|
46
|
+
* the agent a response byte-for-byte identical to a verified one. An operator could clear a
|
|
47
|
+
* contact, pull an old receipt, and pass it to a third party as proof. It is not proof, and
|
|
48
|
+
* nothing in the response said so. Making the field non-optional means a new caller cannot
|
|
49
|
+
* construct this result without deciding what to tell them.
|
|
50
|
+
*/
|
|
51
|
+
{
|
|
37
52
|
ok: true;
|
|
38
53
|
rootHex: string;
|
|
54
|
+
verified: boolean;
|
|
39
55
|
}
|
|
40
56
|
/**
|
|
41
57
|
* `reason` is never collapsed. Each of these sends the caller somewhere different, and the whole
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seal-certificate-pull.d.ts","sourceRoot":"","sources":["../src/seal-certificate-pull.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAKzC,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAC;IAClE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3G,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,6BAA6B,CAAC;IACrE,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC9D;AAED,MAAM,MAAM,yBAAyB
|
|
1
|
+
{"version":3,"file":"seal-certificate-pull.d.ts","sourceRoot":"","sources":["../src/seal-certificate-pull.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAKzC,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAC;IAClE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3G,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,6BAA6B,CAAC;IACrE,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC9D;AAED,MAAM,MAAM,yBAAyB;AACnC;;;;;;;;;;;;;GAaG;AACD;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE;AAClD;;;;;;;;;GASG;GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,cAAc,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,qBAAqB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAa7H;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,uBAAuB,EAC7B,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,yBAAyB,CAAC,CAmLpC"}
|
|
@@ -108,6 +108,32 @@ export async function pullSealCertificate(deps, agentName, sessionIdHex) {
|
|
|
108
108
|
logger.error("seal.certificate.pull.invalid", { agentName, sessionId: sessionIdHex, reason: verdict.reason });
|
|
109
109
|
return { ok: false, reason: "verification_failed", detail: verdict.reason };
|
|
110
110
|
}
|
|
111
|
+
if (!verdict.verified) {
|
|
112
|
+
/**
|
|
113
|
+
* ACCEPTED WITHOUT VERIFICATION — and until now that was SILENT, on a path whose own header
|
|
114
|
+
* claims it *"distinguishes them by VERIFYING a certificate, not by trusting an answer"*
|
|
115
|
+
* (review N3).
|
|
116
|
+
*
|
|
117
|
+
* `verifyBilateralSealCertificate` returns `{ok:true, verified:false}` when it does not hold the
|
|
118
|
+
* signer's key. That is a legitimate state — but it stopped being rare the moment
|
|
119
|
+
* `cello_contact_remove` began NULLing the pin (the fix for the identity-refusal lockout). One
|
|
120
|
+
* operator action silently moved every past session with that counterparty from *verified* to
|
|
121
|
+
* *taken on trust*, and nothing said so.
|
|
122
|
+
*
|
|
123
|
+
* Forgetting a counterparty's identity genuinely DOES cost the ability to verify their old
|
|
124
|
+
* certificates — the key was thrown away on purpose. The defect was never the cost; it was that
|
|
125
|
+
* the cost was invisible while a comment two files away promised the opposite. The certificate
|
|
126
|
+
* is still recorded (it arrived over an authenticated channel), and the operator is now told
|
|
127
|
+
* what they are holding.
|
|
128
|
+
*/
|
|
129
|
+
logger.warn("seal.certificate.pull.unverified", {
|
|
130
|
+
agentName,
|
|
131
|
+
sessionId: sessionIdHex,
|
|
132
|
+
reason: verdict.reason,
|
|
133
|
+
impact: "this certificate was accepted without checking its signature, because this daemon holds no key for its signer — most often because the counterparty's pinned identity was cleared by cello_contact_remove. The sealed root is recorded on the counterparty's word, not on a verified signature",
|
|
134
|
+
guidance: "if you need this receipt to be independently verifiable, ask the counterparty to re-seal, or re-establish a session with them first so their identity is pinned again",
|
|
135
|
+
});
|
|
136
|
+
}
|
|
111
137
|
const rootHex = Buffer.from(sealedRoot).toString("hex");
|
|
112
138
|
const legibility = f["legibility"];
|
|
113
139
|
if (legibility !== undefined && legibility !== null) {
|
|
@@ -126,7 +152,13 @@ export async function pullSealCertificate(deps, agentName, sessionIdHex) {
|
|
|
126
152
|
sessionId: sessionIdHex,
|
|
127
153
|
sealedRoot: rootHex,
|
|
128
154
|
verified: verdict.verified,
|
|
129
|
-
|
|
155
|
+
// The impact line said "provable" unconditionally, which is FALSE in exactly the branch above:
|
|
156
|
+
// an unverified certificate is recorded on the counterparty's word and proves nothing to a
|
|
157
|
+
// third party. A claim that is true on the common path and false on the dangerous one is worse
|
|
158
|
+
// than no claim, because it reads as reassurance precisely when reassurance is unwarranted.
|
|
159
|
+
impact: verdict.verified
|
|
160
|
+
? "a seal this side never received the push for is now local, and its signature was checked"
|
|
161
|
+
: "a seal this side never received the push for is now local, but its signature was NOT checked — it is recorded on the counterparty's word",
|
|
130
162
|
});
|
|
131
163
|
// STATUS FIRST AND SYNCHRONOUS, teardown second — the same terminal transition the push path
|
|
132
164
|
// makes, so a pulled seal and a pushed one leave the daemon in identical states.
|
|
@@ -142,10 +174,12 @@ export async function pullSealCertificate(deps, agentName, sessionIdHex) {
|
|
|
142
174
|
logger.error("session.seal.status.write.threw", {
|
|
143
175
|
sessionId: sessionIdHex, agentName,
|
|
144
176
|
error: err instanceof Error ? err.message : String(err),
|
|
145
|
-
impact:
|
|
177
|
+
impact: verdict.verified
|
|
178
|
+
? "the certificate was pulled and verified, but this row still reads interrupted"
|
|
179
|
+
: "the certificate was pulled (signature NOT checked), but this row still reads interrupted",
|
|
146
180
|
});
|
|
147
181
|
}
|
|
148
182
|
void sessionNodeManager.destroySessionNode(agentName, sessionIdHex, "sealed");
|
|
149
|
-
return { ok: true, rootHex };
|
|
183
|
+
return { ok: true, rootHex, verified: verdict.verified };
|
|
150
184
|
}
|
|
151
185
|
//# sourceMappingURL=seal-certificate-pull.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seal-certificate-pull.js","sourceRoot":"","sources":["../src/seal-certificate-pull.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAKvE,0FAA0F;AAC1F,MAAM,gCAAgC,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"seal-certificate-pull.js","sourceRoot":"","sources":["../src/seal-certificate-pull.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,26 @@ import type { KeyProvider } from "@cello-protocol/crypto";
|
|
|
3
3
|
import type { SessionNodeManager } from "./session-node-manager.js";
|
|
4
4
|
import type { DbRegistrationPersistence } from "./db-identity-store.js";
|
|
5
5
|
import type { Logger } from "./types.js";
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* M7-SESSION-004: the bilateral seal resolves with the sealed_root AND the legibility certificate.
|
|
8
|
+
*
|
|
9
|
+
* DOD-M15-SEALWIRE-1 bullet 2 (review F4) added the REFUSED shape. A root mismatch used to log and
|
|
10
|
+
* `return`, leaving the waiter unresolved — so the close sat out its eleven-minute wait, escalated,
|
|
11
|
+
* and told the operator *"the counterparty has not closed"* about a counterparty who had closed and
|
|
12
|
+
* whose certificate this daemon had just refused. Three failures in one sentence: it names a party
|
|
13
|
+
* the code never checked, the remedy cannot work (the seal frame is delivered once), and the one
|
|
14
|
+
* thing actually detected appears nowhere the operator looks.
|
|
15
|
+
*
|
|
16
|
+
* A detection whose only consumer is a log line is not a control.
|
|
17
|
+
*/
|
|
7
18
|
export type SealCompletion = {
|
|
8
19
|
rootHex: string;
|
|
9
20
|
legibility?: unknown;
|
|
21
|
+
} | {
|
|
22
|
+
refused: true;
|
|
23
|
+
reason: string;
|
|
24
|
+
detail: string;
|
|
25
|
+
ownRootHex: string | null;
|
|
10
26
|
};
|
|
11
27
|
/**
|
|
12
28
|
* SESSION-002 / M8B FINDING-3: a unilateral seal carries the legibility certificate so the close
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seal-coordinator.d.ts","sourceRoot":"","sources":["../src/seal-coordinator.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAO1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC
|
|
1
|
+
{"version":3,"file":"seal-coordinator.d.ts","sourceRoot":"","sources":["../src/seal-coordinator.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAO1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACzC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAEjF;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACzD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,uEAAuE;IACvE,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,yBAAyB,CAAC;IACjE,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAC;IAC/D;;;;OAIG;IACH,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB;yBAOjC,MAAM,aAAa,MAAM,KAAG,MAAM;;iDAYN,cAAc,KAAK,IAAI;8CAmR1B,gBAAgB,KAAK,IAAI;uCA4XpC,gBAAgB,aAAa,MAAM,kBAAkB,MAAM,KAAG,MAAM,IAAI;EAkBnH"}
|
package/dist/seal-coordinator.js
CHANGED
|
@@ -90,6 +90,77 @@ export function createSealCoordinator(deps) {
|
|
|
90
90
|
logger.error("session.sealed.signature.invalid", { sessionId: sidHex, reason: verdict.reason });
|
|
91
91
|
return;
|
|
92
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* IS THIS A ROOT OVER *OUR* CONVERSATION? — `DOD-M15-SEALWIRE-1` bullet 2.
|
|
95
|
+
*
|
|
96
|
+
* The signature check above proves the directory signed these bytes. It does not prove the
|
|
97
|
+
* bytes describe this session. Until bullet 1 the client could not tell: the certified root
|
|
98
|
+
* was the relay/directory internal root, which carries relay-assigned fields this daemon
|
|
99
|
+
* never sees for the counterparty's leaves. So the root computed one step earlier was
|
|
100
|
+
* discarded, and at co-signing time this key signed a root it had never checked.
|
|
101
|
+
*
|
|
102
|
+
* Now both live in the content-hash domain and it is a comparison.
|
|
103
|
+
*
|
|
104
|
+
* THE COUNTERBALANCE, and why this is not simply "refuse on any difference": a wrong
|
|
105
|
+
* comparison makes every session unsealable, leaving force-abandon — no receipt — as the
|
|
106
|
+
* only exit. That is worse than the defect it guards. So the daemon distinguishes "the
|
|
107
|
+
* roots disagree" from "I cannot judge": the carry is this daemon's own view and may be
|
|
108
|
+
* legitimately short at this instant, because the counterparty's SEAL leaf is what
|
|
109
|
+
* TRIGGERS the seal and may not have been witnessed here yet. Only a provably complete
|
|
110
|
+
* carry can accuse.
|
|
111
|
+
*/
|
|
112
|
+
const rootCheck = sessionNodeManager.verifyCertifiedRoot(agentPubkeyHex, sidHex, sealedRootBytes, leafCount);
|
|
113
|
+
if (rootCheck.verdict === "mismatch") {
|
|
114
|
+
/**
|
|
115
|
+
* RESOLVE THE WAITER AS REFUSED — review F4. Dropping it left the caller to time out and
|
|
116
|
+
* be told something false. The close now answers with what actually happened.
|
|
117
|
+
*/
|
|
118
|
+
const waiter = pendingSealWaiters.get(sealKey(agentName, sidHex));
|
|
119
|
+
if (waiter) {
|
|
120
|
+
pendingSealWaiters.delete(sealKey(agentName, sidHex));
|
|
121
|
+
waiter({
|
|
122
|
+
refused: true,
|
|
123
|
+
reason: "seal_root_mismatch",
|
|
124
|
+
detail: rootCheck.detail,
|
|
125
|
+
ownRootHex: rootCheck.ownRootHex,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
logger.error("session.sealed.root.mismatch", {
|
|
129
|
+
/**
|
|
130
|
+
* `agentName` — review pass 1 on bullet 8, H2. Both verdict events carried only
|
|
131
|
+
* `sessionId`, and ONE DAEMON CAN HOST BOTH ENDS OF ONE SESSION (`DOD-LOOP-1`
|
|
132
|
+
* loopback). Two verdicts then land under the same key, indistinguishable, and a
|
|
133
|
+
* reader — or a journey scraping the log — attributes one end's answer to the other.
|
|
134
|
+
* It is also why `j-loopback` could not use the new journey assertion at all.
|
|
135
|
+
*/
|
|
136
|
+
agentName,
|
|
137
|
+
sessionId: sidHex,
|
|
138
|
+
certifiedRoot: rootHex,
|
|
139
|
+
ownRoot: rootCheck.ownRootHex,
|
|
140
|
+
detail: rootCheck.detail,
|
|
141
|
+
leafCount,
|
|
142
|
+
impact: "the directory signed a root over a leaf set this daemon does not hold. The signature " +
|
|
143
|
+
"is valid, so this is not a forged certificate — it is a certificate over a DIFFERENT " +
|
|
144
|
+
"conversation, or over this one with leaves added, dropped or reordered. Refusing: " +
|
|
145
|
+
"storing it would produce a receipt that proves nothing about what was actually said.",
|
|
146
|
+
guidance: "The session is NOT marked sealed and the transcript is untouched. Compare the leaf " +
|
|
147
|
+
"count with the counterparty, and check the relay and directory logs for this session id.",
|
|
148
|
+
});
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
logger.info("session.sealed.root.checked", {
|
|
152
|
+
agentName,
|
|
153
|
+
sessionId: sidHex,
|
|
154
|
+
verdict: rootCheck.verdict,
|
|
155
|
+
...(rootCheck.verdict === "cannot_judge" ? { reason: rootCheck.reason } : {}),
|
|
156
|
+
...(rootCheck.verdict === "cannot_judge"
|
|
157
|
+
? {
|
|
158
|
+
impact: "the certified root was accepted WITHOUT being checked against this daemon's own " +
|
|
159
|
+
"leaves, because this daemon cannot yet prove it holds the same leaf set. The " +
|
|
160
|
+
"signature was verified; the CONTENT was not.",
|
|
161
|
+
}
|
|
162
|
+
: {}),
|
|
163
|
+
});
|
|
93
164
|
// F2-a: on verified:false, surface WHY (signer_key_not_held / no_frost_share / …) so this
|
|
94
165
|
// event can never be mistaken for a tolerated failed check. A real failure took the early
|
|
95
166
|
// return above (session.sealed.signature.invalid) and never reaches here.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seal-coordinator.js","sourceRoot":"","sources":["../src/seal-coordinator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seal-coordinator.js","sourceRoot":"","sources":["../src/seal-coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOD-M15-SEAL-FAILED-TERMINAL-1 — a seal that FAILED is discoverable, not just a slow one.
|
|
3
|
+
*
|
|
4
|
+
* ─── The gap this closes ───────────────────────────────────────────────────────────────────────
|
|
5
|
+
*
|
|
6
|
+
* `DOD-M15-CLOSEWAIT-1` made the close answer at commitment and notarize in the background. Review
|
|
7
|
+
* HIGH-1 pointed out the half that left open: a background ceremony that **throws** leaves the
|
|
8
|
+
* session `active`, with a durable commitment, no receipt, and nothing retrying until a daemon
|
|
9
|
+
* restart — while the agent is holding an `ok: true` and has no reason to suspect anything.
|
|
10
|
+
*
|
|
11
|
+
* `seal_in_progress` (added in that unit) distinguishes RUNNING from NO-CEREMONY. It cannot
|
|
12
|
+
* distinguish either from DEAD. The only account of a dead one was a line in `daemon.log`, which is
|
|
13
|
+
* not a surface an agent can read.
|
|
14
|
+
*
|
|
15
|
+
* ─── Why in memory and NOT a column on the session row ─────────────────────────────────────────
|
|
16
|
+
*
|
|
17
|
+
* The review said "persist … so it survives the read", and a database column is the reflex. It is
|
|
18
|
+
* the wrong storage here, for a reason that is about correctness rather than cost:
|
|
19
|
+
*
|
|
20
|
+
* **A restart makes "failed" the wrong answer.** The boot sweep flips `active → interrupted,
|
|
21
|
+
* interrupted_by='local'`, and `RestartSealResolver` then picks the session up and retries the seal.
|
|
22
|
+
* So a persisted failure would outlive its own truth: the operator would read `seal_failed` about a
|
|
23
|
+
* ceremony that is, at that moment, being retried. A marker whose lifetime is the process is exactly
|
|
24
|
+
* right, because the condition it describes has the same lifetime.
|
|
25
|
+
*
|
|
26
|
+
* It also avoids a client-side schema migration, which this milestone treats as expensive on its own
|
|
27
|
+
* terms — unrecoverable on an operator's machine if it goes wrong, and owed its own reviewed unit.
|
|
28
|
+
* That is a real saving, but it is the second reason, not the first.
|
|
29
|
+
*
|
|
30
|
+
* ─── The two populations the restart does NOT retry (review MEDIUM-6) ──────────────────────────
|
|
31
|
+
*
|
|
32
|
+
* The argument above holds for an ordinary conversation, and that was verified rather than assumed.
|
|
33
|
+
* `listRestartOrphanedSessions` excludes two shapes, and this docstring used to imply neither
|
|
34
|
+
* existed:
|
|
35
|
+
*
|
|
36
|
+
* `message_count > 0` — a closed session that carried no messages is never retried. Harmless: no
|
|
37
|
+
* receipt was obtainable over nothing.
|
|
38
|
+
*
|
|
39
|
+
* `restart_seal_gave_up_at IS NULL` — a session the resolver already exhausted. This one WAS a
|
|
40
|
+
* real hole: nothing ever cleared that column, so a gave-up session that was later revived, used,
|
|
41
|
+
* and closed could lose its in-memory marker at restart, be excluded from recovery forever, and
|
|
42
|
+
* then be force-abandoned by the revival sweep (which explicitly includes `IS NOT NULL`) — a
|
|
43
|
+
* receipt permanently forfeited with no surface ever saying so. `reviveSessionNode` now clears it:
|
|
44
|
+
* a session something is talking to again is not the "hopeless session" the column was written for.
|
|
45
|
+
*/
|
|
46
|
+
export interface SealFailure {
|
|
47
|
+
/** The upstream error, carried through rather than replaced with a label. */
|
|
48
|
+
reason: string;
|
|
49
|
+
/** ISO timestamp of the failure. */
|
|
50
|
+
at: string;
|
|
51
|
+
/**
|
|
52
|
+
* HOW the ceremony died, and this distinction is the whole of review HIGH-1.
|
|
53
|
+
*
|
|
54
|
+
* The first cut recorded only on the detached tail's `.catch` — and `escalateToUnilateralSeal`
|
|
55
|
+
* contains **zero `throw`s**. All nine of its failure paths RESOLVE with `{ ok: false, reason }`:
|
|
56
|
+
* `seal_unilateral_timeout`, `seal_carry_empty`, `seal_counterparty_pending`,
|
|
57
|
+
* `seal_agent_key_unavailable`, and the rest. So every ordinary dead ceremony landed on the branch
|
|
58
|
+
* that recorded nothing, and the receipt surface answered `not_sealed_yet` exactly as before — the
|
|
59
|
+
* unit closed roughly a tenth of the gap it was written for, and its own test had to INJECT a
|
|
60
|
+
* throwing key provider to reach the path it covered.
|
|
61
|
+
*
|
|
62
|
+
* `unresolved` — the ceremony ran to completion and produced no receipt. The common case.
|
|
63
|
+
* `threw` — an exception escaped it. Rare, and usually a local fault (a locked key vault,
|
|
64
|
+
* a DB error) rather than anything about the conversation.
|
|
65
|
+
*
|
|
66
|
+
* They get different guidance, because they have different fixes.
|
|
67
|
+
*/
|
|
68
|
+
kind: "unresolved" | "threw";
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The last background seal failure per (agent, session), for the life of the process.
|
|
72
|
+
*
|
|
73
|
+
* Deliberately tiny and deliberately not exported as a singleton: the daemon owns one instance and
|
|
74
|
+
* hands it to the writer (the close handler's detached tail) and the reader (`cello_sealed_receipt`),
|
|
75
|
+
* so the two cannot drift onto different copies.
|
|
76
|
+
*/
|
|
77
|
+
export declare class SealFailureStore {
|
|
78
|
+
#private;
|
|
79
|
+
/** Record a background ceremony that ended without a receipt — resolved OR thrown. */
|
|
80
|
+
record(agentName: string, sessionId: string, reason: string, at: string, kind: SealFailure["kind"]): void;
|
|
81
|
+
/**
|
|
82
|
+
* Forget any failure for this session.
|
|
83
|
+
*
|
|
84
|
+
* Called when a ceremony STARTS as well as when one succeeds. Starting matters: a re-close is the
|
|
85
|
+
* documented remedy for a failed seal, and if the marker survived the retry the agent would be
|
|
86
|
+
* told the seal is dead while it is running — the same "stale reading presented as current" defect
|
|
87
|
+
* `DOD-M15-STALEROSTER-1` exists to stop, in a different subsystem.
|
|
88
|
+
*/
|
|
89
|
+
clear(agentName: string, sessionId: string): void;
|
|
90
|
+
get(agentName: string, sessionId: string): SealFailure | undefined;
|
|
91
|
+
get size(): number;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* The agent-facing answer for a session whose background seal died.
|
|
95
|
+
*
|
|
96
|
+
* ORDERING MATTERS AND IS THE CALLER'S JOB: a RUNNING ceremony outranks a recorded failure, because
|
|
97
|
+
* a re-close after a failure starts a new ceremony and the old marker must not shadow it. The read
|
|
98
|
+
* handler checks `isSealing` first.
|
|
99
|
+
*/
|
|
100
|
+
export declare function describeSealFailed(opts: {
|
|
101
|
+
sessionId: string;
|
|
102
|
+
failure: SealFailure;
|
|
103
|
+
}): Record<string, unknown>;
|
|
104
|
+
//# sourceMappingURL=seal-failure-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seal-failure-store.d.ts","sourceRoot":"","sources":["../src/seal-failure-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;;;;;;;;;;;OAgBG;IACH,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,qBAAa,gBAAgB;;IAW3B,sFAAsF;IACtF,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI;IAIzG;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAIjD,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIlE,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC;CACtB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkC1B"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOD-M15-SEAL-FAILED-TERMINAL-1 — a seal that FAILED is discoverable, not just a slow one.
|
|
3
|
+
*
|
|
4
|
+
* ─── The gap this closes ───────────────────────────────────────────────────────────────────────
|
|
5
|
+
*
|
|
6
|
+
* `DOD-M15-CLOSEWAIT-1` made the close answer at commitment and notarize in the background. Review
|
|
7
|
+
* HIGH-1 pointed out the half that left open: a background ceremony that **throws** leaves the
|
|
8
|
+
* session `active`, with a durable commitment, no receipt, and nothing retrying until a daemon
|
|
9
|
+
* restart — while the agent is holding an `ok: true` and has no reason to suspect anything.
|
|
10
|
+
*
|
|
11
|
+
* `seal_in_progress` (added in that unit) distinguishes RUNNING from NO-CEREMONY. It cannot
|
|
12
|
+
* distinguish either from DEAD. The only account of a dead one was a line in `daemon.log`, which is
|
|
13
|
+
* not a surface an agent can read.
|
|
14
|
+
*
|
|
15
|
+
* ─── Why in memory and NOT a column on the session row ─────────────────────────────────────────
|
|
16
|
+
*
|
|
17
|
+
* The review said "persist … so it survives the read", and a database column is the reflex. It is
|
|
18
|
+
* the wrong storage here, for a reason that is about correctness rather than cost:
|
|
19
|
+
*
|
|
20
|
+
* **A restart makes "failed" the wrong answer.** The boot sweep flips `active → interrupted,
|
|
21
|
+
* interrupted_by='local'`, and `RestartSealResolver` then picks the session up and retries the seal.
|
|
22
|
+
* So a persisted failure would outlive its own truth: the operator would read `seal_failed` about a
|
|
23
|
+
* ceremony that is, at that moment, being retried. A marker whose lifetime is the process is exactly
|
|
24
|
+
* right, because the condition it describes has the same lifetime.
|
|
25
|
+
*
|
|
26
|
+
* It also avoids a client-side schema migration, which this milestone treats as expensive on its own
|
|
27
|
+
* terms — unrecoverable on an operator's machine if it goes wrong, and owed its own reviewed unit.
|
|
28
|
+
* That is a real saving, but it is the second reason, not the first.
|
|
29
|
+
*
|
|
30
|
+
* ─── The two populations the restart does NOT retry (review MEDIUM-6) ──────────────────────────
|
|
31
|
+
*
|
|
32
|
+
* The argument above holds for an ordinary conversation, and that was verified rather than assumed.
|
|
33
|
+
* `listRestartOrphanedSessions` excludes two shapes, and this docstring used to imply neither
|
|
34
|
+
* existed:
|
|
35
|
+
*
|
|
36
|
+
* `message_count > 0` — a closed session that carried no messages is never retried. Harmless: no
|
|
37
|
+
* receipt was obtainable over nothing.
|
|
38
|
+
*
|
|
39
|
+
* `restart_seal_gave_up_at IS NULL` — a session the resolver already exhausted. This one WAS a
|
|
40
|
+
* real hole: nothing ever cleared that column, so a gave-up session that was later revived, used,
|
|
41
|
+
* and closed could lose its in-memory marker at restart, be excluded from recovery forever, and
|
|
42
|
+
* then be force-abandoned by the revival sweep (which explicitly includes `IS NOT NULL`) — a
|
|
43
|
+
* receipt permanently forfeited with no surface ever saying so. `reviveSessionNode` now clears it:
|
|
44
|
+
* a session something is talking to again is not the "hopeless session" the column was written for.
|
|
45
|
+
*/
|
|
46
|
+
/**
|
|
47
|
+
* The last background seal failure per (agent, session), for the life of the process.
|
|
48
|
+
*
|
|
49
|
+
* Deliberately tiny and deliberately not exported as a singleton: the daemon owns one instance and
|
|
50
|
+
* hands it to the writer (the close handler's detached tail) and the reader (`cello_sealed_receipt`),
|
|
51
|
+
* so the two cannot drift onto different copies.
|
|
52
|
+
*/
|
|
53
|
+
export class SealFailureStore {
|
|
54
|
+
#failures = new Map();
|
|
55
|
+
#key(agentName, sessionId) {
|
|
56
|
+
// EXPLICIT ESCAPE, not a literal control character. It was a raw U+001F byte, which is
|
|
57
|
+
// invisible in a diff, in a grep, and in most editors — I "proved" a key collision against a
|
|
58
|
+
// hand-written copy of this function and only the real one disagreed. A separator nobody can
|
|
59
|
+
// see is a separator someone will delete.
|
|
60
|
+
return `${agentName}\x1f${sessionId}`;
|
|
61
|
+
}
|
|
62
|
+
/** Record a background ceremony that ended without a receipt — resolved OR thrown. */
|
|
63
|
+
record(agentName, sessionId, reason, at, kind) {
|
|
64
|
+
this.#failures.set(this.#key(agentName, sessionId), { reason, at, kind });
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Forget any failure for this session.
|
|
68
|
+
*
|
|
69
|
+
* Called when a ceremony STARTS as well as when one succeeds. Starting matters: a re-close is the
|
|
70
|
+
* documented remedy for a failed seal, and if the marker survived the retry the agent would be
|
|
71
|
+
* told the seal is dead while it is running — the same "stale reading presented as current" defect
|
|
72
|
+
* `DOD-M15-STALEROSTER-1` exists to stop, in a different subsystem.
|
|
73
|
+
*/
|
|
74
|
+
clear(agentName, sessionId) {
|
|
75
|
+
this.#failures.delete(this.#key(agentName, sessionId));
|
|
76
|
+
}
|
|
77
|
+
get(agentName, sessionId) {
|
|
78
|
+
return this.#failures.get(this.#key(agentName, sessionId));
|
|
79
|
+
}
|
|
80
|
+
get size() {
|
|
81
|
+
return this.#failures.size;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* The agent-facing answer for a session whose background seal died.
|
|
86
|
+
*
|
|
87
|
+
* ORDERING MATTERS AND IS THE CALLER'S JOB: a RUNNING ceremony outranks a recorded failure, because
|
|
88
|
+
* a re-close after a failure starts a new ceremony and the old marker must not shadow it. The read
|
|
89
|
+
* handler checks `isSealing` first.
|
|
90
|
+
*/
|
|
91
|
+
export function describeSealFailed(opts) {
|
|
92
|
+
const threw = opts.failure.kind === "threw";
|
|
93
|
+
return {
|
|
94
|
+
ok: false,
|
|
95
|
+
reason: "seal_failed",
|
|
96
|
+
// Two different facts, two different words. "failed" is an exception; "unresolved" is a ceremony
|
|
97
|
+
// that ran and produced nothing, which is the ordinary shape and often means the counterparty
|
|
98
|
+
// simply has not closed yet.
|
|
99
|
+
seal_status: threw ? "failed" : "unresolved",
|
|
100
|
+
session_id: opts.sessionId,
|
|
101
|
+
// The upstream cause, preserved. "The seal failed" tells an operator nothing about whether their
|
|
102
|
+
// directory is unreachable, their agent is not started, or the carry was unusable.
|
|
103
|
+
seal_failure_reason: opts.failure.reason,
|
|
104
|
+
seal_failed_at: opts.failure.at,
|
|
105
|
+
guidance: threw
|
|
106
|
+
? `The background seal ceremony for this session hit an ERROR at ${opts.failure.at}: ` +
|
|
107
|
+
`${opts.failure.reason}. This is not "still running" — nothing is retrying it. An exception ` +
|
|
108
|
+
"here is usually a LOCAL fault (a key that could not be loaded, a database error) rather " +
|
|
109
|
+
"than anything about the conversation, so check the daemon log around that timestamp. Your " +
|
|
110
|
+
"SEAL commitment is still durable and the conversation is intact: the receipt is unproduced, " +
|
|
111
|
+
"not lost. Call cello_close_session again once the local cause is addressed. Do NOT use " +
|
|
112
|
+
"{ force: true } — that abandons the session and PERMANENTLY forfeits the receipt, the one " +
|
|
113
|
+
"outcome that cannot be undone."
|
|
114
|
+
: `The background seal ceremony for this session finished at ${opts.failure.at} WITHOUT ` +
|
|
115
|
+
`producing a receipt: ${opts.failure.reason}. This is not "still running" — nothing is ` +
|
|
116
|
+
"retrying it right now. Read the reason before acting: seal_counterparty_pending and " +
|
|
117
|
+
"seal_unilateral_timeout mean the other side has not closed yet, and the fix is to wait for " +
|
|
118
|
+
"them (or retry later, once the directory's delivery-grace window has elapsed and a " +
|
|
119
|
+
"unilateral seal becomes available). Reasons naming this daemon — an agent that is not " +
|
|
120
|
+
"started, a directory it cannot reach — are fixed locally; check cello_status. Your SEAL " +
|
|
121
|
+
"commitment is durable and the conversation is intact, so the receipt is unproduced rather " +
|
|
122
|
+
"than lost. Retry with cello_close_session. Do NOT use { force: true }: that abandons the " +
|
|
123
|
+
"session and PERMANENTLY forfeits the receipt.",
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=seal-failure-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seal-failure-store.js","sourceRoot":"","sources":["../src/seal-failure-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AA2BH;;;;;;GAMG;AACH,MAAM,OAAO,gBAAgB;IAClB,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEpD,IAAI,CAAC,SAAiB,EAAE,SAAiB;QACvC,uFAAuF;QACvF,6FAA6F;QAC7F,6FAA6F;QAC7F,0CAA0C;QAC1C,OAAO,GAAG,SAAS,OAAO,SAAS,EAAE,CAAC;IACxC,CAAC;IAED,sFAAsF;IACtF,MAAM,CAAC,SAAiB,EAAE,SAAiB,EAAE,MAAc,EAAE,EAAU,EAAE,IAAyB;QAChG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAiB,EAAE,SAAiB;QACxC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,GAAG,CAAC,SAAiB,EAAE,SAAiB;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAGlC;IACC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC;IAC5C,OAAO;QACL,EAAE,EAAE,KAAK;QACT,MAAM,EAAE,aAAa;QACrB,iGAAiG;QACjG,8FAA8F;QAC9F,6BAA6B;QAC7B,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY;QAC5C,UAAU,EAAE,IAAI,CAAC,SAAS;QAC1B,iGAAiG;QACjG,mFAAmF;QACnF,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;QACxC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;QAC/B,QAAQ,EAAE,KAAK;YACb,CAAC,CAAC,iEAAiE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI;gBACpF,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,uEAAuE;gBAC7F,0FAA0F;gBAC1F,4FAA4F;gBAC5F,8FAA8F;gBAC9F,yFAAyF;gBACzF,4FAA4F;gBAC5F,gCAAgC;YAClC,CAAC,CAAC,6DAA6D,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW;gBACvF,wBAAwB,IAAI,CAAC,OAAO,CAAC,MAAM,6CAA6C;gBACxF,sFAAsF;gBACtF,6FAA6F;gBAC7F,qFAAqF;gBACrF,wFAAwF;gBACxF,0FAA0F;gBAC1F,4FAA4F;gBAC5F,2FAA2F;gBAC3F,+CAA+C;KACpD,CAAC;AACJ,CAAC"}
|
package/dist/seal-flows.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seal-flows.d.ts","sourceRoot":"","sources":["../src/seal-flows.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,cAAc,GACtB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,0BAA0B,CAAC;IACnC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B,GACD,CAAC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,iBAAiB,CAAC,CAAC;AAE1E,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,0BAA0B,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACpF;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAC;IAC/D,4EAA4E;IAC5E,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAC;IAClE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3G;;;;;OAKG;IACH,sBAAsB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACxI,6GAA6G;IAC7G,qBAAqB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACvE;AAGD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,iBAAiB,CAoD1C;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY;
|
|
1
|
+
{"version":3,"file":"seal-flows.d.ts","sourceRoot":"","sources":["../src/seal-flows.ts"],"names":[],"mappings":"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"}
|