@cello-protocol/daemon 0.0.104 → 0.0.106

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.
@@ -4,6 +4,8 @@ import type { IpcHandler } from "./ipc-server.js";
4
4
  import type { SessionNodeManager } from "./session-node-manager.js";
5
5
  import type { AgentInfo, Logger } from "./types.js";
6
6
  import type { ConnState } from "./contact-handlers.js";
7
+ import type { RelayConnectParams } from "./session-node-manager.js";
8
+ import type { RelayAssignmentCarry } from "./session-relay-client.js";
7
9
  /** How long an un-accepted inbound session request stays claimable. */
8
10
  export declare const INBOUND_SESSION_TTL_MS: number;
9
11
  /** A session request that expired before anyone claimed it. Surfaced by the push-loss reconciler. */
@@ -129,6 +131,63 @@ presentedThisSession?: ReadonlySet<string>): {
129
131
  claim: unknown;
130
132
  }>;
131
133
  } | undefined;
134
+ /**
135
+ * DOD-FIRSTMSG-WITNESS-1: build the RESPONDER's `RelayAssignmentCarry` from a parsed inbound
136
+ * assignment, so it can present `client_record_assignment` and create its own relay session state.
137
+ *
138
+ * Before this the responder carried no assignment at all: `#doRecord` no-opped (returning TRUE —
139
+ * "nothing to present"), `#doSubmit` submitted blind, and the relay answered `session_not_found`
140
+ * unless the initiator's record had already landed. Same-machine loses that race because local
141
+ * delivery is instant while the initiator's record is a round trip.
142
+ *
143
+ * Mirrors `buildRelayConnectParams` (daemon.ts) on the initiator side. Returns undefined when the
144
+ * directory issued no signature, leaving direct/legacy sessions exactly as they were.
145
+ *
146
+ * The field mapping is load-bearing: the relay rebuilds the signed TBS from these values, so a
147
+ * swapped participant or a dropped peer id yields an assignment it rejects as FORGED — which sets
148
+ * `recordRejected` terminally and leaves the session permanently unwitnessed. That is a worse
149
+ * failure than the one this closes, which is why it is extracted and tested directly.
150
+ */
151
+ /**
152
+ * M7 DOD-SPINE-6 / MSG-001-3b + DOD-FIRSTMSG-WITNESS-1: the responder's relay-witness params.
153
+ *
154
+ * Extracted from `acceptInboundAssignment` so the whole object handed to `acceptSession` — not just
155
+ * its parts — is directly assertable. The `assignment` field is the fix: without it the responder
156
+ * can never present `client_record_assignment`.
157
+ *
158
+ * Returns undefined when this agent has no key or the assignment carries no relay endpoint — the
159
+ * session then runs on the direct content path with no relay witness (degraded, never blocked).
160
+ */
161
+ export declare function buildResponderRelayParams(parsed: NonNullable<ReturnType<typeof extractInboundSessionAssignment>>, kp: KeyProvider | undefined, logger: Logger, agentName: string): Promise<RelayConnectParams | undefined>;
162
+ export declare function buildResponderRelayAssignment(parsed: {
163
+ participantAPubkeyHex: string;
164
+ participantBPubkeyHex: string;
165
+ sessionTimestamp: number;
166
+ initiatorPeerId: string;
167
+ counterpartySessionPeerId: string | null;
168
+ relayDirectorySignature: Uint8Array | undefined;
169
+ }): RelayAssignmentCarry | undefined;
170
+ export declare function extractInboundSessionAssignment(frame: Record<string, unknown>): {
171
+ sessionIdHex: string;
172
+ participantAPubkeyHex: string;
173
+ participantBPubkeyHex: string;
174
+ initiatorPeerId: string;
175
+ counterpartySessionPeerId: string | null;
176
+ sessionTimestamp: number;
177
+ signatureType: string | null;
178
+ signerPubkeyHex: string | null;
179
+ relayPeerId: string;
180
+ relayAddrs: string[];
181
+ relayDirectorySignature: Uint8Array | undefined;
182
+ relayDirectorySignatureMalformed: boolean;
183
+ offeredMoniker: string | null;
184
+ monikerRejected: boolean;
185
+ monikerRejectReason: "not_string" | "length" | "charset" | null;
186
+ trustSignals: Array<{
187
+ hash: string;
188
+ blob: Uint8Array;
189
+ }> | undefined;
190
+ } | null;
132
191
  export declare function createInboundSessions(deps: InboundSessionDeps): {
133
192
  registerHandlers: (handlers: Map<string, IpcHandler>) => void;
134
193
  wirePerAgentSessionInbound: (mgr: SignalingManager) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"inbound-sessions.d.ts","sourceRoot":"","sources":["../src/inbound-sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbound-sessions.d.ts","sourceRoot":"","sources":["../src/inbound-sessions.ts"],"names":[],"mappings":"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"}
@@ -135,6 +135,150 @@ presentedThisSession) {
135
135
  trust_signals: signals,
136
136
  };
