@optimystic/db-core 1.0.0-beta.3 → 1.0.0

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 (171) hide show
  1. package/dist/src/cluster/structs.d.ts +30 -6
  2. package/dist/src/cluster/structs.d.ts.map +1 -1
  3. package/dist/src/cluster/structs.js +5 -3
  4. package/dist/src/cluster/structs.js.map +1 -1
  5. package/dist/src/cohort-topic/antidos/bootstrap-evidence-envelope.d.ts +2 -1
  6. package/dist/src/cohort-topic/antidos/bootstrap-evidence-envelope.d.ts.map +1 -1
  7. package/dist/src/cohort-topic/antidos/bootstrap-evidence-envelope.js +10 -3
  8. package/dist/src/cohort-topic/antidos/bootstrap-evidence-envelope.js.map +1 -1
  9. package/dist/src/cohort-topic/wire/codec.d.ts.map +1 -1
  10. package/dist/src/cohort-topic/wire/codec.js +8 -2
  11. package/dist/src/cohort-topic/wire/codec.js.map +1 -1
  12. package/dist/src/collection/collection.d.ts +439 -34
  13. package/dist/src/collection/collection.d.ts.map +1 -1
  14. package/dist/src/collection/collection.js +843 -148
  15. package/dist/src/collection/collection.js.map +1 -1
  16. package/dist/src/collection/struct.d.ts +109 -4
  17. package/dist/src/collection/struct.d.ts.map +1 -1
  18. package/dist/src/collection/struct.js +88 -1
  19. package/dist/src/collection/struct.js.map +1 -1
  20. package/dist/src/collections/diary/diary.d.ts +6 -2
  21. package/dist/src/collections/diary/diary.d.ts.map +1 -1
  22. package/dist/src/collections/diary/diary.js +5 -2
  23. package/dist/src/collections/diary/diary.js.map +1 -1
  24. package/dist/src/collections/tree/struct.d.ts +124 -16
  25. package/dist/src/collections/tree/struct.d.ts.map +1 -1
  26. package/dist/src/collections/tree/struct.js +86 -11
  27. package/dist/src/collections/tree/struct.js.map +1 -1
  28. package/dist/src/collections/tree/tree.d.ts +13 -3
  29. package/dist/src/collections/tree/tree.d.ts.map +1 -1
  30. package/dist/src/collections/tree/tree.js +106 -40
  31. package/dist/src/collections/tree/tree.js.map +1 -1
  32. package/dist/src/index.d.ts +1 -1
  33. package/dist/src/index.d.ts.map +1 -1
  34. package/dist/src/index.js +1 -1
  35. package/dist/src/index.js.map +1 -1
  36. package/dist/src/matchmaking/wire.d.ts.map +1 -1
  37. package/dist/src/matchmaking/wire.js +8 -2
  38. package/dist/src/matchmaking/wire.js.map +1 -1
  39. package/dist/src/network/durability.d.ts +45 -0
  40. package/dist/src/network/durability.d.ts.map +1 -0
  41. package/dist/src/network/durability.js +114 -0
  42. package/dist/src/network/durability.js.map +1 -0
  43. package/dist/src/network/i-key-network.d.ts +14 -6
  44. package/dist/src/network/i-key-network.d.ts.map +1 -1
  45. package/dist/src/network/index.d.ts +3 -0
  46. package/dist/src/network/index.d.ts.map +1 -1
  47. package/dist/src/network/index.js +3 -0
  48. package/dist/src/network/index.js.map +1 -1
  49. package/dist/src/network/lineage.d.ts +39 -0
  50. package/dist/src/network/lineage.d.ts.map +1 -0
  51. package/dist/src/network/lineage.js +61 -0
  52. package/dist/src/network/lineage.js.map +1 -0
  53. package/dist/src/network/routing-key.d.ts +24 -0
  54. package/dist/src/network/routing-key.d.ts.map +1 -0
  55. package/dist/src/network/routing-key.js +9 -0
  56. package/dist/src/network/routing-key.js.map +1 -0
  57. package/dist/src/network/stale-failure.d.ts +5 -1
  58. package/dist/src/network/stale-failure.d.ts.map +1 -1
  59. package/dist/src/network/stale-failure.js +5 -1
  60. package/dist/src/network/stale-failure.js.map +1 -1
  61. package/dist/src/network/struct.d.ts +151 -8
  62. package/dist/src/network/struct.d.ts.map +1 -1
  63. package/dist/src/network/struct.js.map +1 -1
  64. package/dist/src/reactivity/wire.d.ts.map +1 -1
  65. package/dist/src/reactivity/wire.js +8 -2
  66. package/dist/src/reactivity/wire.js.map +1 -1
  67. package/dist/src/testing/test-transactor.d.ts +64 -7
  68. package/dist/src/testing/test-transactor.d.ts.map +1 -1
  69. package/dist/src/testing/test-transactor.js +150 -23
  70. package/dist/src/testing/test-transactor.js.map +1 -1
  71. package/dist/src/transaction/coordinator.d.ts +141 -21
  72. package/dist/src/transaction/coordinator.d.ts.map +1 -1
  73. package/dist/src/transaction/coordinator.js +408 -122
  74. package/dist/src/transaction/coordinator.js.map +1 -1
  75. package/dist/src/transaction/errors.d.ts +39 -10
  76. package/dist/src/transaction/errors.d.ts.map +1 -1
  77. package/dist/src/transaction/errors.js +34 -9
  78. package/dist/src/transaction/errors.js.map +1 -1
  79. package/dist/src/transaction/index.d.ts +1 -0
  80. package/dist/src/transaction/index.d.ts.map +1 -1
  81. package/dist/src/transaction/index.js.map +1 -1
  82. package/dist/src/transactor/block-floors.d.ts +78 -0
  83. package/dist/src/transactor/block-floors.d.ts.map +1 -0
  84. package/dist/src/transactor/block-floors.js +62 -0
  85. package/dist/src/transactor/block-floors.js.map +1 -0
  86. package/dist/src/transactor/change-notifier.d.ts +43 -0
  87. package/dist/src/transactor/change-notifier.d.ts.map +1 -1
  88. package/dist/src/transactor/change-notifier.js +3 -0
  89. package/dist/src/transactor/change-notifier.js.map +1 -1
  90. package/dist/src/transactor/index.d.ts +1 -0
  91. package/dist/src/transactor/index.d.ts.map +1 -1
  92. package/dist/src/transactor/index.js +1 -0
  93. package/dist/src/transactor/index.js.map +1 -1
  94. package/dist/src/transactor/network-transactor.d.ts +43 -6
  95. package/dist/src/transactor/network-transactor.d.ts.map +1 -1
  96. package/dist/src/transactor/network-transactor.js +279 -86
  97. package/dist/src/transactor/network-transactor.js.map +1 -1
  98. package/dist/src/transactor/transactor-source.d.ts +94 -4
  99. package/dist/src/transactor/transactor-source.d.ts.map +1 -1
  100. package/dist/src/transactor/transactor-source.js +120 -42
  101. package/dist/src/transactor/transactor-source.js.map +1 -1
  102. package/dist/src/transactor/transactor.d.ts +14 -1
  103. package/dist/src/transactor/transactor.d.ts.map +1 -1
  104. package/dist/src/transform/atomic.d.ts.map +1 -1
  105. package/dist/src/transform/atomic.js +12 -9
  106. package/dist/src/transform/atomic.js.map +1 -1
  107. package/dist/src/transform/base-pins.d.ts +50 -17
  108. package/dist/src/transform/base-pins.d.ts.map +1 -1
  109. package/dist/src/transform/base-pins.js +58 -11
  110. package/dist/src/transform/base-pins.js.map +1 -1
  111. package/dist/src/transform/cache-source.d.ts +75 -11
  112. package/dist/src/transform/cache-source.d.ts.map +1 -1
  113. package/dist/src/transform/cache-source.js +162 -36
  114. package/dist/src/transform/cache-source.js.map +1 -1
  115. package/dist/src/transform/digest.d.ts +8 -1
  116. package/dist/src/transform/digest.d.ts.map +1 -1
  117. package/dist/src/transform/digest.js +19 -9
  118. package/dist/src/transform/digest.js.map +1 -1
  119. package/dist/src/transform/helpers.d.ts +6 -2
  120. package/dist/src/transform/helpers.d.ts.map +1 -1
  121. package/dist/src/transform/helpers.js +8 -3
  122. package/dist/src/transform/helpers.js.map +1 -1
  123. package/dist/src/transform/tracker.d.ts +94 -14
  124. package/dist/src/transform/tracker.d.ts.map +1 -1
  125. package/dist/src/transform/tracker.js +222 -68
  126. package/dist/src/transform/tracker.js.map +1 -1
  127. package/dist/src/utility/structural-equals.d.ts +38 -0
  128. package/dist/src/utility/structural-equals.d.ts.map +1 -0
  129. package/dist/src/utility/structural-equals.js +77 -0
  130. package/dist/src/utility/structural-equals.js.map +1 -0
  131. package/package.json +2 -2
  132. package/src/cluster/structs.ts +28 -7
  133. package/src/cohort-topic/antidos/bootstrap-evidence-envelope.ts +260 -253
  134. package/src/cohort-topic/wire/codec.ts +222 -216
  135. package/src/collection/collection.ts +960 -157
  136. package/src/collection/struct.ts +99 -4
  137. package/src/collections/diary/diary.ts +71 -68
  138. package/src/collections/tree/struct.ts +155 -23
  139. package/src/collections/tree/tree.ts +127 -40
  140. package/src/index.ts +1 -1
  141. package/src/matchmaking/wire.ts +8 -2
  142. package/src/network/durability.ts +123 -0
  143. package/src/network/i-key-network.ts +60 -52
  144. package/src/network/index.ts +10 -7
  145. package/src/network/lineage.ts +80 -0
  146. package/src/network/routing-key.ts +27 -0
  147. package/src/network/stale-failure.ts +5 -1
  148. package/src/network/struct.ts +156 -8
  149. package/src/reactivity/wire.ts +230 -224
  150. package/src/testing/test-transactor.ts +152 -24
  151. package/src/transaction/coordinator.ts +470 -131
  152. package/src/transaction/errors.ts +34 -9
  153. package/src/transaction/index.ts +1 -0
  154. package/src/transactor/block-floors.ts +105 -0
  155. package/src/transactor/change-notifier.ts +129 -80
  156. package/src/transactor/index.ts +1 -0
  157. package/src/transactor/network-transactor.ts +297 -89
  158. package/src/transactor/transactor-source.ts +131 -42
  159. package/src/transactor/transactor.ts +13 -1
  160. package/src/transform/atomic.ts +25 -22
  161. package/src/transform/base-pins.ts +76 -18
  162. package/src/transform/cache-source.ts +327 -194
  163. package/src/transform/digest.ts +21 -10
  164. package/src/transform/helpers.ts +8 -3
  165. package/src/transform/tracker.ts +423 -270
  166. package/src/utility/structural-equals.ts +72 -0
  167. package/dist/src/utility/block-id-to-bytes.d.ts +0 -3
  168. package/dist/src/utility/block-id-to-bytes.d.ts.map +0 -1
  169. package/dist/src/utility/block-id-to-bytes.js +0 -7
  170. package/dist/src/utility/block-id-to-bytes.js.map +0 -1
  171. package/src/utility/block-id-to-bytes.ts +0 -8
