react-dom 19.2.0-canary-223f81d8-20250707 → 19.2.0-canary-befc1246-20250708

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.
@@ -4727,6 +4727,18 @@
4727
4727
  pushServerComponentStack(task, node._debugInfo);
4728
4728
  }
4729
4729
  }
4730
+ function replaceSuspenseComponentStackWithSuspenseFallbackStack(
4731
+ componentStack
4732
+ ) {
4733
+ return null === componentStack
4734
+ ? null
4735
+ : {
4736
+ parent: componentStack.parent,
4737
+ type: "Suspense Fallback",
4738
+ owner: componentStack.owner,
4739
+ stack: componentStack.stack
4740
+ };
4741
+ }
4730
4742
  function getThrownInfo(node$jscomp$0) {
4731
4743
  var errorInfo = {};
4732
4744
  node$jscomp$0 &&
@@ -5550,27 +5562,20 @@
5550
5562
  !1
5551
5563
  );
5552
5564
  segment.preambleChildren.push(preambleSegment);
5553
- var preambleTask = createRenderTask(
5554
- request,
5555
- null,
5556
- _children,
5557
- -1,
5558
- task.blockedBoundary,
5559
- preambleSegment,
5560
- task.blockedPreamble,
5561
- task.hoistableState,
5562
- request.abortableTasks,
5563
- task.keyPath,
5564
- task.formatContext,
5565
- task.context,
5566
- task.treeContext,
5567
- task.row,
5568
- task.componentStack,
5569
- emptyContextObject,
5570
- task.debugTask
5571
- );
5572
- pushComponentStack(preambleTask);
5573
- request.pingedTasks.push(preambleTask);
5565
+ task.blockedSegment = preambleSegment;
5566
+ try {
5567
+ (preambleSegment.status = 6),
5568
+ renderNode(request, task, _children, -1),
5569
+ pushSegmentFinale(
5570
+ preambleSegment.chunks,
5571
+ request.renderState,
5572
+ preambleSegment.lastPushedText,
5573
+ preambleSegment.textEmbedded
5574
+ ),
5575
+ (preambleSegment.status = COMPLETED);
5576
+ } finally {
5577
+ task.blockedSegment = segment;
5578
+ }
5574
5579
  } else renderNode(request, task, _children, -1);
5575
5580
  task.formatContext = _prevContext2;
5576
5581
  task.keyPath = _prevKeyPath3;
@@ -5783,7 +5788,8 @@
5783
5788
  );
5784
5789
  contentRootSegment.parentFlushed = !0;
5785
5790
  if (null !== request.trackedPostpones) {
5786
- var fallbackKeyPath = [
5791
+ var suspenseComponentStack = task.componentStack,
5792
+ fallbackKeyPath = [
5787
5793
  keyPath[0],
5788
5794
  "Suspense Fallback",
5789
5795
  keyPath[2]
@@ -5806,6 +5812,10 @@
5806
5812
  request.resumableState,
5807
5813
  prevContext$jscomp$0
5808
5814
  );
5815
+ task.componentStack =
5816
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
5817
+ suspenseComponentStack
5818
+ );
5809
5819
  boundarySegment.status = 6;
5810
5820
  try {
5811
5821
  renderNode(request, task, fallback, -1),
@@ -5846,7 +5856,7 @@
5846
5856
  task.context,
5847
5857
  task.treeContext,
5848
5858
  null,
5849
- task.componentStack,
5859
+ suspenseComponentStack,
5850
5860
  emptyContextObject,
5851
5861
  task.debugTask
5852
5862
  );
@@ -5944,7 +5954,9 @@
5944
5954
  task.context,
5945
5955
  task.treeContext,
5946
5956
  task.row,
5947
- task.componentStack,
5957
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
5958
+ task.componentStack
5959
+ ),
5948
5960
  emptyContextObject,
5949
5961
  task.debugTask
5950
5962
  );
@@ -6260,7 +6272,9 @@
6260
6272
  task.context,
