@cello-protocol/daemon 0.0.193 → 0.0.195

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.
Files changed (114) hide show
  1. package/dist/assignment-verify.d.ts +39 -11
  2. package/dist/assignment-verify.d.ts.map +1 -1
  3. package/dist/assignment-verify.js +133 -17
  4. package/dist/assignment-verify.js.map +1 -1
  5. package/dist/authorship-verification.d.ts +70 -0
  6. package/dist/authorship-verification.d.ts.map +1 -0
  7. package/dist/authorship-verification.js +441 -0
  8. package/dist/authorship-verification.js.map +1 -0
  9. package/dist/daemon.js +4 -1
  10. package/dist/daemon.js.map +1 -1
  11. package/dist/db-identity-store.d.ts +1 -0
  12. package/dist/db-identity-store.d.ts.map +1 -1
  13. package/dist/db-identity-store.js +19 -1
  14. package/dist/db-identity-store.js.map +1 -1
  15. package/dist/held-content.d.ts +141 -0
  16. package/dist/held-content.d.ts.map +1 -0
  17. package/dist/held-content.js +388 -0
  18. package/dist/held-content.js.map +1 -0
  19. package/dist/inbound-refusals.d.ts +283 -0
  20. package/dist/inbound-refusals.d.ts.map +1 -0
  21. package/dist/inbound-refusals.js +919 -0
  22. package/dist/inbound-refusals.js.map +1 -0
  23. package/dist/inbound-sessions.d.ts +1 -1
  24. package/dist/inbound-sessions.d.ts.map +1 -1
  25. package/dist/inbound-sessions.js +189 -32
  26. package/dist/inbound-sessions.js.map +1 -1
  27. package/dist/initiate-session-handler.d.ts.map +1 -1
  28. package/dist/initiate-session-handler.js +82 -0
  29. package/dist/initiate-session-handler.js.map +1 -1
  30. package/dist/outbound-sessions.d.ts.map +1 -1
  31. package/dist/outbound-sessions.js +108 -8
  32. package/dist/outbound-sessions.js.map +1 -1
  33. package/dist/park-recovery.d.ts +205 -0
  34. package/dist/park-recovery.d.ts.map +1 -0
  35. package/dist/park-recovery.js +600 -0
  36. package/dist/park-recovery.js.map +1 -0
  37. package/dist/refusal-notices.d.ts +196 -0
  38. package/dist/refusal-notices.d.ts.map +1 -0
  39. package/dist/refusal-notices.js +496 -0
  40. package/dist/refusal-notices.js.map +1 -0
  41. package/dist/refusal-reasons.d.ts +34 -0
  42. package/dist/refusal-reasons.d.ts.map +1 -1
  43. package/dist/refusal-reasons.js +84 -0
  44. package/dist/refusal-reasons.js.map +1 -1
  45. package/dist/registration-manager.d.ts.map +1 -1
  46. package/dist/registration-manager.js +126 -5
  47. package/dist/registration-manager.js.map +1 -1
  48. package/dist/registration-persistence.d.ts +18 -0
  49. package/dist/registration-persistence.d.ts.map +1 -1
  50. package/dist/registration-persistence.js +6 -0
  51. package/dist/registration-persistence.js.map +1 -1
  52. package/dist/session-assignment-parser.d.ts.map +1 -1
  53. package/dist/session-assignment-parser.js +23 -1
  54. package/dist/session-assignment-parser.js.map +1 -1
  55. package/dist/session-ceremony.d.ts +12 -7
  56. package/dist/session-ceremony.d.ts.map +1 -1
  57. package/dist/session-ceremony.js +12 -7
  58. package/dist/session-ceremony.js.map +1 -1
  59. package/dist/session-ephemerals.d.ts +271 -0
  60. package/dist/session-ephemerals.d.ts.map +1 -0
  61. package/dist/session-ephemerals.js +546 -0
  62. package/dist/session-ephemerals.js.map +1 -0
  63. package/dist/session-leaf-records.d.ts +132 -0
  64. package/dist/session-leaf-records.d.ts.map +1 -0
  65. package/dist/session-leaf-records.js +320 -0
  66. package/dist/session-leaf-records.js.map +1 -0
  67. package/dist/session-liveness.d.ts +135 -0
  68. package/dist/session-liveness.d.ts.map +1 -0
  69. package/dist/session-liveness.js +347 -0
  70. package/dist/session-liveness.js.map +1 -0
  71. package/dist/session-node-manager.d.ts +293 -1652
  72. package/dist/session-node-manager.d.ts.map +1 -1
  73. package/dist/session-node-manager.js +1039 -9659
  74. package/dist/session-node-manager.js.map +1 -1
  75. package/dist/session-node-types.d.ts +933 -0
  76. package/dist/session-node-types.d.ts.map +1 -0
  77. package/dist/session-node-types.js +576 -0
  78. package/dist/session-node-types.js.map +1 -0
  79. package/dist/session-own-chain-store.d.ts +65 -0
  80. package/dist/session-own-chain-store.d.ts.map +1 -0
  81. package/dist/session-own-chain-store.js +75 -0
  82. package/dist/session-own-chain-store.js.map +1 -0
  83. package/dist/session-queries.d.ts +476 -0
  84. package/dist/session-queries.d.ts.map +1 -0
  85. package/dist/session-queries.js +1006 -0
  86. package/dist/session-queries.js.map +1 -0
  87. package/dist/session-records.d.ts +320 -0
  88. package/dist/session-records.d.ts.map +1 -0
  89. package/dist/session-records.js +792 -0
  90. package/dist/session-records.js.map +1 -0
  91. package/dist/session-relay-client.d.ts +35 -3
  92. package/dist/session-relay-client.d.ts.map +1 -1
  93. package/dist/session-relay-client.js +211 -30
  94. package/dist/session-relay-client.js.map +1 -1
  95. package/dist/session-salts.d.ts +390 -0
  96. package/dist/session-salts.d.ts.map +1 -0
  97. package/dist/session-salts.js +1457 -0
  98. package/dist/session-salts.js.map +1 -0
  99. package/dist/session-schema.d.ts +30 -0
  100. package/dist/session-schema.d.ts.map +1 -0
  101. package/dist/session-schema.js +786 -0
  102. package/dist/session-schema.js.map +1 -0
  103. package/dist/standing-receivers.d.ts +280 -0
  104. package/dist/standing-receivers.d.ts.map +1 -0
  105. package/dist/standing-receivers.js +1100 -0
  106. package/dist/standing-receivers.js.map +1 -0
  107. package/dist/transport-selector.d.ts +13 -0
  108. package/dist/transport-selector.d.ts.map +1 -1
  109. package/dist/transport-selector.js.map +1 -1
  110. package/dist/witness-alerts.d.ts +40 -0
  111. package/dist/witness-alerts.d.ts.map +1 -0
  112. package/dist/witness-alerts.js +102 -0
  113. package/dist/witness-alerts.js.map +1 -0
  114. package/package.json +5 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-records.js","sourceRoot":"","sources":["../src/session-records.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { type KeyProvider } from "@cello-protocol/crypto";
