@fluidframework/container-runtime 2.100.0 → 2.101.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 (106) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/container-runtime.test-files.tar +0 -0
  3. package/dist/blobManager/blobManager.d.ts +3 -0
  4. package/dist/blobManager/blobManager.d.ts.map +1 -1
  5. package/dist/blobManager/blobManager.js +3 -0
  6. package/dist/blobManager/blobManager.js.map +1 -1
  7. package/dist/blobManager/blobManagerSnapSum.d.ts +3 -0
  8. package/dist/blobManager/blobManagerSnapSum.d.ts.map +1 -1
  9. package/dist/blobManager/blobManagerSnapSum.js +12 -5
  10. package/dist/blobManager/blobManagerSnapSum.js.map +1 -1
  11. package/dist/connectionTelemetry.d.ts.map +1 -1
  12. package/dist/connectionTelemetry.js +3 -1
  13. package/dist/connectionTelemetry.js.map +1 -1
  14. package/dist/containerRuntime.d.ts +6 -1
  15. package/dist/containerRuntime.d.ts.map +1 -1
  16. package/dist/containerRuntime.js +33 -15
  17. package/dist/containerRuntime.js.map +1 -1
  18. package/dist/gc/garbageCollection.d.ts +4 -0
  19. package/dist/gc/garbageCollection.d.ts.map +1 -1
  20. package/dist/gc/garbageCollection.js +3 -2
  21. package/dist/gc/garbageCollection.js.map +1 -1
  22. package/dist/gc/gcDefinitions.d.ts +10 -4
  23. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  24. package/dist/gc/gcDefinitions.js.map +1 -1
  25. package/dist/index.d.ts +1 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +16 -12
  28. package/dist/index.js.map +1 -1
  29. package/dist/metadata.d.ts +14 -0
  30. package/dist/metadata.d.ts.map +1 -1
  31. package/dist/metadata.js.map +1 -1
  32. package/dist/opLifecycle/duplicateBatchDetector.d.ts +8 -0
  33. package/dist/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
  34. package/dist/opLifecycle/duplicateBatchDetector.js +23 -1
  35. package/dist/opLifecycle/duplicateBatchDetector.js.map +1 -1
  36. package/dist/opLifecycle/opGroupingManager.js +2 -2
  37. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  38. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  39. package/dist/opLifecycle/opSplitter.js +13 -3
  40. package/dist/opLifecycle/opSplitter.js.map +1 -1
  41. package/dist/packageVersion.d.ts +1 -1
  42. package/dist/packageVersion.js +1 -1
  43. package/dist/packageVersion.js.map +1 -1
  44. package/dist/runtimeLayerCompatState.d.ts +1 -1
  45. package/dist/summary/summarizerTypes.d.ts +3 -1
  46. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  47. package/dist/summary/summarizerTypes.js.map +1 -1
  48. package/lib/blobManager/blobManager.d.ts +3 -0
  49. package/lib/blobManager/blobManager.d.ts.map +1 -1
  50. package/lib/blobManager/blobManager.js +3 -0
  51. package/lib/blobManager/blobManager.js.map +1 -1
  52. package/lib/blobManager/blobManagerSnapSum.d.ts +3 -0
  53. package/lib/blobManager/blobManagerSnapSum.d.ts.map +1 -1
  54. package/lib/blobManager/blobManagerSnapSum.js +12 -5
  55. package/lib/blobManager/blobManagerSnapSum.js.map +1 -1
  56. package/lib/connectionTelemetry.d.ts.map +1 -1
  57. package/lib/connectionTelemetry.js +3 -1
  58. package/lib/connectionTelemetry.js.map +1 -1
  59. package/lib/containerRuntime.d.ts +6 -1
  60. package/lib/containerRuntime.d.ts.map +1 -1
  61. package/lib/containerRuntime.js +33 -15
  62. package/lib/containerRuntime.js.map +1 -1
  63. package/lib/gc/garbageCollection.d.ts +4 -0
  64. package/lib/gc/garbageCollection.d.ts.map +1 -1
  65. package/lib/gc/garbageCollection.js +3 -2
  66. package/lib/gc/garbageCollection.js.map +1 -1
  67. package/lib/gc/gcDefinitions.d.ts +10 -4
  68. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  69. package/lib/gc/gcDefinitions.js.map +1 -1
  70. package/lib/index.d.ts +1 -0
  71. package/lib/index.d.ts.map +1 -1
  72. package/lib/index.js +1 -0
  73. package/lib/index.js.map +1 -1
  74. package/lib/metadata.d.ts +14 -0
  75. package/lib/metadata.d.ts.map +1 -1
  76. package/lib/metadata.js.map +1 -1
  77. package/lib/opLifecycle/duplicateBatchDetector.d.ts +8 -0
  78. package/lib/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
  79. package/lib/opLifecycle/duplicateBatchDetector.js +23 -1
  80. package/lib/opLifecycle/duplicateBatchDetector.js.map +1 -1
  81. package/lib/opLifecycle/opGroupingManager.js +2 -2
  82. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  83. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  84. package/lib/opLifecycle/opSplitter.js +13 -3
  85. package/lib/opLifecycle/opSplitter.js.map +1 -1
  86. package/lib/packageVersion.d.ts +1 -1
  87. package/lib/packageVersion.js +1 -1
  88. package/lib/packageVersion.js.map +1 -1
  89. package/lib/runtimeLayerCompatState.d.ts +1 -1
  90. package/lib/summary/summarizerTypes.d.ts +3 -1
  91. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  92. package/lib/summary/summarizerTypes.js.map +1 -1
  93. package/package.json +18 -18
  94. package/src/blobManager/blobManager.ts +3 -0
  95. package/src/blobManager/blobManagerSnapSum.ts +12 -5
  96. package/src/connectionTelemetry.ts +15 -10
  97. package/src/containerRuntime.ts +44 -17
  98. package/src/gc/garbageCollection.ts +8 -6
  99. package/src/gc/gcDefinitions.ts +11 -4
  100. package/src/index.ts +5 -0
  101. package/src/metadata.ts +14 -0
  102. package/src/opLifecycle/duplicateBatchDetector.ts +27 -6
  103. package/src/opLifecycle/opGroupingManager.ts +2 -2
  104. package/src/opLifecycle/opSplitter.ts +13 -3
  105. package/src/packageVersion.ts +1 -1
  106. package/src/summary/summarizerTypes.ts +3 -1