6261
6273
  task.treeContext,
6262
6274
  task.row,
6263
- task.componentStack,
6275
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
6276
+ task.componentStack
6277
+ ),
6264
6278
  emptyContextObject,
6265
6279
  task.debugTask
6266
6280
  );
@@ -9687,5 +9701,5 @@
9687
9701
  'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server'
9688
9702
  );
9689
9703
  };
9690
- exports.version = "19.2.0-canary-223f81d8-20250707";
9704
+ exports.version = "19.2.0-canary-befc1246-20250708";
9691
9705
  })();
@@ -3948,6 +3948,13 @@ function pushComponentStack(task) {
3948
3948
  task.componentStack = { parent: task.componentStack, type: node.type };
3949
3949
  }
3950
3950
  }
3951
+ function replaceSuspenseComponentStackWithSuspenseFallbackStack(
3952
+ componentStack
3953
+ ) {
3954
+ return null === componentStack
3955
+ ? null
3956
+ : { parent: componentStack.parent, type: "Suspense Fallback" };
3957
+ }
3951
3958
  function getThrownInfo(node$jscomp$0) {
3952
3959
  var errorInfo = {};
3953
3960
  node$jscomp$0 &&
@@ -4327,7 +4334,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4327
4334
  (task.formatContext = defaultProps),
4328
4335
  (task.keyPath = initialState);
4329
4336
  else {
4330
- ref = pushStartInstance(
4337
+ initialState = pushStartInstance(
4331
4338
  newProps.chunks,
4332
4339
  type,
4333
4340
  props,
@@ -4340,42 +4347,39 @@ function renderElement(request, task, keyPath, type, props, ref) {
4340
4347
  );
4341
4348
  newProps.lastPushedText = !1;
4342
4349
  defaultProps = task.formatContext;
4343
- initialState = task.keyPath;
4350
+ ref = task.keyPath;
4344
4351
  task.keyPath = keyPath;
4345
- 3 ===
4346
- (task.formatContext = getChildFormatContext(defaultProps, type, props))
4347
- .insertionMode
4348
- ? ((keyPath = createPendingSegment(
4349
- request,
4350
- 0,
4351
- null,
4352
- task.formatContext,
4353
- !1,
4354
- !1
4355
- )),
4356
- newProps.preambleChildren.push(keyPath),
4357
- (keyPath = createRenderTask(
4358
- request,
4359
- null,
4360
- ref,
4361
- -1,
4362
- task.blockedBoundary,
4363
- keyPath,
4364
- task.blockedPreamble,
4365
- task.hoistableState,
4366
- request.abortableTasks,
4367
- task.keyPath,
4368
- task.formatContext,
4369
- task.context,
4370
- task.treeContext,
4371
- task.row,
4372
- task.componentStack
4373
- )),
4374
- pushComponentStack(keyPath),
4375
- request.pingedTasks.push(keyPath))
4376
- : renderNode(request, task, ref, -1);
4352
+ if (
4353
+ 3 ===
4354
+ (task.formatContext = getChildFormatContext(defaultProps, type, props))
4355
+ .insertionMode
4356
+ ) {
4357
+ keyPath = createPendingSegment(
4358
+ request,
4359
+ 0,
4360
+ null,
4361
+ task.formatContext,
4362
+ !1,
4363
+ !1
4364
+ );
4365
+ newProps.preambleChildren.push(keyPath);
4366
+ task.blockedSegment = keyPath;
4367
+ try {
4368
+ (keyPath.status = 6),
4369
+ renderNode(request, task, initialState, -1),
4370
+ pushSegmentFinale(
4371
+ keyPath.chunks,
4372
+ request.renderState,
4373
+ keyPath.lastPushedText,
4374
+ keyPath.textEmbedded
4375
+ ),
4376
+ (keyPath.status = 1);
4377
+ } finally {
4378
+ task.blockedSegment = newProps;
4379
+ }
4380
+ } else renderNode(request, task, initialState, -1);
4377
4381
  task.formatContext = defaultProps;
4378
- task.keyPath = initialState;
4382
+ task.keyPath = ref;
4379
4383
  a: {
4380
4384
  task = newProps.chunks;
4381
4385
  request = request.resumableState;
@@ -4556,17 +4560,20 @@ function renderElement(request, task, keyPath, type, props, ref) {
4556
4560
  );
4557
4561
  contentRootSegment.parentFlushed = !0;
4558
4562
  if (null !== request.trackedPostpones) {
4559
- newProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
4560
- defaultProps = [newProps[1], newProps[2], [], null];
4561
- request.trackedPostpones.workingMap.set(newProps, defaultProps);
4562
- newBoundary.trackedFallbackNode = defaultProps;
4563
+ newProps = task.componentStack;
4564
+ defaultProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
4565
+ initialState = [defaultProps[1], defaultProps[2], [], null];
4566
+ request.trackedPostpones.workingMap.set(defaultProps, initialState);
4567
+ newBoundary.trackedFallbackNode = initialState;
4563
4568
  task.blockedSegment = boundarySegment;
4564
4569
  task.blockedPreamble = newBoundary.fallbackPreamble;
4565
- task.keyPath = newProps;
4570
+ task.keyPath = defaultProps;
4566
4571
  task.formatContext = getSuspenseFallbackFormatContext(
4567
4572
  request.resumableState,
4568
4573
  ref
4569
4574
  );
4575
+ task.componentStack =
4576
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(newProps);
4570
4577
  boundarySegment.status = 6;
4571
4578
  try {
4572
4579
  renderNode(request, task, fallback, -1),
@@ -4606,7 +4613,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4606
4613
  task.context,
4607
4614
  task.treeContext,
4608
4615
  null,
4609
- task.componentStack
4616
+ newProps
4610
4617
  );
4611
4618
  pushComponentStack(task);
4612
4619
  request.pingedTasks.push(task);
@@ -4690,7 +4697,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
4690
4697
  task.context,
4691
4698
  task.treeContext,
4692
4699
  task.row,
4693
- task.componentStack
4700
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
4701
+ task.componentStack
4702
+ )
4694
4703
  );
4695
4704
  pushComponentStack(task);
4696
4705
  request.pingedTasks.push(task);
@@ -4992,7 +5001,9 @@ function retryNode(request, task) {
4992
5001
  task.context,
4993
5002
  task.treeContext,
4994
5003
  task.row,
4995
- task.componentStack
5004
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
5005
+ task.componentStack
5006
+ )
4996
5007
  );
4997
5008
  pushComponentStack(childNodes);
4998
5009
  request.pingedTasks.push(childNodes);
@@ -6539,4 +6550,4 @@ exports.renderToString = function (children, options) {
6539
6550
  'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server'
6540
6551
  );
6541
6552
  };
6542
- exports.version = "19.2.0-canary-223f81d8-20250707";
6553
+ exports.version = "19.2.0-canary-befc1246-20250708";
@@ -4930,6 +4930,18 @@
4930
4930
  pushServerComponentStack(task, node._debugInfo);
4931
4931
  }
4932
4932
  }
