@cello-protocol/daemon 0.0.189 → 0.0.190

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.
@@ -242,7 +242,19 @@ export declare class AgentRelayClient {
242
242
  * (idempotent). Storing the node per session lets a pure-receiver session re-establish
243
243
  * the shared stream if the node that originally dialed is torn down.
244
244
  */
245
- registerSession(sessionIdHex: string, node: CelloNode, onLeafDeliver?: (frame: LeafDeliverFrame) => void, assignment?: RelayAssignmentCarry): void;
245
+ registerSession(sessionIdHex: string, node: CelloNode, onLeafDeliver?: (frame: LeafDeliverFrame) => void, assignment?: RelayAssignmentCarry,
246
+ /**
247
+ * 033-ACKEMIT — the session's genesis prev_root: what the FIRST message of this session
248
+ * acknowledges, before anything has been received.
249
+ *
250
+ * Supplied by the caller because `session-node-manager` is where the session record lives. When
251
+ * it is absent an ASSIGNMENT can still produce it (both participant keys and the session
252
+ * timestamp are on the carry), and that covers re-registration of a session whose row predates
253
+ * the column. When NEITHER is available the session has no seed, and its first submit claims
254
+ * position 0 with no hash — which asserts nothing about content and is therefore honest, rather
255
+ * than a claim about a position it cannot back.
256
+ */
257
+ genesisPrevRoot?: Uint8Array): void;
246
258
  /**
247
259
  * DOD-M15-RELAYAUTH-1 review H1 — **present the assignment and WAIT for the relay to say it
248
260
  * recorded it.**
@@ -363,7 +375,44 @@ export declare class AgentRelayClient {
363
375
  */
364
376
  submitLeaf(node: CelloNode, sessionId: Uint8Array, contentHash: Uint8Array, leafKind: number, contentBytes: Uint8Array | null): Promise<SubmitResult>;
365
377
  /** The highest relay-assigned sequence observed for a given session (ack or deliver). */
366
- lastSeenSeq(sessionIdHex: string): number;
378
+ /**
379
+ * Advance this session's acknowledgement from a message that ARRIVED — 033-ACKEMIT review F1.
380
+ *
381
+ * ⚠️ **`#bumpLastSeen` used to have exactly one caller, inside the `leaf_deliver` handler, so the
382
+ * acknowledgement tracked what the RELAY DELIVERED rather than what was RECEIVED.** On a direct
383
+ * session that is a real difference: the content arrives peer-to-peer and the relay's copy of the
384
+ * leaf follows separately, so until it did, this daemon signed an acknowledgement one message
385
+ * behind what it had actually read — and on a session where delivery never came back at all, the
386
+ * acknowledgement never moved.
387
+ *
388
+ * The order's own words are "the content hash of the last message this sender ACTUALLY RECEIVED".
389
+ * This is the caller that makes that true: the receive path calls it as soon as a message has been
390
+ * verified and ingested at a known canonical position.
391
+ *
392
+ * **THE POSITION IS STILL REQUIRED, and that is a real limit rather than an oversight.** The pair
393
+ * is (position, content-at-position), and the relay refuses a `last_seen_seq` that runs ahead of
394
+ * its counter — so a message that arrived with NO ordering record cannot be acknowledged by
395
+ * position at all, whatever we hold of it. That case is the withheld-submit attack itself, and it
396
+ * is closed by carrying the sender's signed leaf into the seal, not from here.
397
+ */
398
+ noteReceivedLeaf(sessionIdHex: string, relaySeq: number, contentHash: Uint8Array): void;
399
+ /**
400
+ * The POSITION and the CONTENT AT IT together — 033-ACKEMIT.
401
+ *
402
+ * ⚠️ **IT REPLACED `lastSeenSeq()`, WHICH IS DELETED RATHER THAN LEFT WIRED.** That accessor
403
+ * returned the position alone, and `session-node-manager`'s unwitnessed content claim was its
404
+ * only caller. Leaving it in place after this one took over would leave a second way to read half
405
+ * of a pair that must be read whole: a `last_seen_seq` paired with a `last_seen_hash` for a
406
+ * different message is worse than no acknowledgement at all, because it looks checkable and
407
+ * fails.
408
+ *
409
+ * `undefined` means this session has no acknowledgement to make, which the caller must handle
410
+ * rather than fill in.
411
+ */
412
+ lastSeenAck(sessionIdHex: string): {
413
+ seq: number;
414
+ hash: Uint8Array;
415
+ } | undefined;
367
416
  close(): void;
368
417
  }
