@fluidframework/tree 2.4.0-297027 → 2.4.0-297385

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 (180) hide show
  1. package/dist/core/change-family/changeFamily.d.ts +2 -2
  2. package/dist/core/change-family/changeFamily.d.ts.map +1 -1
  3. package/dist/core/change-family/changeFamily.js.map +1 -1
  4. package/dist/core/change-family/editBuilder.d.ts +3 -2
  5. package/dist/core/change-family/editBuilder.d.ts.map +1 -1
  6. package/dist/core/change-family/editBuilder.js.map +1 -1
  7. package/dist/core/rebase/changeRebaser.d.ts +2 -1
  8. package/dist/core/rebase/changeRebaser.d.ts.map +1 -1
  9. package/dist/core/rebase/changeRebaser.js.map +1 -1
  10. package/dist/core/rebase/utils.js +1 -1
  11. package/dist/core/rebase/utils.js.map +1 -1
  12. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts +4 -3
  13. package/dist/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  14. package/dist/feature-libraries/default-schema/defaultEditBuilder.js +41 -30
  15. package/dist/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  16. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts +4 -6
  17. package/dist/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  18. package/dist/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  19. package/dist/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
  20. package/dist/feature-libraries/mitigatedChangeFamily.js +4 -4
  21. package/dist/feature-libraries/mitigatedChangeFamily.js.map +1 -1
  22. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts +1 -1
  23. package/dist/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  24. package/dist/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  25. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts +12 -8
  26. package/dist/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  27. package/dist/feature-libraries/modular-schema/modularChangeFamily.js +179 -60
  28. package/dist/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  29. package/dist/feature-libraries/optional-field/optionalField.d.ts +10 -9
  30. package/dist/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  31. package/dist/feature-libraries/optional-field/optionalField.js +9 -7
  32. package/dist/feature-libraries/optional-field/optionalField.js.map +1 -1
  33. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts +3 -10
  34. package/dist/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  35. package/dist/feature-libraries/schema-index/schemaSummarizer.js +1 -8
  36. package/dist/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  37. package/dist/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  38. package/dist/feature-libraries/sequence-field/compose.js +32 -20
  39. package/dist/feature-libraries/sequence-field/compose.js.map +1 -1
  40. package/dist/feature-libraries/sequence-field/invert.d.ts +6 -1
  41. package/dist/feature-libraries/sequence-field/invert.d.ts.map +1 -1
  42. package/dist/feature-libraries/sequence-field/invert.js +25 -9
  43. package/dist/feature-libraries/sequence-field/invert.js.map +1 -1
  44. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +17 -16
  45. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
  46. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js +19 -11
  47. package/dist/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
  48. package/dist/packageVersion.d.ts +1 -1
  49. package/dist/packageVersion.js +1 -1
  50. package/dist/packageVersion.js.map +1 -1
  51. package/dist/shared-tree/sharedTree.d.ts.map +1 -1
  52. package/dist/shared-tree/sharedTree.js +1 -1
  53. package/dist/shared-tree/sharedTree.js.map +1 -1
  54. package/dist/shared-tree/sharedTreeChangeFamily.d.ts +2 -2
  55. package/dist/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  56. package/dist/shared-tree/sharedTreeChangeFamily.js +4 -4
  57. package/dist/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  58. package/dist/shared-tree/sharedTreeEditBuilder.d.ts +2 -2
  59. package/dist/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  60. package/dist/shared-tree/sharedTreeEditBuilder.js +15 -11
  61. package/dist/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  62. package/dist/shared-tree/treeCheckout.d.ts.map +1 -1
  63. package/dist/shared-tree/treeCheckout.js +4 -3
  64. package/dist/shared-tree/treeCheckout.js.map +1 -1
  65. package/dist/shared-tree-core/branch.d.ts +2 -3
  66. package/dist/shared-tree-core/branch.d.ts.map +1 -1
  67. package/dist/shared-tree-core/branch.js +10 -11
  68. package/dist/shared-tree-core/branch.js.map +1 -1
  69. package/dist/shared-tree-core/defaultResubmitMachine.d.ts +5 -5
  70. package/dist/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
  71. package/dist/shared-tree-core/defaultResubmitMachine.js +4 -4
  72. package/dist/shared-tree-core/defaultResubmitMachine.js.map +1 -1
  73. package/dist/shared-tree-core/editManager.d.ts.map +1 -1
  74. package/dist/shared-tree-core/editManager.js +1 -1
  75. package/dist/shared-tree-core/editManager.js.map +1 -1
  76. package/dist/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  77. package/dist/shared-tree-core/sharedTreeCore.js +2 -2
  78. package/dist/shared-tree-core/sharedTreeCore.js.map +1 -1
  79. package/lib/core/change-family/changeFamily.d.ts +2 -2
  80. package/lib/core/change-family/changeFamily.d.ts.map +1 -1
  81. package/lib/core/change-family/changeFamily.js.map +1 -1
  82. package/lib/core/change-family/editBuilder.d.ts +3 -2
  83. package/lib/core/change-family/editBuilder.d.ts.map +1 -1
  84. package/lib/core/change-family/editBuilder.js.map +1 -1
  85. package/lib/core/rebase/changeRebaser.d.ts +2 -1
  86. package/lib/core/rebase/changeRebaser.d.ts.map +1 -1
  87. package/lib/core/rebase/changeRebaser.js.map +1 -1
  88. package/lib/core/rebase/utils.js +1 -1
  89. package/lib/core/rebase/utils.js.map +1 -1
  90. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts +4 -3
  91. package/lib/feature-libraries/default-schema/defaultEditBuilder.d.ts.map +1 -1
  92. package/lib/feature-libraries/default-schema/defaultEditBuilder.js +41 -30
  93. package/lib/feature-libraries/default-schema/defaultEditBuilder.js.map +1 -1
  94. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts +4 -6
  95. package/lib/feature-libraries/default-schema/defaultFieldKinds.d.ts.map +1 -1
  96. package/lib/feature-libraries/default-schema/defaultFieldKinds.js.map +1 -1
  97. package/lib/feature-libraries/mitigatedChangeFamily.d.ts.map +1 -1
  98. package/lib/feature-libraries/mitigatedChangeFamily.js +4 -4
  99. package/lib/feature-libraries/mitigatedChangeFamily.js.map +1 -1
  100. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts +1 -1
  101. package/lib/feature-libraries/modular-schema/fieldChangeHandler.d.ts.map +1 -1
  102. package/lib/feature-libraries/modular-schema/fieldChangeHandler.js.map +1 -1
  103. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts +12 -8
  104. package/lib/feature-libraries/modular-schema/modularChangeFamily.d.ts.map +1 -1
  105. package/lib/feature-libraries/modular-schema/modularChangeFamily.js +180 -61
  106. package/lib/feature-libraries/modular-schema/modularChangeFamily.js.map +1 -1
  107. package/lib/feature-libraries/optional-field/optionalField.d.ts +10 -9
  108. package/lib/feature-libraries/optional-field/optionalField.d.ts.map +1 -1
  109. package/lib/feature-libraries/optional-field/optionalField.js +9 -7
  110. package/lib/feature-libraries/optional-field/optionalField.js.map +1 -1
  111. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts +3 -10
  112. package/lib/feature-libraries/schema-index/schemaSummarizer.d.ts.map +1 -1
  113. package/lib/feature-libraries/schema-index/schemaSummarizer.js +1 -8
  114. package/lib/feature-libraries/schema-index/schemaSummarizer.js.map +1 -1
  115. package/lib/feature-libraries/sequence-field/compose.d.ts.map +1 -1
  116. package/lib/feature-libraries/sequence-field/compose.js +32 -20
  117. package/lib/feature-libraries/sequence-field/compose.js.map +1 -1
  118. package/lib/feature-libraries/sequence-field/invert.d.ts +6 -1
  119. package/lib/feature-libraries/sequence-field/invert.d.ts.map +1 -1
  120. package/lib/feature-libraries/sequence-field/invert.js +25 -9
  121. package/lib/feature-libraries/sequence-field/invert.js.map +1 -1
  122. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts +17 -16
  123. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.d.ts.map +1 -1
  124. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js +19 -11
  125. package/lib/feature-libraries/sequence-field/sequenceFieldEditor.js.map +1 -1
  126. package/lib/packageVersion.d.ts +1 -1
  127. package/lib/packageVersion.js +1 -1
  128. package/lib/packageVersion.js.map +1 -1
  129. package/lib/shared-tree/sharedTree.d.ts.map +1 -1
  130. package/lib/shared-tree/sharedTree.js +1 -1
  131. package/lib/shared-tree/sharedTree.js.map +1 -1
  132. package/lib/shared-tree/sharedTreeChangeFamily.d.ts +2 -2
  133. package/lib/shared-tree/sharedTreeChangeFamily.d.ts.map +1 -1
  134. package/lib/shared-tree/sharedTreeChangeFamily.js +4 -4
  135. package/lib/shared-tree/sharedTreeChangeFamily.js.map +1 -1
  136. package/lib/shared-tree/sharedTreeEditBuilder.d.ts +2 -2
  137. package/lib/shared-tree/sharedTreeEditBuilder.d.ts.map +1 -1
  138. package/lib/shared-tree/sharedTreeEditBuilder.js +15 -11
  139. package/lib/shared-tree/sharedTreeEditBuilder.js.map +1 -1
  140. package/lib/shared-tree/treeCheckout.d.ts.map +1 -1
  141. package/lib/shared-tree/treeCheckout.js +5 -4
  142. package/lib/shared-tree/treeCheckout.js.map +1 -1
  143. package/lib/shared-tree-core/branch.d.ts +2 -3
  144. package/lib/shared-tree-core/branch.d.ts.map +1 -1
  145. package/lib/shared-tree-core/branch.js +11 -12
  146. package/lib/shared-tree-core/branch.js.map +1 -1
  147. package/lib/shared-tree-core/defaultResubmitMachine.d.ts +5 -5
  148. package/lib/shared-tree-core/defaultResubmitMachine.d.ts.map +1 -1
  149. package/lib/shared-tree-core/defaultResubmitMachine.js +4 -4
  150. package/lib/shared-tree-core/defaultResubmitMachine.js.map +1 -1
  151. package/lib/shared-tree-core/editManager.d.ts.map +1 -1
  152. package/lib/shared-tree-core/editManager.js +2 -2
  153. package/lib/shared-tree-core/editManager.js.map +1 -1
  154. package/lib/shared-tree-core/sharedTreeCore.d.ts.map +1 -1
  155. package/lib/shared-tree-core/sharedTreeCore.js +2 -2
  156. package/lib/shared-tree-core/sharedTreeCore.js.map +1 -1
  157. package/package.json +23 -23
  158. package/src/core/change-family/changeFamily.ts +5 -2
  159. package/src/core/change-family/editBuilder.ts +3 -2
  160. package/src/core/rebase/changeRebaser.ts +6 -1
  161. package/src/core/rebase/utils.ts +1 -1
  162. package/src/feature-libraries/default-schema/defaultEditBuilder.ts +92 -47
  163. package/src/feature-libraries/default-schema/defaultFieldKinds.ts +7 -7
  164. package/src/feature-libraries/mitigatedChangeFamily.ts +11 -4
  165. package/src/feature-libraries/modular-schema/fieldChangeHandler.ts +1 -0
  166. package/src/feature-libraries/modular-schema/modularChangeFamily.ts +218 -175
  167. package/src/feature-libraries/optional-field/optionalField.ts +21 -17
  168. package/src/feature-libraries/schema-index/schemaSummarizer.ts +2 -10
  169. package/src/feature-libraries/sequence-field/compose.ts +67 -58
  170. package/src/feature-libraries/sequence-field/invert.ts +30 -6
  171. package/src/feature-libraries/sequence-field/sequenceFieldEditor.ts +65 -19
  172. package/src/packageVersion.ts +1 -1
  173. package/src/shared-tree/sharedTree.ts +3 -1
  174. package/src/shared-tree/sharedTreeChangeFamily.ts +5 -1
  175. package/src/shared-tree/sharedTreeEditBuilder.ts +23 -12
  176. package/src/shared-tree/treeCheckout.ts +7 -6
  177. package/src/shared-tree-core/branch.ts +11 -14
  178. package/src/shared-tree-core/defaultResubmitMachine.ts +4 -4
  179. package/src/shared-tree-core/editManager.ts +2 -1
  180. package/src/shared-tree-core/sharedTreeCore.ts +4 -2