@@ -100,7 +100,7 @@ export class OpGroupingManager {
100
100
  const serializedOp = JSON.stringify(emptyGroupedBatch);
101
101
 
102
102
  const placeholderMessage: LocalEmptyBatchPlaceholder = {
103
- metadata: { batchId: resubmittingBatchId },
103
+ metadata: { batchId: resubmittingBatchId, groupedOpCount: 0 },
104
104
  localOpMetadata: { emptyBatch: true },
105
105
  referenceSequenceNumber,
106
106
  runtimeOp: emptyGroupedBatch,
@@ -169,7 +169,7 @@ export class OpGroupingManager {
169
169
  ...batch,
170
170
  messages: [
171
171
  {
172
- metadata: { batchId: groupedBatchId },
172
+ metadata: { batchId: groupedBatchId, groupedOpCount: batch.messages.length },
173
173
  referenceSequenceNumber: batch.messages[0].referenceSequenceNumber,
174
174
  contents: serializedContent,
175
175
  },
@@ -171,12 +171,22 @@ export class OpSplitter {
171
171
  );
172
172
  }
173
173
 
174
- // The last chunk will be part of the new batch and needs to
175
- // preserve the batch metadata of the original batch
174
+ // The last chunk will be part of the new batch and needs to preserve the
175
+ // batch metadata of the original batch. groupedOpCount is surfaced here
176
+ // (and only here, not on intermediate chunks) because intermediate chunks
177
+ // don't carry ops — they carry parts of a payload that only become ops
178
+ // once the last chunk is processed and the payload is reassembled.
179
+ // Stamping every chunk would let an observer double-count messages.
180
+ // batchId is deliberately not forwarded — it's a runtime dedup field
181
+ // consumed only after processChunk restores originalMetadata, not by
182
+ // wire observers.
176
183
  const lastChunk = chunkToBatchMessage(
177
184
  chunks[chunks.length - 1],
178
185
  batch.referenceSequenceNumber,
179
- { batch: firstMessage.metadata?.batch },
186
+ {
187
+ batch: firstMessage.metadata?.batch,
188
+ groupedOpCount: firstMessage.metadata?.groupedOpCount,
189
+ },
180
190
  );
181
191
 
182
192
  this.logger.sendPerformanceEvent({
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/container-runtime";
9
- export const pkgVersion = "2.100.0";
9
+ export const pkgVersion = "2.101.0";
@@ -125,8 +125,10 @@ export interface ISummarizerRuntime extends IConnectableRuntime {
125
125
  */
126
126
  readonly summarizerClientId: string | undefined;
127
127
  readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;
128
+ /**
129
+ * Initiate disposal of the container.
130
+ */
128
131
  disposeFn(): void;
129
- closeFn(): void;
130
132
  on(
131
133
  event: "op",
132
134
  listener: (op: ISequencedDocumentMessage, runtimeMessage?: boolean) => void,