369
418
  //# sourceMappingURL=session-relay-client.d.ts.map
@@ -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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"}
@@ -31,7 +31,7 @@ var _a;
31
31
  import { createHash } from "node:crypto";
32
32
  import * as lp from "it-length-prefixed";
33
33
  import { decode } from "cbor-x";
34
- import { encodeCbor, decodeSealPayload, encodeStructure1, decodeStructure1 } from "@cello-protocol/protocol-types";
34
+ import { encodeCbor, decodeSealPayload, encodeStructure1, decodeStructure1, computeGenesisPrevRoot } from "@cello-protocol/protocol-types";
35
35
  import { verify } from "@cello-protocol/crypto";
36
36
  import { extractErrorMessage } from "./error-message.js";
37
37
  import { evaluateRelayAck } from "./relay-receipt-store.js";
@@ -197,6 +197,22 @@ function buildWitnessAlertTbs(sessionId, reason, observedAt, submitterIsCounterp
197
197
  const body = encodeCbor([RELAY_WITNESS_DOMAIN, sessionId, reason, observedAt, submitterIsCounterparty]);
198
198
  return new Uint8Array(createHash("sha256").update(body).digest());
199
199
  }
200
+ /**
201
+ * The genesis prev_root derivable from a relay assignment — 033-ACKEMIT.
202
+ *
203
+ * The carry holds both participant keys and the session timestamp, which with the session id are
204
+ * exactly `computeGenesisPrevRoot`'s inputs. Returns `undefined` when there is no assignment, and
205
+ * the caller then has no seed: absence is reported at the submit, never papered over.
206
+ *
207
+ * ⚠️ NOT 32 ZERO BYTES, and not any other constant. A value identical across every session is one
208
+ * an attacker can present for any session, which would make the first message's acknowledgement
209
+ * unfalsifiable exactly where it is most exposed.
210
+ */
211
+ function genesisFromAssignment(sessionIdHex, assignment) {
212
+ if (!assignment)
213
+ return undefined;
214
+ return computeGenesisPrevRoot(assignment.participantA, assignment.participantB, Uint8Array.from(Buffer.from(sessionIdHex, "hex")), assignment.sessionTimestamp);
215
+ }
200
216
  function toU8(v) {
201
217
  if (v instanceof Uint8Array)
202
218
  return v;
@@ -266,10 +282,25 @@ export class AgentRelayClient {
266
282
  #connecting = null;
267
283
  #closed = false;
268
284
  /**
269
- * PER-SESSION highest relay-assigned sequence (session_id hex → seq). The relay's
270
- * `seq_counter` is per session, and it rejects `last_seen_seq > seq_counter`, so each
271
- * session's submit MUST carry that session's own high-water mark NOT an agent-global
272
- * one (which would make a newer session's first submit look ahead and get rejected).
285
+ * PER-SESSION acknowledgement state (session_id hex → the position AND the content at it).
286
+ *
287
+ * `seq` is the highest relay-assigned sequence. The relay's `seq_counter` is per session, and it
288
+ * rejects `last_seen_seq > seq_counter`, so each session's submit MUST carry that session's own
289
+ * high-water mark — NOT an agent-global one (which would make a newer session's first submit look
290
+ * ahead and get rejected).
291
+ *
292
+ * ⚠️ `hash` IS THE SAME FACT AS `seq`, WHICH IS WHY THEY LIVE IN ONE ENTRY — 033-ACKEMIT.
293
+ *
294
+ * `last_seen_seq` is a NUMBER: "I saw position 7" attests to a POSITION and never to CONTENT, so
295
+ * a signed acknowledgement was an unbacked number that only the relay's separate receipt gave any
296
+ * meaning to. `hash` is the content hash of the message AT that position, and the two are written
297
+ * together in `#bumpLastSeen` from ONE decode of ONE leaf. They cannot be assigned apart, so they
298
+ * cannot come to mean different messages — which is the defect this unit exists to remove, not a
299
+ * disagreement to reconcile later.
300
+ *
301
+ * Seeded at `registerSession` with `{ seq: 0, hash: genesisPrevRoot }`: the first message of a
302
+ * session has seen nothing, and that case is a DEFINED 32-byte value — the agreed starting point
303
+ * of this two-party chain — never a missing field and never a fallback to v1.
273
304
  */
274
305
  #lastSeen = new Map();
275
306
  /** The one outstanding submit's resolver (global FIFO — ack carries no session_id). */
@@ -320,17 +351,43 @@ export class AgentRelayClient {
320
351
  * (idempotent). Storing the node per session lets a pure-receiver session re-establish
321
352
  * the shared stream if the node that originally dialed is torn down.
322
353
  */
323
- registerSession(sessionIdHex, node, onLeafDeliver, assignment) {
354
+ registerSession(sessionIdHex, node, onLeafDeliver, assignment,
355
+ /**
356
+ * 033-ACKEMIT — the session's genesis prev_root: what the FIRST message of this session
357
+ * acknowledges, before anything has been received.
358
+ *
359
+ * Supplied by the caller because `session-node-manager` is where the session record lives. When
360
+ * it is absent an ASSIGNMENT can still produce it (both participant keys and the session
361
+ * timestamp are on the carry), and that covers re-registration of a session whose row predates
362
+ * the column. When NEITHER is available the session has no seed, and its first submit claims
363
+ * position 0 with no hash — which asserts nothing about content and is therefore honest, rather
364
+ * than a claim about a position it cannot back.
365
+ */
366
+ genesisPrevRoot) {
324
367
  const existing = this.#sessions.get(sessionIdHex);
368
+ const carriedAssignment = assignment ?? existing?.assignment;
325
369
  this.#sessions.set(sessionIdHex, {
326
370
  node,
327
371
  onLeafDeliver: onLeafDeliver ?? (() => { }),
328
372
  // Carry the assignment forward across re-registration; never lose a recorded flag on re-register.
329
- assignment: assignment ?? existing?.assignment,
373
+ assignment: carriedAssignment,
330
374
  recorded: existing?.recorded ?? false,
331
375
  recordRejected: existing?.recordRejected ?? false,
332
376
  recordTimedOut: existing?.recordTimedOut ?? false,
333
377
  });
378
+ /**
379
+ * SEED THE ACKNOWLEDGEMENT, and only when there is nothing to lose.
380
+ *
381
+ * A session that has already received a leaf holds a REAL `{ seq, hash }`; overwriting it with
382
+ * the genesis on a re-registration would walk the acknowledgement backwards to "I have seen
383
+ * nothing" for a conversation that is well underway — and the relay would then answer the next
384
+ * submit from a position we had already passed.
385
+ */
386
+ if (!this.#lastSeen.has(sessionIdHex)) {
387
+ const seed = genesisPrevRoot ?? genesisFromAssignment(sessionIdHex, carriedAssignment);
388
+ if (seed)
389
+ this.#lastSeen.set(sessionIdHex, { seq: 0, hash: seed });
390
+ }
334
391
  // Eagerly present the assignment so the relay records the session (binds peer IDs, creates the
335
392
  // session entry) BEFORE the first hash_submit or the counterparty's leaves arrive — the relay
336
393
  // rejects frames for a session it has not recorded. Best-effort + serialized on the submit chain
@@ -495,12 +552,25 @@ export class AgentRelayClient {
495
552
  catch { /* best-effort */ }
496
553
  }
497
554
  }
498
- #bumpLastSeen(sessionIdHex, seq) {
555
+ /**
556
+ * Advance this session's acknowledgement to a counterparty leaf: the POSITION and the CONTENT
557
+ * AT IT, written together (033-ACKEMIT).
558
+ *
559
+ * `contentHash` comes from the same `decodeStructure1` of the same leaf that produced `seq`, so
560
+ * the pair describes one message by construction. There is no path that advances one without the
561
+ * other, and that is deliberate: a `last_seen_seq` and a `last_seen_hash` that could drift apart
562
+ * would let this daemon sign an acknowledgement of a message it never saw.
563
+ *
564
+ * Monotonic on `seq` — a re-delivery of an earlier leaf must not walk the acknowledgement
565
+ * backwards, and it must not swap the hash under an unchanged position either.
566
+ */
567
+ #bumpLastSeen(sessionIdHex, seq, contentHash) {
499
568
  if (seq < 0)
500
569
  return;
501
- const prev = this.#lastSeen.get(sessionIdHex) ?? 0;
502
- if (seq > prev)
503
- this.#lastSeen.set(sessionIdHex, seq);
570
+ const prev = this.#lastSeen.get(sessionIdHex);
571
+ if (prev && seq <= prev.seq)
572
+ return;
573
+ this.#lastSeen.set(sessionIdHex, { seq, hash: contentHash });
504
574
  }
505
575
  /** True if this Structure-1 leaf was authored by US (sender_pubkey === our K_local). */
506
576
  #isOwnLeaf(structure1Cbor) {
@@ -687,11 +757,46 @@ export class AgentRelayClient {
687
757
  const seq = typeof frame["sequence_number"] === "number" ? frame["sequence_number"] : -1;
688
758
  const sidHex = Buffer.from(toU8(frame["session_id"])).toString("hex");
689
759
  const s1 = toU8(frame["structure1_cbor"]);
690
- // Advance last_seen_seq ONLY for a COUNTERPARTY leaf. The relay also echoes our OWN
760
+ /**
761
+ * ONE DECODE, TWO CONSUMERS — 033-ACKEMIT. The acknowledgement bump and the seal-leaf capture
762
+ * below both need the sender's own signed fields, and they must agree about which leaf they
763
+ * are looking at. Decoding twice would let a future edit change one read and not the other.
764
+ */
765
+ const deliveredS1 = decodeStructure1(s1);
766
+ // Advance last_seen ONLY for a COUNTERPARTY leaf. The relay also echoes our OWN
691
767
  // leaf back as a leaf_deliver — that must NOT advance it (same reason as the ack above).
692
768
  const authoredByUs = this.#isOwnLeaf(s1);
693
- if (seq >= 0 && !authoredByUs)
694
- this.#bumpLastSeen(sidHex, seq);
769
+ /**
770
+ * The POSITION and the CONTENT AT IT, from the counterparty's own signed bytes.
771
+ *
772
+ * ⚠️ THE HASH COMES FROM INSIDE `structure1_cbor`, NEVER FROM AN ENVELOPE FIELD. The frame
773
+ * also carries `structure2_cbor`, which the RELAY built — taking the hash from there would key
774
+ * our acknowledgement on a value the witness supplies, and a tampering relay could then make
775
+ * us sign an acknowledgement of content the counterparty never sent. Index 1 of Structure 1 is
776
+ * inside the bytes the counterparty signed, so it is the one copy neither we nor the relay can
777
+ * move.
778
+ *
779
+ * A leaf whose layout this build cannot name advances NOTHING — position included. The
780
+ * previous code advanced `seq` from the envelope regardless, so an unreadable leaf could move
781
+ * the acknowledgement forward while leaving the hash behind it; refusing to advance keeps the
782
+ * pair describing one real message, and the relay's own decoder already gates what reaches
783
+ * here.
784
+ */
785
+ if (seq >= 0 && !authoredByUs) {
786
+ if (deliveredS1.ok) {
787
+ this.#bumpLastSeen(sidHex, seq, deliveredS1.fields.contentHash);
788
+ }
789
+ else {
790
+ this.#logger.warn("relay.leaf_deliver.unreadable", {
791
+ seq,
792
+ session: sidHex,
793
+ structure1Reason: deliveredS1.reason,
794
+ impact: "this delivered leaf could not be read, so this session's acknowledgement was NOT " +
795
+ "advanced to it. The next message this agent sends will acknowledge the last leaf it " +
796
+ "could read, which is honest — it never claims to have seen something it could not.",
797
+ });
798
+ }
799
+ }
695
800
  // Record the COUNTERPARTY's delivered leaf in the seal-leaf log (no relay
696
801
  // receipt — the relay does not ack-sign a delivery to the recipient). It is pinned at seal by the
697
802
  // absent party's sender_signature (unforgeable) + sequence contiguity against our receipt-pinned own
@@ -705,9 +810,8 @@ export class AgentRelayClient {
705
810
  // #isOwnLeaf and #captureReceipt and was simply missed by the order's reader list, which is
706
811
  // exactly the "next layout change has to find them again" problem the shared decoder exists
707
812
  // to end. Behaviour for every relay-accepted leaf is unchanged; the fail-open closes.
708
- const s1Decoded = decodeStructure1(s1);
709
- const senderHex = s1Decoded.ok
710
- ? Buffer.from(s1Decoded.fields.senderPubkey).toString("hex")
813
+ const senderHex = deliveredS1.ok
814
+ ? Buffer.from(deliveredS1.fields.senderPubkey).toString("hex")
711
815
  : undefined;
712
816
  if (structure2Cbor && s1.length > 0 && senderHex) {
713
817
  try {
@@ -1512,20 +1616,64 @@ export class AgentRelayClient {
1512
1616
  const stream = this.#stream;
1513
1617
  if (!stream)
1514
1618
  return { ok: false, reason: "relay_unavailable" };
1515
- // This session's OWN high-water mark (NOT an agent-global one) — the relay's seq_counter
1516
- // is per session and rejects last_seen_seq > seq_counter.
1517
- const lastSeenForSession = this.#lastSeen.get(sessionIdHex) ?? 0;
1619
+ /**
1620
+ * ─── WHAT THIS SEND ACKNOWLEDGES 033-ACKEMIT ───────────────────────────────────────────────
1621
+ *
1622
+ * This session's OWN high-water mark (NOT an agent-global one) — the relay's seq_counter is per
1623
+ * session and rejects `last_seen_seq > seq_counter` — AND the content hash at that position,
1624
+ * read from the one entry that holds both.
1625
+ */
1626
+ const lastSeen = this.#lastSeen.get(sessionIdHex);
1627
+ /**
1628
+ * ⚠️ **THIS COMMENT USED TO SAY "REFUSED, NOT DOWNGRADED", AND THE CODE UNDER IT DID REFUSE.**
1629
+ * It is rewritten rather than deleted because a comment asserting a refusal that no longer
1630
+ * happens is how the next reader comes to believe a guard exists where there is a fallback.
1631
+ *
1632
+ * There is no seed only when this session was registered with neither a genesis nor an
1633
+ * assignment to derive one from, AND nothing has been received on it. The claim that goes out
1634
+ * then is `last_seen_seq: 0` with no hash — "I have seen nothing of yours" — which is true and
1635
+ * asserts nothing about content, so it is not the unbacked number this unit exists to stop
1636
+ * signing. A claim that NAMES a position with no hash is the defect, and the receiving daemon
1637
+ * refuses exactly that.
1638
+ */
1639
+ if (!lastSeen) {
1640
+ /**
1641
+ * ⚠️ **v1, AND ONLY BECAUSE THERE IS NOTHING TO ACKNOWLEDGE.** Same rule as the content
1642
+ * claim's, and the receiving half is `#verifyAcknowledgedContent` — a v1 claim is refused the
1643
+ * moment it names position 1 or beyond, and accepted when it names none.
1644
+ *
1645
+ * Reaching here means the session was registered with no genesis and no assignment to derive
1646
+ * one from, and no counterparty leaf has been delivered. `last_seen_seq: 0` with no hash says
1647
+ * "I have seen nothing of yours", which is true, and asserts nothing about content — so it is
1648
+ * not the unbacked number this unit exists to stop signing.
1649
+ *
1650
+ * It does not refuse the submit, and an earlier version did. Sessions brokered without a
1651
+ * relay assignment are real, and refusing there left them unable to be witnessed at all.
1652
+ */
1653
+ this.#logger.info("session.relay.submit.unacknowledged", {
1654
+ relayPeerId: this.#relayPeerId,
1655
+ session: sessionIdHex,
1656
+ impact: "this submit acknowledges nothing: the session has no recorded starting point and no " +
1657
+ "counterparty leaf has arrived on it. The leaf is witnessed as normal; the claim simply " +
1658
+ "makes no assertion about what this agent has received.",
1659
+ });
1660
+ }
1518
1661
  // The published encoder from protocol-types — the ONE definition of the field order, pinned by
1519
- // `structure1-canonical.json`. A second local copy lived here until 020-ACKHASH; it drifted, and
1520
- // the drift was invisible because both copies "worked": it encoded a timestamp above 2^32-1 as a
1521
- // CBOR float64 while the published encoder (and every other TBS builder in this package) promotes
1522
- // it to a uint64. Same value, different signed bytes, and only the vector said which was canonical.
1662
+ // `structure1-canonical.json` (v1) and `structure1-v2-canonical.json` (v2). A second local copy
1663
+ // lived here until 020-ACKHASH; it drifted, and the drift was invisible because both copies
1664
+ // "worked": it encoded a timestamp above 2^32-1 as a CBOR float64 while the published encoder
1665
+ // (and every other TBS builder in this package) promotes it to a uint64. Same value, different
1666
+ // signed bytes, and only the vector said which was canonical.
1667
+ //
1668
+ // `lastSeenHash` is passed on EVERY send, so every claim this daemon signs is v2 and binds to
1669
+ // content. Nothing here ever passes `undefined` — see the refusal above.
1523
1670
  const structure1 = encodeStructure1({
1524
1671
  contentHash,
1525
1672
  senderPubkey: this.#senderPubkey,
1526
1673
  sessionId,
1527
- lastSeenSeq: lastSeenForSession,
1674
+ lastSeenSeq: lastSeen?.seq ?? 0,
1528
1675
  timestamp: Date.now(),
1676
+ ...(lastSeen ? { lastSeenHash: lastSeen.hash } : {}),
1529
1677
  });
1530
1678
  const signature = await this.#keyProvider.sign(structure1);
1531
1679
  const frame = encodeCbor({
@@ -1609,8 +1757,44 @@ export class AgentRelayClient {
1609
1757
  }
1610
1758
  }
1611
1759
  /** The highest relay-assigned sequence observed for a given session (ack or deliver). */
1612
- lastSeenSeq(sessionIdHex) {
1613
- return this.#lastSeen.get(sessionIdHex) ?? 0;
1760
+ /**
1761
+ * Advance this session's acknowledgement from a message that ARRIVED — 033-ACKEMIT review F1.
1762
+ *
1763
+ * ⚠️ **`#bumpLastSeen` used to have exactly one caller, inside the `leaf_deliver` handler, so the
1764
+ * acknowledgement tracked what the RELAY DELIVERED rather than what was RECEIVED.** On a direct
1765
+ * session that is a real difference: the content arrives peer-to-peer and the relay's copy of the
1766
+ * leaf follows separately, so until it did, this daemon signed an acknowledgement one message
1767
+ * behind what it had actually read — and on a session where delivery never came back at all, the
1768
+ * acknowledgement never moved.
1769
+ *
1770
+ * The order's own words are "the content hash of the last message this sender ACTUALLY RECEIVED".
1771
+ * This is the caller that makes that true: the receive path calls it as soon as a message has been
1772
+ * verified and ingested at a known canonical position.
1773
+ *
1774
+ * **THE POSITION IS STILL REQUIRED, and that is a real limit rather than an oversight.** The pair
1775
+ * is (position, content-at-position), and the relay refuses a `last_seen_seq` that runs ahead of
1776
+ * its counter — so a message that arrived with NO ordering record cannot be acknowledged by
1777
+ * position at all, whatever we hold of it. That case is the withheld-submit attack itself, and it
1778
+ * is closed by carrying the sender's signed leaf into the seal, not from here.
1779
+ */
1780
+ noteReceivedLeaf(sessionIdHex, relaySeq, contentHash) {
1781
+ this.#bumpLastSeen(sessionIdHex, relaySeq, contentHash);
1782
+ }
1783
+ /**
1784
+ * The POSITION and the CONTENT AT IT together — 033-ACKEMIT.
1785
+ *
1786
+ * ⚠️ **IT REPLACED `lastSeenSeq()`, WHICH IS DELETED RATHER THAN LEFT WIRED.** That accessor
1787
+ * returned the position alone, and `session-node-manager`'s unwitnessed content claim was its
1788
+ * only caller. Leaving it in place after this one took over would leave a second way to read half
1789
+ * of a pair that must be read whole: a `last_seen_seq` paired with a `last_seen_hash` for a
1790
+ * different message is worse than no acknowledgement at all, because it looks checkable and
1791
+ * fails.
1792
+ *
1793
+ * `undefined` means this session has no acknowledgement to make, which the caller must handle
1794
+ * rather than fill in.
1795
+ */
1796
+ lastSeenAck(sessionIdHex) {
1797
+ return this.#lastSeen.get(sessionIdHex);
1614
1798
  }
1615
1799
  close() {
1616
1800
  this.#closed = true;
@@ -1 +1 @@
1
- {"version":3,"file":"session-relay-client.js","sourceRoot":"","sources":["../src/session-relay-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-relay-client.js","sourceRoot":"","sources":["../src/session-relay-client.ts"],"names":[],"mappings":"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"}