137
137
  }
138
+ // Pull the fields out of a pushed session_assignment frame. Returns null when the frame
139
+ // carries no usable assignment object / is missing the essential ids (the handler then
140
+ // ignores it rather than throwing). Field-level validity (peer id, signature type) is
141
+ // checked in the handler so it can emit a distinct, diagnosable event per failure.
142
+ /**
143
+ * Coerce a wire value to a 64-byte Ed25519 signature, or undefined. CBOR decodes byte strings as
144
+ * Uint8Array or Buffer depending on the decoder, so accept both; reject every other shape and any
145
+ * wrong length rather than passing a malformed signature downstream.
146
+ */
147
+ function toSignature64(v) {
148
+ const bytes = v instanceof Uint8Array ? v : Buffer.isBuffer(v) ? new Uint8Array(v) : null;
149
+ return bytes && bytes.length === 64 ? bytes : undefined;
150
+ }
151
+ /**
152
+ * DOD-FIRSTMSG-WITNESS-1: build the RESPONDER's `RelayAssignmentCarry` from a parsed inbound
153
+ * assignment, so it can present `client_record_assignment` and create its own relay session state.
154
+ *
155
+ * Before this the responder carried no assignment at all: `#doRecord` no-opped (returning TRUE —
156
+ * "nothing to present"), `#doSubmit` submitted blind, and the relay answered `session_not_found`
157
+ * unless the initiator's record had already landed. Same-machine loses that race because local
158
+ * delivery is instant while the initiator's record is a round trip.
159
+ *
160
+ * Mirrors `buildRelayConnectParams` (daemon.ts) on the initiator side. Returns undefined when the
161
+ * directory issued no signature, leaving direct/legacy sessions exactly as they were.
162
+ *
163
+ * The field mapping is load-bearing: the relay rebuilds the signed TBS from these values, so a
164
+ * swapped participant or a dropped peer id yields an assignment it rejects as FORGED — which sets
165
+ * `recordRejected` terminally and leaves the session permanently unwitnessed. That is a worse
166
+ * failure than the one this closes, which is why it is extracted and tested directly.
167
+ */
168
+ /**
169
+ * M7 DOD-SPINE-6 / MSG-001-3b + DOD-FIRSTMSG-WITNESS-1: the responder's relay-witness params.
170
+ *
171
+ * Extracted from `acceptInboundAssignment` so the whole object handed to `acceptSession` — not just
172
+ * its parts — is directly assertable. The `assignment` field is the fix: without it the responder
173
+ * can never present `client_record_assignment`.
174
+ *
175
+ * Returns undefined when this agent has no key or the assignment carries no relay endpoint — the
176
+ * session then runs on the direct content path with no relay witness (degraded, never blocked).
177
+ */
178
+ export async function buildResponderRelayParams(parsed, kp, logger, agentName) {
179
+ if (!kp || !parsed.relayPeerId || parsed.relayAddrs.length === 0)
180
+ return undefined;
181
+ // DOD-FIRSTMSG-WITNESS-1 (F4): mirror the initiator's loud warning (daemon.ts:457). We only reach
182
+ // here when the assignment carries a relay endpoint, so a missing signature is NOT the legitimate
183
+ // direct/legacy case — it means this session gets no relay witness of its own, which is exactly
184
+ // the pre-fix state. Unwitnessed is an allowed sovereign-redundancy state; it must not be
185
+ // INVISIBLE. Malformed is reported separately from absent: a wrong-length signature is a
186
+ // wire/version bug, not a legacy session.
187
+ if (!parsed.relayDirectorySignature) {
188
+ logger.warn("session.relay.assignment.signature.missing", {
189
+ agentName,
190
+ sessionId: parsed.sessionIdHex.slice(0, 16),
191
+ reason: parsed.relayDirectorySignatureMalformed
192
+ ? "relay_directory_signature_malformed"
193
+ : "relay_mode_assignment_without_directory_signature",
194
+ });
195
+ }
196
+ return {
197
+ relayPeerId: parsed.relayPeerId,
198
+ relayAddrs: parsed.relayAddrs,
199
+ keyProvider: kp,
200
+ senderPubkey: await kp.getPublicKey(),
201
+ sessionIdBytes: new Uint8Array(Buffer.from(parsed.sessionIdHex, "hex")),
202
+ assignment: buildResponderRelayAssignment(parsed),
203
+ };
204
+ }
205
+ export function buildResponderRelayAssignment(parsed) {
206
+ if (!parsed.relayDirectorySignature)
207
+ return undefined;
208
+ return {
209
+ participantA: new Uint8Array(Buffer.from(parsed.participantAPubkeyHex, "hex")),
210
+ participantB: new Uint8Array(Buffer.from(parsed.participantBPubkeyHex, "hex")),
211
+ sessionTimestamp: parsed.sessionTimestamp,
212
+ initiatorSessionPeerId: parsed.initiatorPeerId || undefined,
213
+ counterpartySessionPeerId: parsed.counterpartySessionPeerId ?? undefined,
214
+ assignmentSignature: parsed.relayDirectorySignature,
215
+ };
216
+ }
217
+ export function extractInboundSessionAssignment(frame) {
218
+ const raw = frame["assignment"];
219
+ if (!raw || typeof raw !== "object")
220
+ return null;
221
+ const a = raw;
222
+ const pa = a["participant_a"];
223
+ const pb = a["participant_b"];
224
+ const sessionIdHex = frameValueToHex(a["session_id"]);
225
+ const participantAPubkeyHex = pa ? frameValueToHex(pa["pubkey"]) : null;
226
+ const participantBPubkeyHex = pb ? frameValueToHex(pb["pubkey"]) : null;
227
+ if (!sessionIdHex || !participantAPubkeyHex || !participantBPubkeyHex)
228
+ return null;
229
+ // M7 DOD-SPINE-6 / MSG-001-3b: relay endpoint so the receiver also connects to the
230
+ // relay witness (so the relay can deliver the initiator's witnessed leaves to it).
231
+ const relayEndpoint = a["relay_endpoint"];
232
+ const relayPeerId = relayEndpoint && typeof relayEndpoint["peer_id"] === "string" ? relayEndpoint["peer_id"] : "";
233
+ const relayAddrs = relayEndpoint && Array.isArray(relayEndpoint["multiaddrs"])
234
+ ? relayEndpoint["multiaddrs"].filter((m) => typeof m === "string")
235
+ : [];
236
+ // MONIKER-2 AC2: validate the offered name ONCE, at this wire boundary.
237
+ const monikerResult = extractOfferedMoniker(a);
238
+ // DOD-PRESENT-1: extract trust signals that survived the directory's dumb check.
239
+ let trustSignals;
240
+ const rawSignals = a["trust_signals"];
241
+ if (Array.isArray(rawSignals) && rawSignals.length > 0) {
242
+ const parsed = [];
243
+ for (const entry of rawSignals) {
244
+ if (entry && typeof entry === "object") {
245
+ const e = entry;
246
+ const hash = typeof e["hash"] === "string" ? e["hash"] : null;
247
+ const blob = e["blob"] instanceof Uint8Array ? e["blob"] : Buffer.isBuffer(e["blob"]) ? new Uint8Array(e["blob"]) : null;
248
+ if (hash && blob)
249
+ parsed.push({ hash, blob });
250
+ }
251
+ }
252
+ if (parsed.length > 0)
253
+ trustSignals = parsed;
254
+ }
255
+ return {
256
+ sessionIdHex,
257
+ participantAPubkeyHex,
258
+ participantBPubkeyHex,
259
+ initiatorPeerId: typeof a["initiator_session_peer_id"] === "string" ? a["initiator_session_peer_id"] : "",
260
+ counterpartySessionPeerId: typeof a["counterparty_session_peer_id"] === "string" ? a["counterparty_session_peer_id"] : null,
261
+ sessionTimestamp: typeof a["session_timestamp"] === "number" ? a["session_timestamp"] : 0,
262
+ signatureType: typeof a["signature_type"] === "string" ? a["signature_type"] : null,
263
+ // M7 legibility-TBS-binding (responder verify): the FROST-signed assignment embeds the
264
+ // initiator's primary (group) pubkey as `signer_pubkey` — the key that signs the seal.
265
+ // The responder stores it so it can verify the bilateral seal signature locally, not just
266
+ // accept it (session.ts: "embedded so the counterparty can verify").
267
+ signerPubkeyHex: a["signer_pubkey"] !== undefined ? frameValueToHex(a["signer_pubkey"]) : null,
268
+ relayPeerId,
269
+ relayAddrs,
270
+ // DOD-FIRSTMSG-WITNESS-1. Accept only a well-formed 64-byte Ed25519 signature: anything else
271
+ // (wrong length, wrong type) reads as ABSENT, so a malformed field degrades to "this session
272
+ // has no client-presentable assignment" rather than producing a frame the relay rejects as
273
+ // forged — which would mark the session recordRejected and terminally unwitnessed.
274
+ relayDirectorySignature: toSignature64(a["relay_directory_signature"]),
275
+ relayDirectorySignatureMalformed: a["relay_directory_signature"] !== undefined && toSignature64(a["relay_directory_signature"]) === undefined,
276
+ offeredMoniker: monikerResult.offeredMoniker,
277
+ monikerRejected: monikerResult.rejected,
278
+ monikerRejectReason: monikerResult.reason ?? null,
279
+ trustSignals,
280
+ };
281
+ }
138
282
  export function createInboundSessions(deps) {
139
283
  const { logger, sessionNodeManager, agents, getConnState, resolveCurrentAgent, NO_CURRENT_AGENT_RESPONSE, getKeyProvider, sharedSignaling, handleInboundSealInterruptedRequest, reapDeadHalfOpenSessions, sendAwayResponse, dispatchSessionStateChangedWithTelegram, sendTelegramDoorbell, } = deps;
140
284
  // ─── Seam 2: inbound session establishment (counterparty side) ─────────────
@@ -257,69 +401,6 @@ export function createInboundSessions(deps) {
257
401
  }
258
402
  inboundSessionQueues.set(agentName, live);
259
403
  }
