microsoft/FluidFramework client_v2.101.0
microsoft/FluidFramework
Captured source
source ↗Fluid Framework v2.101.0 (minor)
Repository: microsoft/FluidFramework
Tag: client_v2.101.0
Published: 2026-05-13T20:40:09Z
Prerelease: no
Release notes:
Contents
- [🌳 SharedTree DDS Changes](#user-content--sharedtree-dds-changes)
- [Upgrade LangChain dependencies to v1 (#27259)](#user-content-upgrade-langchain-dependencies-to-v1-27259)
- [🐛 Bug Fixes](#user-content--bug-fixes)
- [Correct some PropertyDDS "MSG" error constant entries (#26971)](#user-content-correct-some-propertydds-msg-error-constant-entries-26971)
- [GC timers are now cancelled when a container closes, not just when it is disposed (#27130)](#user-content-gc-timers-are-now-cancelled-when-a-container-closes-not-just-when-it-is-disposed-27130)
- [Add SharedTreeOptionsBeta.healUnresolvableIdentifiersOnDecode to recover documents with corrupted identifiers (#27281)](#user-content-add-sharedtreeoptionsbetahealunresolvableidentifiersondecode-to-recover-documents-with-corrupted-identifiers-27281)
- [Fix a SharedTree document corruption bug (#27292)](#user-content-fix-a-sharedtree-document-corruption-bug-27292)
- [⚠️ Deprecations](#user-content-️-deprecations)
- [Deprecate LogLevel.default and LogLevel.error (#27207)](#user-content-deprecate-logleveldefault-and-loglevelerror-27207)
- [Legacy API Changes](#user-content-legacy-api-changes)
- [Add legacy beta map compatibility interfaces (#27240)](#user-content-add-legacy-beta-map-compatibility-interfaces-27240)
- [Other Changes](#user-content-other-changes)
🌳 SharedTree DDS Changes
Upgrade LangChain dependencies to v1 (#27259)
@fluidframework/tree-agent-langchain (and the LangChain dev-dependencies on @fluidframework/tree-agent) now target the LangChain v1 line:
@langchain/core:^0.3.80→^1.1.44@langchain/anthropic:^0.3.24→^1.3.28@langchain/google-genai:^0.2.16→^2.1.30@langchain/openai:^0.6.12→^1.4.5
LangChain v1 is backward-compatible for the message, tool, and chat-model APIs that tree-agent-langchain consumes (BaseChatModel, BaseMessage, AIMessage / HumanMessage / SystemMessage / ToolMessage, tool(), bindTools()). No source changes are required for consumers using these APIs. The new contentBlocks content-block API is opt-in.
Consumers of createLangchainChatModel who currently install @langchain/core@^0.3 should bump to @langchain/core@^1.1.43 (the lowest version that satisfies the peer ranges of all v1 sibling integrations—@langchain/google-genai@2.1.30 requires ^1.1.43).
Change details
Commit: `eeebc23`
Affected packages:
- @fluidframework/tree-agent-langchain
- @fluidframework/tree-agent
[⬆️ Table of contents](#user-content-contents)
🐛 Bug Fixes
Correct some PropertyDDS "MSG" error constant entries (#26971)
Several error constants referenced in other PropertyDDS packages did not exist and would produce errors with "undefined" (literal) in error message string. In the past:
OVERRIDEN_PROP_MUST_HAVE_SAME_CONTEXT_AS_BASE_TYPEuse was replaced byOVERRIDEN_PROP_MUST_HAVE_SAME_FIELD_VALUES_AS_BASE_TYPE(but never defined).CANNOT_INSERT_UNKNOWN_PROPERTY,MISMATCHING_PROPERTY_TYPEID, andCANNOT_REMOVE_NON_OPTIONAL_PROPuses were added without defining them.
Those all are now defined MSG properties.
Change details
Commit: `7aec5f1`
Affected packages:
- @fluid-experimental/property-common
[⬆️ Table of contents](#user-content-contents)
GC timers are now cancelled when a container closes, not just when it is disposed (#27130)
Adds an optional close() hook to IRuntime that Container calls on close. ContainerRuntime implements it by cancelling all GC timers (session expiry and unreferenced-node timers) without clearing tracked state.
This prevents the timers from causing memory leaks after a Container is closed but not disposed. In Node.js environments this also prevents the timers from keeping the event loop alive until dispose(). This can reduce the need for Mocha's --exit in tests which create containers which are closed but not disposed.
Disposing of closed containers is still recommended, but it is now less critical for avoiding timer-related hangs after close. Disposal still helps clean up resources and can reduce the size of memory leaks if references to the container are leaked.
Change details
Commit: `86c0fff`
Affected packages:
- @fluidframework/container-definitions
- @fluidframework/container-runtime
[⬆️ Table of contents](#user-content-contents)
Add SharedTreeOptionsBeta.healUnresolvableIdentifiersOnDecode to recover documents with corrupted identifiers (#27281)
A SharedTree bug can result in corrupted documents due to their attach summary compressing identifier-field values in a way that cannot be uncompressed. This bug manifested as remote clients processing the op throwing an error with the message "Unknown op space ID.".
This change adds an option (healUnresolvableIdentifiersOnDecode) to configuredSharedTreeBetaLegacy which will allow documents affected by this bug to load again when enabled. Enabling this option carries some risk, see documentation on the interface itself for more details.
Who is affected
Only SharedTrees attached to a container that was already attached can be impacted. Furthermore, this bug only occurs when the attached tree contains `identifier` fields which contain implicitly generated default values.
Change details
Commit: `d9205dd`
Affected packages:
- fluid-framework
- @fluidframework/tree
[⬆️ Table of contents](#user-content-contents)
Fix a SharedTree document corruption bug (#27292)
A SharedTree bug which could corrupt documents when attaching them to containers has…
Excerpt shown — open the source for the full document.
Notability
notability 3.0/10Routine version bump, not notable.