3
3
  import type { Logger } from "./types.js";
4
4
  import { type RelayReceiptStore } from "./relay-receipt-store.js";
5
5
  import type { SessionSealLeafStore } from "./session-seal-leaf-store.js";
6
+ import type { SessionOwnChainStore } from "./session-own-chain-store.js";
6
7
  export declare const RELAY_PROTOCOL_ID = "/cello/relay/1.0.0";
7
8
  export declare const RELAY_AUTH_DOMAIN = "CELLO-RELAY-AUTH-v1";
8
9
  /** Structure 1 leaf kind: 0x00 = message, 0x02 = control (matches the relay). */
@@ -147,6 +148,12 @@ export interface AgentRelayClientOpts {
147
148
  * directory's OFFLINE tree rebuild. Optional — when absent, no leaf log is kept.
148
149
  */
149
150
  sealLeafStore?: SessionSealLeafStore;
151
+ /**
152
+ * `DOD-M15-SELFCHAIN-1` — what this agent last said in each session, so the next message links to
153
+ * it. Optional on the type because test harnesses construct a client without one; when it is
154
+ * absent this daemon cannot chain to itself and says so rather than signing an unlinked claim.
155
+ */
156
+ ownChainStore?: SessionOwnChainStore;
150
157
  /**
151
158
  * DOD-M15-RELAYSLOTS-1: the current directory-issued online token for this agent, or `undefined`
152
159
  * when the directory has not issued one (not connected yet, or this key is not a registered
@@ -272,9 +279,13 @@ export declare class AgentRelayClient {
272
279
  * Supplied by the caller because `session-node-manager` is where the session record lives. When
273
280
  * it is absent an ASSIGNMENT can still produce it (both participant keys and the session
274
281
  * timestamp are on the carry), and that covers re-registration of a session whose row predates
275
- * the column. When NEITHER is available the session has no seed, and its first submit claims
276
- * position 0 with no hash — which asserts nothing about content and is therefore honest, rather
277
- * than a claim about a position it cannot back.
282
+ * the column.
283
+ *
284
+ * ⚠️ WHEN NEITHER IS AVAILABLE THE SESSION CANNOT SUBMIT AT ALL — and this sentence used to say
285
+ * the opposite, that the first submit would claim position 0 with no hash. That shape no longer
286
+ * exists: `DOD-M15-SELFCHAIN-1` made both chain links required, so a session with no starting
287
+ * point has nothing for them to anchor to and every submit on it is refused by name. Registering
288
+ * without a seed is therefore a real fault, not a degraded mode.
278
289
  */
279
290
  genesisPrevRoot?: Uint8Array): void;