260
- // Pull the fields out of a pushed session_assignment frame. Returns null when the frame
261
- // carries no usable assignment object / is missing the essential ids (the handler then
262
- // ignores it rather than throwing). Field-level validity (peer id, signature type) is
263
- // checked in the handler so it can emit a distinct, diagnosable event per failure.
264
- function extractInboundSessionAssignment(frame) {
265
- const raw = frame["assignment"];
266
- if (!raw || typeof raw !== "object")
267
- return null;
268
- const a = raw;
269
- const pa = a["participant_a"];
270
- const pb = a["participant_b"];
271
- const sessionIdHex = frameValueToHex(a["session_id"]);
272
- const participantAPubkeyHex = pa ? frameValueToHex(pa["pubkey"]) : null;
273
- const participantBPubkeyHex = pb ? frameValueToHex(pb["pubkey"]) : null;
274
- if (!sessionIdHex || !participantAPubkeyHex || !participantBPubkeyHex)
275
- return null;
276
- // M7 DOD-SPINE-6 / MSG-001-3b: relay endpoint so the receiver also connects to the
277
- // relay witness (so the relay can deliver the initiator's witnessed leaves to it).
278
- const relayEndpoint = a["relay_endpoint"];
279
- const relayPeerId = relayEndpoint && typeof relayEndpoint["peer_id"] === "string" ? relayEndpoint["peer_id"] : "";
280
- const relayAddrs = relayEndpoint && Array.isArray(relayEndpoint["multiaddrs"])
281
- ? relayEndpoint["multiaddrs"].filter((m) => typeof m === "string")
282
- : [];
283
- // MONIKER-2 AC2: validate the offered name ONCE, at this wire boundary.
284
- const monikerResult = extractOfferedMoniker(a);
285
- // DOD-PRESENT-1: extract trust signals that survived the directory's dumb check.
286
- let trustSignals;
287
- const rawSignals = a["trust_signals"];
288
- if (Array.isArray(rawSignals) && rawSignals.length > 0) {
289
- const parsed = [];
290
- for (const entry of rawSignals) {
291
- if (entry && typeof entry === "object") {
292
- const e = entry;
293
- const hash = typeof e["hash"] === "string" ? e["hash"] : null;
294
- const blob = e["blob"] instanceof Uint8Array ? e["blob"] : Buffer.isBuffer(e["blob"]) ? new Uint8Array(e["blob"]) : null;
295
- if (hash && blob)
296
- parsed.push({ hash, blob });
297
- }
298
- }
299
- if (parsed.length > 0)
300
- trustSignals = parsed;
301
- }
302
- return {
303
- sessionIdHex,
304
- participantAPubkeyHex,
305
- participantBPubkeyHex,
306
- initiatorPeerId: typeof a["initiator_session_peer_id"] === "string" ? a["initiator_session_peer_id"] : "",
307
- counterpartySessionPeerId: typeof a["counterparty_session_peer_id"] === "string" ? a["counterparty_session_peer_id"] : null,
308
- sessionTimestamp: typeof a["session_timestamp"] === "number" ? a["session_timestamp"] : 0,
309
- signatureType: typeof a["signature_type"] === "string" ? a["signature_type"] : null,
310
- // M7 legibility-TBS-binding (responder verify): the FROST-signed assignment embeds the
311
- // initiator's primary (group) pubkey as `signer_pubkey` — the key that signs the seal.
312
- // The responder stores it so it can verify the bilateral seal signature locally, not just
313
- // accept it (session.ts: "embedded so the counterparty can verify").
314
- signerPubkeyHex: a["signer_pubkey"] !== undefined ? frameValueToHex(a["signer_pubkey"]) : null,
315
- relayPeerId,
316
- relayAddrs,
317
- offeredMoniker: monikerResult.offeredMoniker,
318
- monikerRejected: monikerResult.rejected,
319
- monikerRejectReason: monikerResult.reason ?? null,
320
- trustSignals,
321
- };
322
- }
323
404
  // Wait (bounded) for THIS AGENT's standing receiver to be ready. acceptSession consumes the