4933
+ function replaceSuspenseComponentStackWithSuspenseFallbackStack(
4934
+ componentStack
4935
+ ) {
4936
+ return null === componentStack
4937
+ ? null
4938
+ : {
4939
+ parent: componentStack.parent,
4940
+ type: "Suspense Fallback",
4941
+ owner: componentStack.owner,
4942
+ stack: componentStack.stack
4943
+ };
4944
+ }
4933
4945
  function getThrownInfo(node$jscomp$0) {
4934
4946
  var errorInfo = {};
4935
4947
  node$jscomp$0 &&
@@ -5752,27 +5764,18 @@
5752
5764
  !1
5753
5765
  );
5754
5766
  segment.preambleChildren.push(preambleSegment);
5755
- var preambleTask = createRenderTask(
5756
- request,
5757
- null,
5758
- _children,
5759
- -1,
5760
- task.blockedBoundary,
5761
- preambleSegment,
5762
- task.blockedPreamble,
5763
- task.hoistableState,
5764
- request.abortableTasks,
5765
- task.keyPath,
5766
- task.formatContext,
5767
- task.context,
5768
- task.treeContext,
5769
- task.row,
5770
- task.componentStack,
5771
- emptyContextObject,
5772
- task.debugTask
5773
- );
5774
- pushComponentStack(preambleTask);
5775
- request.pingedTasks.push(preambleTask);
5767
+ task.blockedSegment = preambleSegment;
5768
+ try {
5769
+ (preambleSegment.status = 6),
5770
+ renderNode(request, task, _children, -1),
5771
+ preambleSegment.lastPushedText &&
5772
+ preambleSegment.textEmbedded &&
5773
+ preambleSegment.chunks.push(textSeparator),
5774
+ (preambleSegment.status = COMPLETED),
5775
+ finishedSegment(request, task.blockedBoundary, preambleSegment);
5776
+ } finally {
5777
+ task.blockedSegment = segment;
5778
+ }
5776
5779
  } else renderNode(request, task, _children, -1);