280
291
  /**
@@ -463,6 +474,27 @@ export declare class AgentRelayClient {
463
474
  seq: number;
464
475
  hash: Uint8Array;
465
476
  } | undefined;
477
+ /**
478
+ * This agent's OWN last message on a session — what its next message's self link must name.
479
+ *
480
+ * ⚠️ EXPOSED BECAUSE THERE MUST BE ONE CHAIN, NOT TWO. The unwitnessed send path lives in
481
+ * `session-node-manager` and was reading only the durable store, while the witnessed path reads
482
+ * this in-memory map first. A session that mixed the two — which is every session where the relay
483
+ * comes and goes — was walking two different chains, and the one that lagged produced a link the
484
+ * counterparty refuses.
485
+ *
486
+ * `undefined` means this agent has not spoken on this session yet, which is the session GENESIS
487
+ * and not an absence. The caller supplies it; this class does not guess.
488
+ */
489
+ lastOwnHash(sessionIdHex: string): Uint8Array | undefined;
490
+ /**
491
+ * Record what this agent just sent on a path this client did not carry — the UNWITNESSED send.
492
+ *
493
+ * The two paths share one chain (see `lastOwnHash`), so a direct send has to advance it here too.
494
+ * Without this, a conversation that ran while the relay was down advanced nothing, and the first
495
+ * witnessed message after it linked to something long superseded.
496
+ */
497
+ noteOwnLeaf(sessionIdHex: string, contentHash: Uint8Array): void;
466
498
  close(): void;
467
499
  }
468
500
  //# 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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"}