@@ -1,4 +1,5 @@
1
1
  import { highestStaleAt, isOwnRevision } from "../network/stale-failure.js";
2
+ import { localDurability } from "../network/durability.js";
2
3
  import { ensuredMap } from "../utility/ensured.js";
3
4
  import { Latches } from "../utility/latches.js";
4
5
  import { applyTransform, blockIdsForTransforms, transformForBlockId, emptyTransforms, concatTransform, transformsFromTransform } from "../transform/index.js";
@@ -146,6 +147,26 @@ export class TestTransactor {
146
147
  })
147
148
  }));
148
149
  }
150
+ /** One store, no replicas: every revision was applied here onto the one before it, so the
151
+ * revision index answers for lineage outright — mirroring `BlockStorage.lineageOf`, including
152
+ * the one way a later revision does NOT build on its predecessor (an insert replaces the block
153
+ * wholesale). The "cohort" is this store alone, which is what the durability says. */
154
+ async getLineage(ref) {
155
+ this.checkAvailable();
156
+ const blocks = ref.blockIds.map((blockId) => {
157
+ const blockState = this.blocks.get(blockId);
158
+ if (!blockState || blockState.latestRev < ref.rev)
159
+ return 'behind';
160
+ if (blockState.revisionActions.get(ref.rev) !== ref.actionId)
161
+ return 'excludes';
162
+ const replacedSince = Array.from(blockState.revisionActions.entries()).some(([rev, actionId]) => rev > ref.rev && blockState.committedActions.get(actionId)?.insert !== undefined);
163
+ return replacedSince ? 'unknown' : 'contains';
164
+ });
165
+ return {
166
+ blocks,
167
+ ...(blocks.length > 0 && blocks.every(lineage => lineage === 'contains') ? { durability: localDurability() } : {})
168
+ };
169
+ }
149
170
  async pend(request) {
150
171
  this.checkAvailable();
151
172
  const { actionId, transforms, policy, rev } = request;
@@ -156,12 +177,22 @@ export class TestTransactor {
156
177
  // storage is already at or past the requested revision, held by someone other than this same
157
178
  // action. Reported as `staleAt` so a caller reading the shared harness sees the real shape.
158
179
  const staleCandidates = [];
180
+ // Blocks this SAME action already committed at exactly the requested revision — the durable
181
+ // half of a torn action, met again by its own retry. Mirrors StorageRepo.pend's `satisfied`
182
+ // set: such a block is neither a committed conflict nor a pending one, and no pending record
183
+ // is written for it (commit's own-revision arm below never promotes one, so it would never
184
+ // clear). It still rides in the returned `blockIds`, as in the real repo, so `cancel` covers it.
185
+ const satisfied = new Set();
159
186
  // Check for conflicts (pending or committed based on rev/insert)
160
187
  for (const blockId of blockIds) {
161
188
  const blockState = this.blocks.get(blockId);
162
189
  const blockTransform = transformForBlockId(transforms, blockId);
163
190
  if (!blockTransform)
164
191
  continue; // Should not happen
192
+ if (blockState && isOwnRevision(latestActionRev(blockState), rev, actionId)) {
193
+ satisfied.add(blockId);
194
+ continue;
195
+ }
165
196
  if (blockState) {
166
197
  // Check for existing pending actions
167
198
  if (blockState.pendingActions.size > 0) {
@@ -176,8 +207,9 @@ export class TestTransactor {
176
207
  // Mirrors StorageRepo.pend exactly: only a real revision race yields a
177
208
  // meaningful `staleAt`. A rev-less pend reaches here as an insert collision
178
209
  // (`checkRev` degraded to 0), where the block's revision answers a question
179
- // nobody asked; and our own durable half of a torn action is not a rival's win.
180
- if (rev !== undefined && !isOwnRevision(latestActionRev(blockState), rev, actionId)) {
210
+ // nobody asked. (Our own durable half of a torn action never reaches here
211
+ // it was set aside as `satisfied` above.)
212
+ if (rev !== undefined) {
181
213
  staleCandidates.push({ blockId, rev: blockState.latestRev });
182
214
  }
183
215
  // Collect conflicting committed actions
@@ -245,17 +277,21 @@ export class TestTransactor {
245
277
  }
246
278
  // No fatal conflicts found, proceed to pend
247
279
  for (const blockId of blockIds) {
280
+ if (satisfied.has(blockId))
281
+ continue;
248
282
  const blockTransform = transformForBlockId(transforms, blockId);
249
283
  if (blockTransform) {
250
284
  const blockState = ensuredMap(this.blocks, blockId, () => newBlockState());
251
285
  blockState.pendingActions.set(actionId, blockTransform);
252
286
  }
253
287
  }
254
- // Return success, include pending list as per StorageRepo behavior
288
+ // Return success, include pending list as per StorageRepo behavior. The in-memory double is one
289
+ // node with no cohort, so its honest class is `local` — exactly what a bare StorageRepo answers.
255
290
  return {
256
291
  success: true,
257
292
  pending: conflictingPendings,
258
- blockIds
293
+ blockIds,
294
+ durability: localDurability()
259
295
  };
260
296
  }
261
297
  async cancel(actionRef) {
@@ -280,10 +316,18 @@ export class TestTransactor {
280
316
  releases.push(release);
281
317
  }
282
318
  // --- Start of Critical Section (Simulated) ---
319
+ // Blocks this same action already committed at exactly this revision: an idempotent no-op,
320
+ // mirroring StorageRepo.commit's `alreadyDone` partition. They are neither stale nor in need
321
+ // of a pending record (pend wrote none for them — see `satisfied` there), which is what lets
322
+ // a torn action's retry roll its remaining blocks forward.
323
+ const alreadyDone = new Set(blockIds.filter(blockId => {
324
+ const blockState = this.blocks.get(blockId);
325
+ return blockState !== undefined && isOwnRevision(latestActionRev(blockState), rev, actionId);
326
+ }));
283
327
  // Check for stale revisions
284
328
  const staleBlocks = blockIds.filter(blockId => {
285
329
  const blockState = this.blocks.get(blockId);
286
- return blockState && blockState.latestRev >= rev;
330
+ return blockState && blockState.latestRev >= rev && !alreadyDone.has(blockId);
287
331
  });
288
332
  if (staleBlocks.length > 0) {
289
333
  // Collect missing actions for stale blocks
@@ -309,18 +353,14 @@ export class TestTransactor {
309
353
  transforms
310
354
  }));
311
355
  // Same rule as StorageRepo.commit's missedCommits branch: report the highest confirmed
312
- // revision a stale block is already at, skipping one held by this very action (the
313
- // durable half of a torn action, which its own retry must not be refused by).
314
- const staleAt = highestStaleAt(staleBlocks.map(blockId => {
315
- const blockState = this.blocks.get(blockId);
316
- return isOwnRevision(latestActionRev(blockState), rev, actionId)
317
- ? undefined
318
- : { blockId, rev: blockState.latestRev };
319
- }));
356
+ // revision a stale block is already at. A block held by this very action never reaches
357
+ // here it was partitioned out as `alreadyDone` above.
358
+ const staleAt = highestStaleAt(staleBlocks.map(blockId => ({ blockId, rev: this.blocks.get(blockId).latestRev })));
320
359
  return { success: false, missing, ...(staleAt ? { staleAt } : {}) };
321
360
  }
322
- // Verify all blocks have the pending action
323
- for (const blockId of blockIds) {
361
+ const toCommit = blockIds.filter(blockId => !alreadyDone.has(blockId));
362
+ // Verify all blocks that still need committing have the pending action
363
+ for (const blockId of toCommit) {
324
364
  const blockState = this.blocks.get(blockId);
325
365
  if (!blockState || !blockState.pendingActions.has(actionId)) {
326
366
  return {
@@ -330,7 +370,7 @@ export class TestTransactor {
330
370
  }
331
371
  }
332
372
  // Commit the action for each block
333
- for (const blockId of blockIds) {
373
+ for (const blockId of toCommit) {
334
374
  const blockState = this.blocks.get(blockId);
335
375
  const transform = blockState.pendingActions.get(actionId);
336
376
  // Get base block to apply transform to
@@ -358,7 +398,7 @@ export class TestTransactor {
358
398
  blockState.pendingActions.delete(actionId);
359
399
  }
360
400
  // --- End of Critical Section (Simulated) ---
361
- return { success: true };
401
+ return { success: true, durability: localDurability() };
362
402
  }
363
403
  finally {
364
404
  // Release locks in reverse order
@@ -438,6 +478,7 @@ export class DelegatingTransactor {
438
478
  pend(r) { return this.inner.pend(r); }
439
479
  cancel(a) { return this.inner.cancel(a); }
440
480
  commit(r) { return this.inner.commit(r); }
481
+ getLineage(ref) { return this.inner.getLineage(ref); }
441
482
  get queryClusterNominees() {
442
483
  return this.inner.queryClusterNominees?.bind(this.inner);
443
484
  }
@@ -472,39 +513,118 @@ export class FlakyCommitTransactor extends DelegatingTransactor {
472
513
  }
473
514
  }
474
515
  /**
475
- * Commits durably on the inner {@link TestTransactor}, then reports a stale failure anyway —
476
- * the exact observable shape of `NetworkTransactor.commit`'s TORN ACTION: the collection's log
477
- * tail is committed BEFORE the sweep of the remaining blocks, so a later sweep block coming back
478
- * as a confirmed conflict returns a stale failure over an action whose log entry is already
479
- * durable.
516
+ * Commits the WHOLE action durably on the inner {@link TestTransactor}, then reports a stale
517
+ * failure anyway a write that fully landed but whose writer was told it failed.
518
+ *
519
+ * This is NOT the shape `NetworkTransactor.commit` produces when it refuses a write whose log tail
520
+ * landed: there the tail is committed BEFORE the sweep of the remaining blocks, so the blocks after
521
+ * the tail did NOT land. That shape is {@link TailLandsButReportsStale}, and it is the one that
522
+ * matters in production. This double makes "my own log entry is visible" and "my action is fully
523
+ * durable" the same thing, so on its own it cannot tell a writer that finishes its half-landed
524
+ * action from one that merely assumes it is finished. Keep it for the case it does model — every
525
+ * block already holds the action's revision, so the writer's completion pass has nothing left to
526
+ * land and must not duplicate or move the entry.
480
527
  *
481
528
  * Safe against the inner transactor's bookkeeping because `TransactorSource.transact` cancels
482
529
  * the pend on the reported failure and {@link TestTransactor.cancel} only deletes PENDING records
483
530
  * — the real commit already promoted them, so the cancel is a no-op.
484
531
  *
532
+ * `afterLanding`, when given, runs a competing writer ONCE, after the first masked commit has
533
+ * landed and before its failure is reported: the rival reads the landed write and commits the next
534
+ * revision ON TOP of it, so by the time the writer looks again every block it wrote has moved past
535
+ * its revision while still containing it. Safe to await from inside `commit` here (unlike
536
+ * {@link TailLandsButReportsStale}'s rival, which has to wait for the cancel): the whole action
537
+ * landed, so it left no pending record for the rival's pend to collide with.
538
+ *
485
539
  * Used by both write paths' own-entry regression suites (collection-own-action-replay.spec.ts and
486
540
  * coordinator-own-action-replay.spec.ts); it lives here so the two cannot drift apart.
487
541
  */
488
542
  export class CommitLandsButReportsStale extends DelegatingTransactor {
543
+ afterLanding;
489
544
  /** Remaining number of successful commits to mask as stale failures. */
490
545
  injections;
491
546
  /** Commits that actually landed on the inner transactor (masked or not). */
492
547
  landedCommits = 0;
493
- constructor(inner, injections = 1) {
548
+ rivalDue;
549
+ constructor(inner, injections = 1, afterLanding) {
494
550
  super(inner);
551
+ this.afterLanding = afterLanding;
495
552
  this.injections = injections;
553
+ this.rivalDue = afterLanding !== undefined;
496
554
  }
497
555
  async commit(request) {
498
556
  const result = await this.inner.commit(request);
499
557
  if (result.success) {
500
558
  this.landedCommits++;
501
559
  if (this.injections-- > 0) {
560
+ if (this.rivalDue) {
561
+ this.rivalDue = false;
562
+ await this.afterLanding(this.inner);
563
+ }
502
564
  return { success: false, conflict: true, reason: 'stale commit: injected torn-action conflict' };
503
565
  }
504
566
  }
505
567
  return result;
506
568
  }
507
569
  }
570
+ /**
571
+ * Lands ONLY the action's log tail on the inner {@link TestTransactor}, then reports a retryable
572
+ * failure — the shape `NetworkTransactor.commit` actually produces for a half-landed write. It
573
+ * commits the tail first and sweeps the remaining blocks only if the tail answered success, and a
574
+ * failed tail answer does not mean the tail is absent: the coordinator's durability gate answers
575
+ * `commit-not-durable` whenever fewer than a majority of the cohort hold the revision, even though
576
+ * some members stored it. So the writer is told "failed" over a log entry that is durable, while
577
+ * none of the entry's other blocks were ever committed — and the writer's own cancel then drops
578
+ * their pending records.
579
+ *
580
+ * A commit carrying nothing but the tail is delegated untouched (there is nothing to abandon), and
581
+ * does not consume an injection.
582
+ *
583
+ * `afterCancel`, when given, runs a competing writer ONCE, right after the writer's cancel of the
584
+ * torn attempt has been delegated. It is on `cancel` and not inside `commit` for the reason
585
+ * {@link CompetingWriterTransactor} documents: until that cancel lands, the torn action's data
586
+ * blocks still carry its pending records, a rival pending with policy `'r'` collides with them, and
587
+ * awaiting that rival from inside the writer's own commit is a livelock.
588
+ */
589
+ export class TailLandsButReportsStale extends DelegatingTransactor {
590
+ afterCancel;
591
+ /** Remaining number of commits to tear. */
592
+ injections;
593
+ /** Commits torn so far: the tail landed, every other block of the action was abandoned. */
594
+ tears = 0;
595
+ /** Commits delegated whole that succeeded on the inner transactor. */
596
+ landedCommits = 0;
597
+ rivalDue = false;
598
+ constructor(inner, injections = 1, afterCancel) {
599
+ super(inner);
600
+ this.afterCancel = afterCancel;
601
+ this.injections = injections;
602
+ }
603
+ async commit(request) {
604
+ if (this.injections > 0 && request.blockIds.some(blockId => blockId !== request.tailId)) {
605
+ const tail = await this.inner.commit({ ...request, blockIds: [request.tailId] });
606
+ // A tail that itself lost is an ordinary loss — nothing is torn, so report it verbatim
607
+ // and keep the injection for a commit that can actually tear.
608
+ if (!tail.success)
609
+ return tail;
610
+ this.injections--;
611
+ this.tears++;
612
+ this.rivalDue = this.afterCancel !== undefined;
613
+ return { success: false, conflict: true, reason: 'commit-not-durable: injected tail-only landing' };
614
+ }
615
+ const result = await this.inner.commit(request);
616
+ if (result.success)
617
+ this.landedCommits++;
618
+ return result;
619
+ }
620
+ async cancel(actionRef) {
621
+ await this.inner.cancel(actionRef);
622
+ if (this.rivalDue) {
623
+ this.rivalDue = false;
624
+ await this.afterCancel(this.inner);
625
+ }
626
+ }
627
+ }
508
628
  /**
509
629
  * Wraps a {@link TestTransactor} and, exactly once, runs a real competing writer to completion
510
630
  * BEFORE delegating the intercepted pend. The rival durably commits (real log entry, real
@@ -709,6 +829,13 @@ function latestMaterializedAt(blockState, maxRev) {
709
829
  /**
710
830
  * `applyTransform` over cloned inputs, so a returned block never aliases stored state.
711
831
  *
832
+ * The `insert` clone here is not redundant with `transformForBlockId`'s: callers pass `Transform`
833
+ * values pulled straight out of `blockState.pendingActions` (a `Map<ActionId, Transform>` written
834
+ * once by `pend()`), which can be `get()`'d more than once and read again at commit time before
835
+ * being superseded. `applyTransform` mutates `transform.insert` in place when `updates` ride
836
+ * along, so cloning immediately before each call is what keeps that stored entry pristine across
837
+ * repeated reads.
838
+ *
712
839
  * An absent base is NOT a short circuit: an insert needs no base — `applyTransform` adopts it as
713
840
  * the block. Bailing out on `!block` made this double silently drop a pending-only insert read
714
841
  * through the pending overlay, the one shape `StorageRepo.get` serves with content but no
@@ -1 +1 @@
1
- {"version":3,"file":"test-transactor.js","sourceRoot":"","sources":["../../../src/testing/test-transactor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-transactor.js","sourceRoot":"","sources":["../../../src/testing/test-transactor.ts"],"names":[],"mappings":"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"}