5777
5780
  task.formatContext = _prevContext2;
5778
5781
  task.keyPath = _prevKeyPath3;
@@ -5992,7 +5995,8 @@
5992
5995
  );
5993
5996
  contentRootSegment.parentFlushed = !0;
5994
5997
  if (null !== request.trackedPostpones) {
5995
- var fallbackKeyPath = [
5998
+ var suspenseComponentStack = task.componentStack,
5999
+ fallbackKeyPath = [
5996
6000
  keyPath[0],
5997
6001
  "Suspense Fallback",
5998
6002
  keyPath[2]
@@ -6015,6 +6019,10 @@
6015
6019
  request.resumableState,
6016
6020
  prevContext$jscomp$0
6017
6021
  );
6022
+ task.componentStack =
6023
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
6024
+ suspenseComponentStack
6025
+ );
6018
6026
  boundarySegment.status = 6;
6019
6027
  try {
6020
6028
  renderNode(request, task, fallback, -1),
@@ -6053,7 +6061,7 @@
6053
6061
  task.context,
6054
6062
  task.treeContext,
6055
6063
  null,
6056
- task.componentStack,
6064
+ suspenseComponentStack,
6057
6065
  emptyContextObject,
6058
6066
  task.debugTask
6059
6067
  );
@@ -6149,7 +6157,9 @@
6149
6157
  task.context,
6150
6158
  task.treeContext,
6151
6159
  task.row,
6152
- task.componentStack,
6160
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
6161
+ task.componentStack
6162
+ ),
6153
6163
  emptyContextObject,
6154
6164
  task.debugTask
6155
6165
  );
@@ -6475,7 +6485,9 @@
6475
6485
  task.context,
6476
6486
  task.treeContext,
6477
6487
  task.row,
6478
- task.componentStack,
6488
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
6489
+ task.componentStack
6490
+ ),
6479
6491
  emptyContextObject,
6480
6492
  task.debugTask
6481
6493
  );
@@ -8436,11 +8448,11 @@
8436
8448
  }
8437
8449
  function ensureCorrectIsomorphicReactVersion() {
8438
8450
  var isomorphicReactPackageVersion = React.version;
8439
- if ("19.2.0-canary-223f81d8-20250707" !== isomorphicReactPackageVersion)
8451
+ if ("19.2.0-canary-befc1246-20250708" !== isomorphicReactPackageVersion)
8440
8452
  throw Error(
8441
8453
  'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
8442
8454
  (isomorphicReactPackageVersion +
8443
- "\n - react-dom: 19.2.0-canary-223f81d8-20250707\nLearn more: https://react.dev/warnings/version-mismatch")
8455
+ "\n - react-dom: 19.2.0-canary-befc1246-20250708\nLearn more: https://react.dev/warnings/version-mismatch")
8444
8456
  );
8445
8457
  }
8446
8458
  var React = require("react"),
@@ -10130,5 +10142,5 @@
10130
10142
  startWork(request);
10131
10143
  });
10132
10144
  };
10133
- exports.version = "19.2.0-canary-223f81d8-20250707";
10145
+ exports.version = "19.2.0-canary-befc1246-20250708";
10134
10146
  })();
@@ -4333,6 +4333,13 @@ function pushComponentStack(task) {
4333
4333
  task.componentStack = { parent: task.componentStack, type: node.type };
4334
4334
  }
4335
4335
  }
4336
+ function replaceSuspenseComponentStackWithSuspenseFallbackStack(
4337
+ componentStack
4338
+ ) {
4339
+ return null === componentStack
4340
+ ? null
4341
+ : { parent: componentStack.parent, type: "Suspense Fallback" };
4342
+ }
4336
4343
  function getThrownInfo(node$jscomp$0) {
4337
4344
  var errorInfo = {};
4338
4345
  node$jscomp$0 &&
@@ -4710,7 +4717,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4710
4717
  (task.formatContext = defaultProps),
4711
4718
  (task.keyPath = initialState);
4712
4719
  else {
4713
- ref = pushStartInstance(
4720
+ initialState = pushStartInstance(
4714
4721
  newProps.chunks,
4715
4722
  type,
4716
4723
  props,
@@ -4723,42 +4730,37 @@ function renderElement(request, task, keyPath, type, props, ref) {
4723
4730
  );
4724
4731
  newProps.lastPushedText = !1;
4725
4732
  defaultProps = task.formatContext;
4726
- initialState = task.keyPath;
4733
+ ref = task.keyPath;
4727
4734
  task.keyPath = keyPath;
4728
- 3 ===
4729
- (task.formatContext = getChildFormatContext(defaultProps, type, props))
4730
- .insertionMode
4731
- ? ((keyPath = createPendingSegment(
4732
- request,
4733
- 0,
4734
- null,
4735
- task.formatContext,
4736
- !1,
4737
- !1
4738
- )),
4739
- newProps.preambleChildren.push(keyPath),
4740
- (keyPath = createRenderTask(
4741
- request,
4742
- null,
4743
- ref,
4744
- -1,
4745
- task.blockedBoundary,
4746
- keyPath,
4747
- task.blockedPreamble,
4748
- task.hoistableState,
4749
- request.abortableTasks,
4750
- task.keyPath,
4751
- task.formatContext,
4752
- task.context,
4753
- task.treeContext,
4754
- task.row,
4755
- task.componentStack
4756
- )),
4757
- pushComponentStack(keyPath),
4758
- request.pingedTasks.push(keyPath))
4759
- : renderNode(request, task, ref, -1);
4735
+ if (
4736
+ 3 ===
4737
+ (task.formatContext = getChildFormatContext(defaultProps, type, props))
4738
+ .insertionMode
4739
+ ) {
4740
+ keyPath = createPendingSegment(
4741
+ request,
4742
+ 0,
4743
+ null,
4744
+ task.formatContext,
4745
+ !1,
4746
+ !1
4747
+ );
4748
+ newProps.preambleChildren.push(keyPath);
4749
+ task.blockedSegment = keyPath;
4750
+ try {
4751
+ (keyPath.status = 6),
4752
+ renderNode(request, task, initialState, -1),
4753
+ keyPath.lastPushedText &&
4754
+ keyPath.textEmbedded &&
4755
+ keyPath.chunks.push(textSeparator),
4756
+ (keyPath.status = 1),
4757
+ finishedSegment(request, task.blockedBoundary, keyPath);
4758
+ } finally {
4759
+ task.blockedSegment = newProps;
4760
+ }
4761
+ } else renderNode(request, task, initialState, -1);
4760
4762
  task.formatContext = defaultProps;
4761
- task.keyPath = initialState;
4763
+ task.keyPath = ref;
4762
4764
  a: {
4763
4765
  task = newProps.chunks;
4764
4766
  request = request.resumableState;
@@ -4946,17 +4948,20 @@ function renderElement(request, task, keyPath, type, props, ref) {
4946
4948
  );
4947
4949
  contentRootSegment.parentFlushed = !0;
4948
4950
  if (null !== request.trackedPostpones) {
4949
- newProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
4950
- defaultProps = [newProps[1], newProps[2], [], null];
4951
- request.trackedPostpones.workingMap.set(newProps, defaultProps);
4952
- newBoundary.trackedFallbackNode = defaultProps;
4951
+ newProps = task.componentStack;
4952
+ defaultProps = [keyPath[0], "Suspense Fallback", keyPath[2]];
4953
+ initialState = [defaultProps[1], defaultProps[2], [], null];
4954
+ request.trackedPostpones.workingMap.set(defaultProps, initialState);
4955
+ newBoundary.trackedFallbackNode = initialState;
4953
4956
  task.blockedSegment = boundarySegment;
4954
4957
  task.blockedPreamble = newBoundary.fallbackPreamble;
4955
- task.keyPath = newProps;
4958
+ task.keyPath = defaultProps;
4956
4959
  task.formatContext = getSuspenseFallbackFormatContext(
4957
4960
  request.resumableState,
4958
4961
  ref
4959
4962
  );
4963
+ task.componentStack =
4964
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(newProps);
4960
4965
  boundarySegment.status = 6;
4961
4966
  try {
4962
4967
  renderNode(request, task, fallback, -1),
@@ -4994,7 +4999,7 @@ function renderElement(request, task, keyPath, type, props, ref) {
4994
4999
  task.context,
4995
5000
  task.treeContext,
4996
5001
  null,
4997
- task.componentStack
5002
+ newProps
4998
5003
  );
4999
5004
  pushComponentStack(task);
5000
5005
  request.pingedTasks.push(task);
@@ -5076,7 +5081,9 @@ function renderElement(request, task, keyPath, type, props, ref) {
5076
5081
  task.context,
5077
5082
  task.treeContext,
5078
5083
  task.row,
5079
- task.componentStack
5084
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
5085
+ task.componentStack
5086
+ )
5080
5087
  );
5081
5088
  pushComponentStack(task);
5082
5089
  request.pingedTasks.push(task);
@@ -5379,7 +5386,9 @@ function retryNode(request, task) {
5379
5386
  task.context,
5380
5387
  task.treeContext,
5381
5388
  task.row,
5382
- task.componentStack
5389
+ replaceSuspenseComponentStackWithSuspenseFallbackStack(
5390
+ task.componentStack
5391
+ )
5383
5392
  );
5384
5393
  pushComponentStack(childNodes);
5385
5394
  request.pingedTasks.push(childNodes);
@@ -6842,12 +6851,12 @@ function addToReplayParent(node, parentKeyPath, trackedPostpones) {
6842
6851
  }
6843
6852
  function ensureCorrectIsomorphicReactVersion() {
6844
6853
  var isomorphicReactPackageVersion = React.version;
6845
- if ("19.2.0-canary-223f81d8-20250707" !== isomorphicReactPackageVersion)
6854
+ if ("19.2.0-canary-befc1246-20250708" !== isomorphicReactPackageVersion)
6846
6855
  throw Error(
6847
6856
  formatProdErrorMessage(
6848
6857
  527,
6849
6858
  isomorphicReactPackageVersion,
6850
- "19.2.0-canary-223f81d8-20250707"
6859
+ "19.2.0-canary-befc1246-20250708"
6851
6860
  )
6852
6861
  );
6853
6862
  }
@@ -6994,4 +7003,4 @@ exports.renderToReadableStream = function (children, options) {
6994
7003
  startWork(request);
6995
7004
  });
6996
7005
  };
6997
- exports.version = "19.2.0-canary-223f81d8-20250707";
7006
+ exports.version = "19.2.0-canary-befc1246-20250708";