@@ -262,6 +262,35 @@ export class AgentRelayClient {
262
262
  #logger;
263
263
  #receiptStore;
264
264
  #sealLeafStore;
265
+ #ownChainStore;
266
+ /**
267
+ * `DOD-M15-SELFCHAIN-1` — this agent's own last message per session, in memory.
268
+ *
269
+ * ⚠️ THE MAP IS THE CHAIN; THE STORE IS ITS DURABILITY. Separating them is deliberate. Within a
270
+ * running process the map is authoritative and always available, so a send never depends on a
271
+ * database being wired. Across a RESTART only the store can answer, and without it this daemon
272
+ * would silently start a new chain mid-conversation — the counterparty refusing every message
273
+ * after it, with no way to tell that from tampering.
274
+ *
275
+ * So a missing store is a durability gap, and never a reason to refuse a send: it is caused by our
276
+ * own wiring, never by anything a peer does, and refusing there would break the product to close a
277
+ * hole the peer cannot reach. It IS reported — once per client, at construction, by the error
278
+ * below. An earlier version of this comment promised that report and nothing emitted it, which is
279
+ * the shape that lets a wiring gap sit invisible until a restart days later.
280
+ */
281
+ #ownChain = new Map();
282
+ /**
283
+ * `DOD-M15-SELFCHAIN-1` — each session's GENESIS, kept apart from `#lastSeen`, and keeping them
284
+ * apart is the entire point of this field.
285
+ *
286
+ * `#lastSeen` is seeded with the genesis at registration and then ADVANCES as the counterparty
287
+ * speaks. So after the counterparty's first message it holds THEIR last content hash, not the
288
+ * starting point. Reading it as the self link's fallback handed a sender the other party's hash
289
+ * for their own first message, which the relay then refused — and, worse, told the innocent
290
+ * counterparty their chain was broken. This map never advances, so it is always the right answer
291
+ * to "what does a party who has not spoken here yet link to?".
292
+ */
293
+ #genesis = new Map();
265
294
  /** DOD-M15-RELAYSLOTS-1 — read fresh at every auth. See `AgentRelayClientOpts.onlineToken`. */
266
295
  #onlineToken;
267
296
  /** DOD-M15-CORROBORATE-1 — where a relay's witness alert goes. See the opt of the same name. */
@@ -338,6 +367,22 @@ export class AgentRelayClient {
338
367
  this.#logger = opts.logger;
339
368
  this.#receiptStore = opts.receiptStore;
340
369
  this.#sealLeafStore = opts.sealLeafStore;
370
+ this.#ownChainStore = opts.ownChainStore;
371
+ if (!this.#ownChainStore) {
372
+ /**
373
+ * ONCE PER CLIENT, AT CONSTRUCTION, and at ERROR because the consequence is invisible until a
374
+ * restart that may be days away — at which point this daemon silently starts a new chain
375
+ * mid-conversation and the counterparty refuses everything after it, for a reason that names
376
+ * tampering.
377
+ */
378
+ this.#logger.error("session.relay.own_chain.store_absent", {
379
+ relayPeerId: opts.relayPeerId,
380
+ impact: "this relay client was wired without a durable record of what this agent has said. " +
381
+ "Conversations work until the daemon restarts; after a restart, mid-conversation, this " +
382
+ "side starts a new chain and the counterparty refuses every message after it as though " +
383
+ "the record had been altered.",
384
+ });
385
+ }
341
386
  this.#onlineToken = opts.onlineToken;
342
387
  this.#onWitnessAlert = opts.onWitnessAlert;
343
388
  this.#onWitnessUnreadable = opts.onWitnessUnreadable;
