Contents
- 🚨 Breaking Changes
- Removal of number key support in LatestMap (#25904)
- Added layerIncompatibilityError to FluidErrorTypes, ContainerErrorTypes, DriverErrorTypes and OdspErrorTypes (#26068)
- TreeBranch operations throw when called during transactions (#26097)
- map: Emit valueChanged events for deleted keys after a clear operation (#26102)
- 🐛 Bug Fixes
- Attendee status fixes on reconnect (#26111)
- Legacy API Changes
- Types not intended for consumer implementation/extension are now @sealed (#26024)
🚨 Breaking Changes
Removal of number key support in LatestMap (#25904)
number keys have never been successfully propagated as numbers at runtime and this type clarification makes that clear. See issue 25919 for more details.
Change details
Commit: c1d91d8
Affected packages:
- @fluidframework/presence
⬆️ Table of contents
Added layerIncompatibilityError to FluidErrorTypes, ContainerErrorTypes, DriverErrorTypes and OdspErrorTypes (#26068)
The Fluid error type layerIncompatibilityError is added to FluidErrorTypes and is now @legacy @beta. It is also added to ContainerErrorTypes, DriverErrorTypes and OdspErrorTypes which extend FluidErrorTypes. layerIncompatibilityError was added as @legacy @Alpha in version 2.72.0. The corresponding interface ILayerIncompatibilityError for errors of type layerIncompatibilityError is now also @legacy @beta.
See this issue for more details.
Change details
Commit: a8532bd
Affected packages:
- @fluidframework/container-definitions
- @fluidframework/core-interfaces
- @fluidframework/driver-definitions
- @fluidframework/odsp-driver-definitions
⬆️ Table of contents
TreeBranch operations throw when called during transactions (#26097)
This breaking change only affects the behavior of TreeBranch methods (currently released as beta).
- Invoking
TreeBranch.fork()now throws an error if a transaction is ongoing on the branch. - Invoking
TreeBranch.merge(sourceBranch)now throws an error if a transaction is ongoing on the source branch. As before, it also throws an error if a transaction is ongoing on the target (i.e.,this) branch. - Invoking
TreeBranch.rebaseOnto(targetBranch)now throws an error if a transaction is ongoing on the target branch. As before, it also throws an error if a transaction is ongoing on the source (i.e.,this) branch.
These new restrictions insulate branches and their dependents from experiencing incomplete transaction changes. This is important because incomplete transaction changes may not uphold application invariants.
In scenarios that experience the new errors, application authors should consider whether the ongoing transaction can safely be closed before invoking these methods.
Change details
Commit: 33b1ec0
Affected packages:
- @fluidframework/tree
- fluid-framework
⬆️ Table of contents
map: Emit valueChanged events for deleted keys after a clear operation (#26102)
When a clear op is processed on SharedMap, valueChanged events are now emitted for each key that was deleted. Previously, only the clear event was emitted with no subsequent valueChanged events.
Change details
Commit: 7c9be0e
Affected packages:
- @fluidframework/map
⬆️ Table of contents
🐛 Bug Fixes
Attendee status fixes on reconnect (#26111)
Fix "Connected" status for Attendees when local client reconnects (intermittent connection or transition from read-only to read-write connection). This includes no longer emitting incorrect "attendeeDisconnected" events.
Change details
Commit: 836f22f
Affected packages:
- @fluidframework/presence
⬆️ Table of contents
Legacy API Changes
Types not intended for consumer implementation/extension are now @Sealed (#26024)
The following types are now explicitly marked as @sealed to indicate that they are not intended for consumer implementation or extension.
MockFluidDataStoreRuntimeclass in@fluidframework/test-runtime-utilsIFluidParentContextinterface in@fluidframework/runtime-definitionsIFluidDataStoreContextinterface in@fluidframework/runtime-definitionsIFluidDataStoreContextDetachedinterface in@fluidframework/runtime-definitions
Change details
Commit: 75a3861
Affected packages:
- @fluidframework/runtime-definitions
- @fluidframework/test-runtime-utils
⬆️ Table of contents
🛠️ Start Building Today!
Please continue to engage with us on GitHub Discussion and Issue pages as you adopt Fluid Framework!