@@ -4,7 +4,12 @@
4
4
  */
5
5
 
6
6
  import type { IIdCompressor } from "@fluidframework/id-compressor";
7
- import type { ChangeFamilyEditor, TreeStoredSchema } from "../core/index.js";
7
+ import type {
8
+ ChangeFamilyEditor,
9
+ RevisionTag,
10
+ TaggedChange,
11
+ TreeStoredSchema,
12
+ } from "../core/index.js";
8
13
  import {
9
14
  DefaultEditBuilder,
10
15
  type IDefaultEditBuilder,
@@ -48,14 +53,17 @@ export class SharedTreeEditBuilder
48
53
 
49
54
  public constructor(
50
55
  modularChangeFamily: ModularChangeFamily,
51
- private readonly changeReceiver: (change: SharedTreeChange) => void,
56
+ mintRevisionTag: () => RevisionTag,
57
+ private readonly changeReceiver: (change: TaggedChange<SharedTreeChange>) => void,
52
58
  idCompressor?: IIdCompressor,
53
59
  ) {
54
60
  super(
55
61
  modularChangeFamily,
56
- (change) =>
62
+ mintRevisionTag,
63
+ (taggedChange) =>
57
64
  changeReceiver({
58
- changes: [{ type: "data", innerChange: change }],
65
+ ...taggedChange,
66
+ change: { changes: [{ type: "data", innerChange: taggedChange.change }] },
59
67
  }),
60
68
  idCompressor,
61
69
  );
@@ -63,15 +71,18 @@ export class SharedTreeEditBuilder
63
71
  this.schema = {
64
72
  setStoredSchema: (oldSchema, newSchema) => {
65
73
  this.changeReceiver({
66
- changes: [
67
- {
68
- type: "schema",
69
- innerChange: {
70
- schema: { new: newSchema, old: oldSchema },
71
- isInverse: false,
74
+ revision: mintRevisionTag(),
75
+ change: {
76
+ changes: [
77
+ {
78
+ type: "schema",
79
+ innerChange: {
80
+ schema: { new: newSchema, old: oldSchema },
81
+ isInverse: false,
82
+ },
72
83
  },
73
- },
74
- ],
84
+ ],
85
+ },
75
86
  });
76
87
  },
77
88
  };
@@ -32,7 +32,6 @@ import {
32
32
  TreeStoredSchemaRepository,
33
33
  type TreeStoredSchemaSubscription,
34
34
  combineVisitors,
35
- makeAnonChange,
36
35
  makeDetachedFieldIndex,
37
36
  rebaseChange,
38
37
  rootFieldKey,
@@ -785,15 +784,17 @@ export class TreeCheckout implements ITreeCheckoutFork {
785
784
  const revertibleBranch = this.revertibleCommitBranches.get(revision);
786
785
  assert(revertibleBranch !== undefined, 0x7cc /* expected to find a revertible commit */);
787
786
  const commitToRevert = revertibleBranch.getHead();
787
+ const revisionForInvert = this.mintRevisionTag();
788
788
 
789
- let change = makeAnonChange(
790
- this.changeFamily.rebaser.invert(tagChange(commitToRevert.change, revision), false),
789
+ let change = tagChange(
790
+ this.changeFamily.rebaser.invert(commitToRevert, false, revisionForInvert),
791
+ revisionForInvert,
791
792
  );
792
793
 
793
794
  const headCommit = this._branch.getHead();
794
795
  // Rebase the inverted change onto any commits that occurred after the undoable commits.
795
796
  if (commitToRevert !== headCommit) {
796
- change = makeAnonChange(
797
+ change = tagChange(
797
798
  rebaseChange(
798
799
  this.changeFamily.rebaser,
799
800
  change,
@@ -801,12 +802,12 @@ export class TreeCheckout implements ITreeCheckoutFork {
801
802
  headCommit,
802
803
  this.mintRevisionTag,
803
804
  ).change,
805
+ revisionForInvert,
804
806
  );
805
807
  }
806
808
 
807
809
  this._branch.apply(
808
- change.change,
809
- this.mintRevisionTag(),
810
+ change,
810
811
  kind === CommitKind.Default || kind === CommitKind.Redo
811
812
  ? CommitKind.Undo
812
813
  : CommitKind.Redo,
@@ -18,7 +18,6 @@ import {
18
18
  makeAnonChange,
19
19
  mintCommit,
20
20
  rebaseBranch,
21
- tagChange,
22
21
  tagRollbackInverse,
23
22
  type RebaseStatsWithDuration,
24
23
  } from "../core/index.js";
@@ -224,8 +223,8 @@ export class SharedTreeBranch<
224
223
  >,
225
224
  ) {
226
225
  super();
227
- this.editor = this.changeFamily.buildEditor((change) =>
228
- this.apply(change, mintRevisionTag()),
226
+ this.editor = this.changeFamily.buildEditor(mintRevisionTag, (change) =>
227
+ this.apply(change),
229
228
  );
230
229
  this.unsubscribeBranchTrimmer = branchTrimmer?.on("ancestryTrimmed", (commit) => {
231
230
  this.emit("ancestryTrimmed", commit);
@@ -243,37 +242,35 @@ export class SharedTreeBranch<
243
242
 
244
243
  /**
245
244
  * Apply a change to this branch.
246
- * @param change - the change to apply
247
- * @param revision - the revision of the new head commit of the branch that contains `change`
245
+ * @param taggedChange - the change to apply
248
246
  * @param kind - the kind of change to apply
249
247
  * @returns the change that was applied and the new head commit of the branch
250
248
  */
251
249
  public apply(
252
- change: TChange,
253
- revision: RevisionTag,
250
+ taggedChange: TaggedChange<TChange>,
254
251
  kind: CommitKind = CommitKind.Default,
255
252
  ): [change: TChange, newCommit: GraphCommit<TChange>] {
256
253
  this.assertNotDisposed();
257
254
 
258
- // TODO: This should not be necessary when receiving changes from other clients.
259
- const changeWithRevision = this.changeFamily.rebaser.changeRevision(change, revision);
255
+ const revisionTag = taggedChange.revision;
256
+ assert(revisionTag !== undefined, "Revision tag must be provided");
260
257
 
261
258
  const newHead = mintCommit(this.head, {
262
- revision,
263
- change: changeWithRevision,
259
+ revision: revisionTag,
260
+ change: taggedChange.change,
264
261
  });
265
262
 
266
263
  const changeEvent = {
267
264
  type: "append",
268
265
  kind,
269
- change: tagChange(changeWithRevision, revision),
266
+ change: taggedChange,
270
267
  newCommits: [newHead],
271
268
  } as const;
272
269
 
273
270
  this.emit("beforeChange", changeEvent);
274
271
  this.head = newHead;
275
272
  this.emit("afterChange", changeEvent);
276
- return [changeWithRevision, newHead];
273
+ return [taggedChange.change, newHead];
277
274
  }
278
275
 
279
276
  /**
@@ -371,7 +368,7 @@ export class SharedTreeBranch<
371
368
  const commit =
372
369
  commits[i] ?? fail("This wont run because we are iterating through commits");
373
370
  const inverse = this.changeFamily.rebaser.changeRevision(
374
- this.changeFamily.rebaser.invert(commit, true),
371
+ this.changeFamily.rebaser.invert(commit, true, revision),
375
372
  revision,
376
373
  commit.revision,
377
374
  );
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  import { assert, oob } from "@fluidframework/core-utils/internal";
7
- import type { ChangeRebaser, GraphCommit } from "../core/index.js";
7
+ import type { GraphCommit, TaggedChange } from "../core/index.js";
8
8
  import { disposeSymbol } from "../util/index.js";
9
9
  import type { ChangeEnricherReadonlyCheckout, ResubmitMachine } from "./index.js";
10
10
 
@@ -36,9 +36,9 @@ export class DefaultResubmitMachine<TChange> implements ResubmitMachine<TChange>
36
36
 
37
37
  public constructor(
38
38
  /**
39
- * A function that can invert a change.
39
+ * A function that can create a rollback for a given change.
40
40
  */
41
- private readonly inverter: ChangeRebaser<TChange>["invert"],
41
+ private readonly makeRollback: (change: TaggedChange<TChange>) => TChange,
42
42
  /**
43
43
  * Change enricher that represent the tip of the top-level local branch (i.e., the branch on which in-flight
44
44
  * commits are applied and automatically rebased).
@@ -75,7 +75,7 @@ export class DefaultResubmitMachine<TChange> implements ResubmitMachine<TChange>
75
75
  // Roll back the checkout to the state before the oldest commit
76
76
  for (let iCommit = toResubmit.length - 1; iCommit >= 0; iCommit -= 1) {
77
77
  const commit = toResubmit[iCommit] ?? oob();
78
- const rollback = this.inverter(commit, true);
78
+ const rollback = this.makeRollback(commit);
79
79
  // WARNING: it's not currently possible to roll back past a schema change (see AB#7265).
80
80
  // Either we have to make it possible to do so, or this logic will have to change to work
81
81
  // forwards from an earlier fork instead of backwards.
@@ -17,6 +17,7 @@ import {
17
17
  mintCommit,
18
18
  rebaseChange,
19
19
  type RebaseStatsWithDuration,
20
+ tagChange,
20
21
  } from "../core/index.js";
21
22
  import { type Mutable, brand, fail, getOrCreate, mapIterable } from "../util/index.js";
22
23
 
@@ -642,7 +643,7 @@ export class EditManager<
642
643
  ...newChangeFullyRebased.telemetryProperties,
643
644
  });
644
645
 
645
- peerLocalBranch.apply(newCommit.change, newCommit.revision);
646
+ peerLocalBranch.apply(tagChange(newCommit.change, newCommit.revision));
646
647
  this.pushCommitToTrunk(sequenceId, {
647
648
  ...newCommit,
648
649
  change: newChangeFullyRebased.change,
@@ -32,6 +32,7 @@ import {
32
32
  RevisionTagCodec,
33
33
  type SchemaAndPolicy,
34
34
  type SchemaPolicy,
35
+ type TaggedChange,
35
36
  type TreeStoredSchemaRepository,
36
37
  } from "../core/index.js";
37
38
  import {
@@ -271,7 +272,8 @@ export class SharedTreeCore<TEditor extends ChangeFamilyEditor, TChange>
271
272
  this.resubmitMachine =
272
273
  resubmitMachine ??
273
274
  new DefaultResubmitMachine(
274
- changeFamily.rebaser.invert.bind(changeFamily.rebaser),
275
+ (change: TaggedChange<TChange>) =>
276
+ changeFamily.rebaser.invert(change, true, this.mintRevisionTag()),
275
277
  changeEnricher,
276
278
  );
277
279
  this.commitEnricher = new BranchCommitEnricher(changeFamily.rebaser, changeEnricher);
@@ -446,7 +448,7 @@ export class SharedTreeCore<TEditor extends ChangeFamilyEditor, TChange>
446
448
  const {
447
449
  commit: { revision, change },
448
450
  } = this.messageCodec.decode(content, { idCompressor: this.idCompressor });
449
- this.editManager.localBranch.apply(change, revision);
451
+ this.editManager.localBranch.apply({ change, revision });
450
452
  }
451
453
 
452
454
  public override getGCData(fullGC?: boolean): IGarbageCollectionData {