324
405
  // agent's standing receiver and rebuilds a replacement asynchronously, so a burst of inbound
325
406
  // assignments for that agent would otherwise drop all but the first (review M2). Polling the
@@ -393,17 +474,7 @@ export function createInboundSessions(deps) {
393
474
  }
394
475
  // M7 DOD-SPINE-6 / MSG-001-3b: relay witness for the receiver. Build from the
395
476
  // inbound assignment's relay endpoint + this agent's K_local + the 16-byte session id.
396
- const kp = getKeyProvider(agentName);
397
- let relayParams;
398
- if (kp && parsed.relayPeerId && parsed.relayAddrs.length > 0) {
399
- relayParams = {
400
- relayPeerId: parsed.relayPeerId,
401
- relayAddrs: parsed.relayAddrs,
402
- keyProvider: kp,
403
- senderPubkey: await kp.getPublicKey(),
404
- sessionIdBytes: new Uint8Array(Buffer.from(parsed.sessionIdHex, "hex")),
405
- };
406
- }
477
+ const relayParams = await buildResponderRelayParams(parsed, getKeyProvider(agentName), logger, agentName);
407
478
  const result = await sessionNodeManager.acceptSession(parsed.sessionIdHex, agentName, parsed.participantAPubkeyHex, // the initiator is OUR counterparty
408
479
  parsed.initiatorPeerId, correlationId, relayParams);