@@ -359,9 +404,13 @@ export class AgentRelayClient {
359
404
  * Supplied by the caller because `session-node-manager` is where the session record lives. When
360
405
  * it is absent an ASSIGNMENT can still produce it (both participant keys and the session
361
406
  * 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.
407
+ * the column.
408
+ *
409
+ * ⚠️ WHEN NEITHER IS AVAILABLE THE SESSION CANNOT SUBMIT AT ALL — and this sentence used to say
410
+ * the opposite, that the first submit would claim position 0 with no hash. That shape no longer
411
+ * exists: `DOD-M15-SELFCHAIN-1` made both chain links required, so a session with no starting
412
+ * point has nothing for them to anchor to and every submit on it is refused by name. Registering
413
+ * without a seed is therefore a real fault, not a degraded mode.
365
414
  */
366
415
  genesisPrevRoot) {
367
416
  const existing = this.#sessions.get(sessionIdHex);
@@ -383,10 +432,12 @@ export class AgentRelayClient {
383
432
  * nothing" for a conversation that is well underway — and the relay would then answer the next
384
433
  * submit from a position we had already passed.
385
434
  */
435
+ const genesis = genesisPrevRoot ?? genesisFromAssignment(sessionIdHex, carriedAssignment);
436
+ if (genesis)
437
+ this.#genesis.set(sessionIdHex, genesis);
386
438
  if (!this.#lastSeen.has(sessionIdHex)) {
387
- const seed = genesisPrevRoot ?? genesisFromAssignment(sessionIdHex, carriedAssignment);
388
- if (seed)
389
- this.#lastSeen.set(sessionIdHex, { seq: 0, hash: seed });
439
+ if (genesis)
440
+ this.#lastSeen.set(sessionIdHex, { seq: 0, hash: genesis });
390
441
  }
391
442
  // Eagerly present the assignment so the relay records the session (binds peer IDs, creates the
392
443
  // session entry) BEFORE the first hash_submit or the counterparty's leaves arrive — the relay
@@ -508,6 +559,7 @@ export class AgentRelayClient {
508
559
  unregisterSession(sessionIdHex) {
509
560
  this.#sessions.delete(sessionIdHex);
510
561
  this.#lastSeen.delete(sessionIdHex);
562
+ this.#genesis.delete(sessionIdHex);
511
563
  }
512
564
  hasSessions() {
513
565
  return this.#sessions.size > 0;
@@ -1755,28 +1807,15 @@ export class AgentRelayClient {
1755
1807
  * AUTHOR's, already made. Logging "this submit acknowledges nothing" about it would be false,
1756
1808
  * and this daemon's own seed is irrelevant to a claim it did not write.
1757
1809
  */
1758
- if (!lastSeen && !carried) {
1759
- /**
1760
- * ⚠️ **v1, AND ONLY BECAUSE THERE IS NOTHING TO ACKNOWLEDGE.** Same rule as the content
1761
- * claim's, and the receiving half is `#verifyAcknowledgedContent` — a v1 claim is refused the
1762
- * moment it names position 1 or beyond, and accepted when it names none.
1763
- *
1764
- * Reaching here means the session was registered with no genesis and no assignment to derive
1765
- * one from, and no counterparty leaf has been delivered. `last_seen_seq: 0` with no hash says
1766
- * "I have seen nothing of yours", which is true, and asserts nothing about content — so it is
1767
- * not the unbacked number this unit exists to stop signing.
1768
- *
1769
- * It does not refuse the submit, and an earlier version did. Sessions brokered without a
1770
- * relay assignment are real, and refusing there left them unable to be witnessed at all.
1771
- */
1772
- this.#logger.info("session.relay.submit.unacknowledged", {
1773
- relayPeerId: this.#relayPeerId,
1774
- session: sessionIdHex,
1775
- impact: "this submit acknowledges nothing: the session has no recorded starting point and no " +
1776
- "counterparty leaf has arrived on it. The leaf is witnessed as normal; the claim simply " +
1777
- "makes no assertion about what this agent has received.",
1778
- });
1779
- }
1810
+ /**
1811
+ * ⚠️ THE `session.relay.submit.unacknowledged` LOG THAT WAS HERE IS GONE, AND ITS ABSENCE IS
1812
+ * DELIBERATE `DOD-M15-SELFCHAIN-1`.
1813
+ *
1814
+ * It fired on exactly the condition the refusal below fires on (no seed, not a carried leaf)
1815
+ * and told the operator "the leaf is witnessed as normal". That is now false: nothing is
1816
+ * witnessed, the submit is refused. Two lines about one condition, one of them wrong, is how a
1817
+ * reader ends up trusting the wrong one so the refusal below is the only thing that speaks.
1818
+ */
1780
1819
  // The published encoder from protocol-types — the ONE definition of the field order, pinned by
1781
1820
  // `structure1-canonical.json` (v1) and `structure1-v2-canonical.json` (v2). A second local copy
1782
1821
  // lived here until 020-ACKHASH; it drifted, and the drift was invisible because both copies
@@ -1799,13 +1838,97 @@ export class AgentRelayClient {
1799
1838
  * deliberately NOT consulted: `last_seen_seq` and `last_seen_hash` inside those bytes are the
1800
1839
  * AUTHOR's account of what THEY had seen, and they are not ours to restate.
1801
1840
  */
1841
+ /**
1842
+ * ─── BOTH CHAIN LINKS, UNCONDITIONALLY — `DOD-M15-SELFCHAIN-1` ───────────────────────────────
1843
+ *
1844
+ * `lastSeenHash` chains this sender to their COUNTERPARTY. `prevOwnHash` chains them to
1845
+ * THEMSELVES. Neither is optional: a claim carrying one link is not a shape this protocol has,
1846
+ * and `encodeStructure1` has no branch that emits one.
1847
+ *
1848
+ * ⚠️ THE CONDITIONAL SPREAD THAT USED TO BE HERE DEFEATED THE TYPE. Writing
1849
+ * `...(x ? { lastSeenHash: x } : {})` satisfies a REQUIRED field as far as the compiler is
1850
+ * concerned, so the one guard that should have made an unlinked claim impossible to write was
1851
+ * silently inert. Pass both by value; let `tsc` do its job.
1852
+ *
1853
+ * ⚠️ NO SEED MEANS NO SEND. The seed is this session's genesis — the agreed starting point both
1854
+ * links fall back to before anything has been said. A session registered with neither a genesis
1855
+ * nor an assignment to derive one from has no such point, and the honest outcome is to refuse
1856
+ * rather than sign a chain anchored to nothing. There is no degraded shape to fall back to and
1857
+ * deliberately so: an unlinked message is invisible until the conversation's order is disputed,
1858
+ * which is far too late for anyone to act on it.
1859
+ */
1860
+ const seed = lastSeen?.hash;
1861
+ const genesis = this.#genesis.get(sessionIdHex);
1862
+ if (!carried && !seed) {
1863
+ this.#logger.error("session.relay.submit.unchainable", {
1864
+ relayPeerId: this.#relayPeerId,
1865
+ session: sessionIdHex,
1866
+ impact: "this session has no recorded starting point on this machine, so a message sent on it " +
1867
+ "could not link to anything and its place in the conversation could never be proven. " +
1868
+ "The message was NOT sent. Restart the session so it is registered with its genesis.",
1869
+ });
1870
+ return { ok: false, reason: "session_unchainable" };
1871
+ }
1872
+ /**
1873
+ * This agent's own previous message, or the session genesis when it has not spoken here yet.
1874
+ * "I have not spoken" is a VALUE — derived per session, so it cannot be presented for a
1875
+ * different conversation — never an absent field.
1876
+ *
1877
+ * The in-memory map first, then the durable store for the restart case, then the genesis. See
1878
+ * `#ownChain` for why a missing store degrades durability rather than blocking the send.
1879
+ */
1880
+ let prevOwn;
1881
+ if (!carried) {
1882
+ /**
1883
+ * ⚠️ THE LAST FALLBACK IS THE GENESIS, NOT `seed` — and `seed` is what it used to be.
1884
+ *
1885
+ * `seed` is `#lastSeen`, which ADVANCES as the counterparty speaks. So the moment the
1886
+ * counterparty had said anything, a party sending their FIRST message linked to the
1887
+ * counterparty's message instead of to the session's starting point. The relay expects the
1888
+ * genesis for a sender's first leaf, so it refused — and then told the counterparty, who had
1889
+ * done nothing, that this side's chain was broken. Every two-party conversation died on its
1890
+ * second message and blamed the wrong party for it.
1891
+ */
1892
+ prevOwn = this.#ownChain.get(sessionIdHex)
1893
+ ?? this.#ownChainStore?.lastOwnHash(this.senderPubkeyHex, sessionIdHex)
1894
+ ?? genesis;
1895
+ if (!prevOwn) {
1896
+ /**
1897
+ * Unreachable while a seed exists — both come from the same registration — but stated as a
1898
+ * refusal rather than a non-null assertion. The one thing that must never happen here is
1899
+ * signing a self link chosen because it was the nearest value to hand.
1900
+ */
1901
+ this.#logger.error("session.relay.submit.unchainable", {
1902
+ relayPeerId: this.#relayPeerId,
1903
+ session: sessionIdHex,
1904
+ impact: "this session has an acknowledgement but no recorded starting point, so this agent's " +
1905
+ "own first message has nothing to link to. The message was NOT sent. Restart the " +
1906
+ "session so it is registered with its genesis.",
1907
+ });
1908
+ return { ok: false, reason: "session_unchainable" };
1909
+ }
1910
+ }
1911
+ /**
1912
+ * ⚠️ **A CARRIED LEAF IS SENT VERBATIM AND SIGNED BY NOBODY HERE — 034-CARRYLEAF.**
1913
+ *
1914
+ * When this agent is witnessing something it RECEIVED, the claim already exists: its author
1915
+ * built it, signed it, and put it on the content frame. Re-encoding it would change the signed
1916
+ * bytes and the relay would refuse a leaf that is perfectly valid. Signing it ourselves would be
1917
+ * worse — it would turn their statement into ours, which is the one thing that must never happen
1918
+ * to a record whose whole value is that each party's words are their own.
1919
+ *
1920
+ * So this branch takes the bytes as they arrived, and this agent's own chain state is
1921
+ * deliberately NOT consulted: both links inside those bytes are the AUTHOR's account, and they
1922
+ * are not ours to restate.
1923
+ */
1802
1924
  const structure1 = carried ? carried.structure1Cbor : encodeStructure1({
1803
1925
  contentHash,
1804
1926
  senderPubkey: this.#senderPubkey,
1805
1927
  sessionId,
1806
- lastSeenSeq: lastSeen?.seq ?? 0,
1928
+ lastSeenSeq: lastSeen.seq,
1807
1929
  timestamp: Date.now(),
1808
- ...(lastSeen ? { lastSeenHash: lastSeen.hash } : {}),
1930
+ lastSeenHash: seed,
1931
+ prevOwnHash: prevOwn,
1809
1932
  });
1810
1933
  const signature = carried ? carried.senderSignature : await this.#keyProvider.sign(structure1);
1811
1934
  const frame = encodeCbor({
@@ -1875,6 +1998,36 @@ export class AgentRelayClient {
1875
1998
  // On timeout, reset the stream so a late ack can't settle a LATER submit (FIFO desync).
1876
1999
  if (!result.ok && result.reason === "relay_submit_timeout")
1877
2000
  this.#resetStream();
2001
+ /**
2002
+ * ─── ADVANCE THE SELF CHAIN, AND ONLY ON SUCCESS — `DOD-M15-SELFCHAIN-1` ──────────────────
2003
+ *
2004
+ * Recorded AFTER the relay acknowledged, never before. Advancing first and then failing to
2005
+ * send would leave the chain pointing at a message that never existed, and every later message
2006
+ * would be refused by the counterparty with a reason that names tampering — an outage
2007
+ * reported as an attack.
2008
+ *
2009
+ * A retry therefore re-reads the same predecessor, which is exactly right: a retransmission is
2010
+ * the same message, not the next one.
2011
+ *
2012
+ * NOT for a carried leaf. Those bytes are the AUTHOR's and this agent did not write them, so
2013
+ * they are no part of this agent's own chain.
2014
+ */
2015
+ if (result.ok && !carried) {
2016
+ // The map is the chain — always advanced. The store is its durability, advanced when wired.
2017
+ this.#ownChain.set(sessionIdHex, contentHash);
2018
+ try {
2019
+ this.#ownChainStore?.record(this.senderPubkeyHex, sessionIdHex, contentHash, Date.now());
2020
+ }
2021
+ catch (err) {
2022
+ this.#logger.error("session.selfchain.record.failed", {
2023
+ session: sessionIdHex,
2024
+ error: err instanceof Error ? err.message : String(err),
2025
+ impact: "this message was witnessed, but this agent could not record it as the link for its " +
2026
+ "next message — so the next one will chain to the wrong predecessor and the " +
2027
+ "counterparty will refuse it. Restart the session to re-anchor the chain.",
2028
+ });
2029
+ }
2030
+ }
1878
2031
  return result;
1879
2032
  }
1880
2033
  finally {
@@ -1928,6 +2081,34 @@ export class AgentRelayClient {
1928
2081
  lastSeenAck(sessionIdHex) {
1929
2082
  return this.#lastSeen.get(sessionIdHex);
1930
2083
  }
2084
+ /**
2085
+ * This agent's OWN last message on a session — what its next message's self link must name.
2086
+ *
2087
+ * ⚠️ EXPOSED BECAUSE THERE MUST BE ONE CHAIN, NOT TWO. The unwitnessed send path lives in
2088
+ * `session-node-manager` and was reading only the durable store, while the witnessed path reads
2089
+ * this in-memory map first. A session that mixed the two — which is every session where the relay
2090
+ * comes and goes — was walking two different chains, and the one that lagged produced a link the
2091
+ * counterparty refuses.
2092
+ *
2093
+ * `undefined` means this agent has not spoken on this session yet, which is the session GENESIS
2094
+ * and not an absence. The caller supplies it; this class does not guess.
2095
+ */
2096
+ lastOwnHash(sessionIdHex) {
2097
+ return this.#ownChain.get(sessionIdHex)
2098
+ ?? this.#ownChainStore?.lastOwnHash(this.senderPubkeyHex, sessionIdHex)
2099
+ ?? undefined;
2100
+ }
2101
+ /**
2102
+ * Record what this agent just sent on a path this client did not carry — the UNWITNESSED send.
2103
+ *
2104
+ * The two paths share one chain (see `lastOwnHash`), so a direct send has to advance it here too.
2105
+ * Without this, a conversation that ran while the relay was down advanced nothing, and the first
2106
+ * witnessed message after it linked to something long superseded.
2107
+ */
2108
+ noteOwnLeaf(sessionIdHex, contentHash) {
2109
+ this.#ownChain.set(sessionIdHex, contentHash);
2110
+ this.#ownChainStore?.record(this.senderPubkeyHex, sessionIdHex, contentHash, Date.now());
2111
+ }
1931
2112
  close() {
1932
2113
  this.#closed = true;
1933
2114
  this.#settlePending({ ok: false, reason: "relay_client_closed" });