Skip to content

Conversation

@agarwal-navin
Copy link
Contributor

Description

The property getSnapshotTree is now required on IChannelStorageService.

Breaking Changes

This is a breaking change. This API was added and the upcoming break was announced in release 2.51.0 here.

Copilot AI review requested due to automatic review settings October 16, 2025 17:17
@agarwal-navin agarwal-navin requested review from a team as code owners October 16, 2025 17:17
@github-actions github-actions bot added area: dds Issues related to distributed data structures area: dds: tree area: runtime Runtime related issues changeset-present public api change Changes to a public API base: main PRs targeted against main branch labels Oct 16, 2025
@agarwal-navin agarwal-navin linked an issue Oct 16, 2025 that may be closed by this pull request
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR makes getSnapshotTree a required method on IChannelStorageService and updates implementations and type validation accordingly.

  • Changes IChannelStorageService signature from optional to required and propagates usage (removes optional chaining).
  • Adds createSnapshotTreeFromContents utility with accompanying tests.
  • Updates type validation metadata and removes LocalChannelStorageService (and its tests) which did not implement the new required API.

Reviewed Changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
packages/runtime/datastore-definitions/src/channel.ts Makes getSnapshotTree required in the interface.
packages/dds/tree/src/shared-tree-core/sharedTreeCore.ts Adjusts call site to required method (drops optional chaining).
packages/runtime/runtime-utils/src/objectstoragepartition.ts Implements required getSnapshotTree passthrough.
packages/runtime/test-runtime-utils/src/mocks.ts Adds snapshot tree creation & implements getSnapshotTree in mock storage.
packages/runtime/test-runtime-utils/src/test/mocks.spec.ts Adds tests for createSnapshotTreeFromContents.
packages/runtime/datastore-definitions/src/test/types/validateDatastoreDefinitionsPrevious.generated.ts Marks expected type validation breaks.
packages/runtime/test-runtime-utils/src/test/types/validateTestRuntimeUtilsPrevious.generated.ts Marks expected type validation breaks.
packages/runtime/datastore-definitions/package.json Adds broken forward compatibility entries.
packages/runtime/test-runtime-utils/package.json Adds broken forward compatibility entries.
packages/runtime/test-runtime-utils/api-report/test-runtime-utils.legacy.beta.api.md API report updated with required method (undocumented).
packages/runtime/datastore-definitions/api-report/datastore-definitions.legacy.beta.api.md API report reflects required method.
packages/runtime/datastore/src/localChannelStorageService.ts Removes implementation that lacked required method.
packages/runtime/datastore/src/test/localChannelStorageService.spec.ts Removes tests for removed implementation.
.changeset/heavy-mails-pay.md Records breaking change release notes.

Copy link
Contributor

@jason-ha jason-ha left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved with suggestion for changeset update to point to the issue.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Appears to be required dead code removal (as opposed to fixing to conform to new requirements), right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved this to a separate PR. This one now only contains breaking changes.

@github-actions
Copy link
Contributor

🔗 Found some broken links! 💔

Run a link check locally to find them. See
https://github.com/microsoft/FluidFramework/wiki/Checking-for-broken-links-in-the-documentation for more information.

linkcheck output


> [email protected] ci:check-links /home/runner/work/FluidFramework/FluidFramework/docs
> start-server-and-test "npm run serve -- --no-open" 3000 check-links

1: starting server using command "npm run serve -- --no-open"
and when url "[ 'http://127.0.0.1:3000' ]" is responding with HTTP status code 200
running tests using command "npm run check-links"


> [email protected] serve
> docusaurus serve --no-open

[SUCCESS] Serving "build" directory at: http://localhost:3000/

> [email protected] check-links
> linkcheck http://localhost:3000 --skip-file skipped-urls.txt

 ELIFECYCLE  Command failed with exit code 1.

Copy link
Contributor

@Josmithr Josmithr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docs changes look good

@agarwal-navin agarwal-navin merged commit d1c4c0a into main Oct 23, 2025
47 checks passed
@agarwal-navin agarwal-navin deleted the test/breaks/client/2.70/getSnapshotTreeRequired branch October 23, 2025 22:35
anthony-murphy-agent pushed a commit to anthony-murphy-agent/FluidFramework that referenced this pull request Jan 14, 2026
## Description
The property `getSnapshotTree` is now required on
`IChannelStorageService`.

## Breaking Changes
This is a breaking change. This API was added and the upcoming break was
announced in release 2.51.0
[here](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.51.0#user-content-new-getsnapshottree-api-on-ichannelstorageservice-24970).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: dds: tree area: dds Issues related to distributed data structures area: runtime Runtime related issues base: main PRs targeted against main branch changeset-present public api change Changes to a public API

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make "getSnapshotTree" required on "IChannelStorageService"

5 participants