409
480
  if (!result.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"inbound-sessions.js","sourceRoot":"","sources":["../src/inbound-sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbound-sessions.js","sourceRoot":"","sources":["../src/inbound-sessions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-relay-client.d.ts","sourceRoot":"","sources":["../src/session-relay-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-relay-client.d.ts","sourceRoot":"","sources":["../src/session-relay-client.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ var _a;
1
2
  /**
2
3
  * Daemon-side relay witness client (PER AGENT).
3
4
  *
@@ -173,6 +174,7 @@ export class AgentRelayClient {
173
174
  assignment: assignment ?? existing?.assignment,
174
175
  recorded: existing?.recorded ?? false,
175
176
  recordRejected: existing?.recordRejected ?? false,
177
+ recordTimedOut: existing?.recordTimedOut ?? false,
176
178
  });
177
179
  // Eagerly present the assignment so the relay records the session (binds peer IDs, creates the
178
180
  // session entry) BEFORE the first hash_submit or the counterparty's leaves arrive — the relay
@@ -236,6 +238,7 @@ export class AgentRelayClient {
236
238
  const result = await Promise.race([ackPromise, timeout]);
237
239
  if (result === "ok") {
238
240
  sess.recorded = true;
241
+ sess.recordTimedOut = false;
239
242
  this.#logger.info("session.relay.assignment.recorded", { relayPeerId: this.#relayPeerId, sessionShort: sessionIdHex.slice(0, 16) });
240
243
  return true;
241
244
  }
@@ -243,6 +246,7 @@ export class AgentRelayClient {
243
246
  // ONLY here reset the stream: a late ack on this superseded stream would settle a LATER submit's
244
247
  // resolver (FIFO desync). recorded stays false ⇒ a transient timeout is retried on reconnect.
245
248
  this.#resetStream();
249
+ sess.recordTimedOut = true;
246
250
  this.#logger.warn("session.relay.assignment.record.timeout", { relayPeerId: this.#relayPeerId, sessionShort: sessionIdHex.slice(0, 16) });
247
251
  return false;
248
252
  }
@@ -696,7 +700,87 @@ export class AgentRelayClient {
696
700
  this.#submitChain = run.then(() => undefined, () => undefined);
697
701
  return run;
698
702
  }
703
+ /**
704
+ * DOD-FIRSTMSG-WITNESS-1: `session_not_found` is TRANSIENT, not terminal.
705
+ *
706
+ * The relay answers it when it does not hold the session YET — the assignment record is still
707
+ * landing, or the counterparty recorded it and our own record raced ahead of the submit. Proven
708
+ * from the live log: in all 23 first-message failures the `assignment.recorded` event lands
709
+ * 5 ms – 2.1 s AFTER the rejected submit. The relay is reachable and answering; it is simply
710
+ * not ready.
711
+ *
712
+ * Before this, the rejection was returned to `sendContent`, which logged
713
+ * `session.relay.hash.submit.failed` and appended the leaf UNWITNESSED anyway. Nothing retried,
714
+ * so the relay's counter never counted that message and the local record stayed exactly one
715
+ * ahead for the life of the session. Because the bilateral certificate is rebuilt EXCLUSIVELY
716
+ * from relay-witnessed leaves, the sealed receipt omitted the conversation's opening message —
717
+ * and was issued regardless.
718
+ *
719
+ * Retrying re-presents the assignment first (idempotent — the relay answers `assignment_ok` on
720
+ * `session_already_exists`), which is also what supplies the wait: re-recording is a full
721
+ * round trip, so the retry cannot busy-spin against a relay that is still catching up.
722
+ *
723
+ * This does NOT collapse the two states the fix must tell apart:
724
+ * - `session_not_found` — a reachable relay that does not hold the session yet → retry here.
725
+ * - `relay_unavailable` / stream failures — a genuine outage → returned untouched, so
726
+ * `sendContent` still degrades to an unwitnessed append and the inbox stays readable.
727
+ * Any other rejection (`session_sealed`, `not_a_participant`, signature failures) is terminal
728
+ * and returned as-is — retrying those would be pointless traffic masking a real state.
729
+ */
730
+ static #SESSION_NOT_FOUND_ATTEMPTS = 3;
699
731
  async #doSubmit(node, sessionId, contentHash, leafKind) {
732
+ const sessionIdHex = Buffer.from(sessionId).toString("hex");
733
+ // Snapshotted BEFORE the first attempt, and it is the whole safety of this loop.
734
+ //
735
+ // The first-message race is BY DEFINITION a session we have not recorded yet. A session we DID
736
+ // record and that the relay now reports missing is a DIFFERENT state: the relay destroys a
737
+ // session on seal (relay-node.ts `confirmSeal`) and on idle sweep, and its store keeps NO
738
+ // tombstone — `recordSession` re-creates any absent key fresh (`seq_counter: 0`, empty
739
+ // leaf_log, status "active"). So `getSession` answers `session_not_found`, NOT `session_sealed`.
740
+ // Re-presenting our still-valid directory-signed assignment there would silently RESURRECT a
741
+ // sealed session on the relay: a ghost with an empty log, an idle timer and a delivery path,
742
+ // created by a client submit retry. Two ctrl leaves on it would drive a second notarization
743
+ // over a 1-leaf log for an already-certified session.
744
+ //
745
+ // The 2 post-seal failures in this defect's own evidence table are exactly that shape — they
746
+ // reported `session_not_found`, indistinguishable at the wire from the race — which is why
747
+ // this must be discriminated on OUR state, not on the relay's reason string.
748
+ const recordedBefore = this.#sessions.get(sessionIdHex)?.recorded === true;
749
+ let result = await this.#doSubmitOnce(node, sessionId, contentHash, leafKind);
750
+ for (let attempt = 1; attempt < _a.#SESSION_NOT_FOUND_ATTEMPTS
751
+ && !recordedBefore
752
+ && !result.ok
753
+ && (result.reason === "session_not_found" || result.reason === "session_not_recorded")
754
+ && !this.#closed; attempt++) {
755
+ // Force the assignment to be re-presented: we never recorded this session, so the relay
756
+ // genuinely does not hold it yet. A session with no assignment to present (direct/legacy)
757
+ // re-submits without a record — still bounded, and it surfaces the same named failure
758
+ // rather than hanging.
759
+ const sess = this.#sessions.get(sessionIdHex);
760
+ if (sess)
761
+ sess.recorded = false;
762
+ this.#logger.info("session.relay.submit.retry", {
763
+ relayPeerId: this.#relayPeerId,
764
+ sessionShort: sessionIdHex.slice(0, 16),
765
+ attempt,
766
+ reason: result.reason,
767
+ });
768
+ result = await this.#doSubmitOnce(node, sessionId, contentHash, leafKind);
769
+ }
770
+ // The relay lost a session we had successfully recorded — sealed, idle-swept, or restarted.
771
+ // Report THAT, rather than letting the caller read a bare `session_not_found` that reads like
772
+ // the first-message race. Never re-present here: recreating it is the resurrection above.
773
+ if (recordedBefore && !result.ok && result.reason === "session_not_found") {
774
+ this.#logger.warn("session.relay.session.gone", {
775
+ relayPeerId: this.#relayPeerId,
776
+ sessionShort: sessionIdHex.slice(0, 16),
777
+ guidance: "the relay no longer holds a session it had recorded (sealed, idle-swept, or restarted) — not re-presented, because that would recreate it with an empty leaf log",
778
+ });
779
+ return { ok: false, reason: "relay_session_gone" };
780
+ }
781
+ return result;
782
+ }
783
+ async #doSubmitOnce(node, sessionId, contentHash, leafKind) {
700
784
  if (this.#closed)
701
785
  return { ok: false, reason: "relay_client_closed" };
702
786
  if (!(await this.#ensureConnected(node)))
@@ -706,7 +790,29 @@ export class AgentRelayClient {
706
790
  // the first hash_submit — the relay rejects a submit for an unknown session. Idempotent + no-op when
707
791
  // there is no assignment to present (direct/persisted sessions). Runs inline on the submit chain (no re-chaining
708
792
  // — #doSubmit is already a chain link), and may reset the stream on failure, so capture #stream after.
709
- await this.#doRecord(node, sessionIdHex);
793
+ const recorded = await this.#doRecord(node, sessionIdHex);
794
+ const sess = this.#sessions.get(sessionIdHex);
795
+ if (!recorded && sess?.assignment) {
796
+ // DOD-FIRSTMSG-WITNESS-1 AC3: do NOT send a hash_submit for a session we know the relay does
797
+ // not hold. Previously this return value was discarded and the doomed frame went out anyway —
798
+ // the line this defect's producer→consumer trace names as THE gap. Two sub-states, kept apart:
799
+ // - recordRejected → TERMINAL (the relay refused the assignment as unverifiable). Retrying
800
+ // cannot help and would storm the shared stream.
801
+ // - anything else → the record is in flight or transiently failed. Retryable.
802
+ // A session with NO assignment to present (direct/legacy) is not covered here: #doRecord
803
+ // returns true for it, so it still submits exactly as before.
804
+ if (sess.recordRejected)
805
+ return { ok: false, reason: "relay_assignment_rejected" };
806
+ // A TIMEOUT IS NOT "NOT READY YET". The retry below exists for a relay that has not finished
807
+ // registering the session — it answers in milliseconds. A record that timed out means the relay
808
+ // is not answering at all, and retrying spends HASH_SUBMIT_TIMEOUT_MS again per attempt on the
809
+ // chain SHARED by every session this agent holds on this relay. Classifying it as unreachable
810
+ // proceeds unwitnessed immediately, which is what AC2 asks for on an outage — the send is not
811
+ // lost, and one sick relay cannot hold an operator's other conversations for half a minute.
812
+ if (sess.recordTimedOut)
813
+ return { ok: false, reason: "relay_unavailable" };
814
+ return { ok: false, reason: "session_not_recorded" };
815
+ }
710
816
  const stream = this.#stream;
711
817
  if (!stream)
712
818
  return { ok: false, reason: "relay_unavailable" };
@@ -790,4 +896,5 @@ export class AgentRelayClient {
790
896
  }
791
897
  }
792
898
  }
899
+ _a = AgentRelayClient;
793
900
  //# sourceMappingURL=session-relay-client.js.map