Skip to content

Advance oldestSupportedClient (formerly MinimumVersionForCollab) lower bound to 2.0.0 in Client 3.0 #27460

Description

Broken API or pattern

Client 3.0 should no longer support active cross-client collaboration with Fluid Framework 1.x clients. The canonical compatibility setting is oldestSupportedClient, typed as OldestSupportedClientVersion.

The Client 3.0 type and runtime validation should accept supported 2.x and 3.x values and reject actual client versions below 2.0.0. The deprecated minVersionForCollab property and MinimumVersionForCollab type alias inherit the same lower-bound restriction while they remain available.

Legacy terminology

This setting was formerly exposed as the minVersionForCollab property and MinimumVersionForCollab type. The preferred names were introduced in PR #27806, and removal of the deprecated names is tracked in issue #27851. The older names remain in this issue so historical searches and references still connect to the current API.

Persisted document-schema fields and telemetry properties continue to use minVersionForCollab.

Migration guidance

Before upgrading an application to Client 3.0:

  1. Ensure every active deployment that must collaborate is using Fluid Framework 2.0.0 or later.
  2. Configure oldestSupportedClient to the oldest active Fluid version the application must support.
  3. Remove any 1.x compatibility configuration.

If an active deployment is still below 2.0.0, wait for that deployment to age out or upgrade before adopting Client 3.0. Loading historical data remains a separate data-at-rest compatibility concern.

Internal historical-default sentinel

The internal value 2.0.0-defaults is not a deployable client version and does not represent continued 1.x collaboration support. It preserves the runtime defaults used before callers had to choose an explicit compatibility value and remains necessary for cross-version tests and replay tooling.

It is behaviorally distinct from explicit 2.0.0 (for example, explicitSchemaControl remains disabled for the historical sentinel). The lower-bound implementation must preserve that distinction rather than normalizing all sentinel behavior to explicit 2.0.0.

Dependencies and sequencing

  • Depends on the requiredness preparation tracked in issue #27180.
  • Must preserve the final Client 3.x OldestSupportedClientVersion shape established by PR #28022.
  • The implementation PR is PR #27972, which should be rebuilt on the final prerequisite stack.

Packages and surfaces

  • @fluidframework/runtime-definitions — narrow OldestSupportedClientVersion and deprecated MinimumVersionForCollab.
  • @fluidframework/runtime-utils — advance the runtime floor while preserving the internal sentinel.
  • @fluidframework/container-runtime — reject unsupported 1.x customer inputs and remove unreachable 1.x defaults.
  • Service clients, Aqueduct, Tree, and aggregate/re-export surfaces — inherit the final type and migration guidance.
  • Cross-client test infrastructure — remove active 1.x matrix entries while retaining historical data-at-rest coverage.

Expected timeline

Client 3.0.0

Metadata

Metadata

Assignees

Labels

breaking changeThis PR or issue would introduce a breaking change

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions