Skip to content

 feat(odsp-driver): support point-in-time loading in factory core - #28007

Open
Sonali Deshpande (sonalideshpandemsft) wants to merge 6 commits into
microsoft:mainfrom
sonalideshpandemsft:pointInTime/mv-beta
Open

 feat(odsp-driver): support point-in-time loading in factory core#28007
Sonali Deshpande (sonalideshpandemsft) wants to merge 6 commits into
microsoft:mainfrom
sonalideshpandemsft:pointInTime/mv-beta

Conversation

@sonalideshpandemsft

@sonalideshpandemsft Sonali Deshpande (sonalideshpandemsft) commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Adds optional point-in-time loading support to OdspDocumentServiceFactoryCore. The standard OdspDocumentServiceFactory inherits this capability, while LocalOdspDocumentServiceFactory leaves it undefined.

This removes the separate point-in-time factory implementation while preserving the existing factory function, interface, and package exports.

This change would make it easier for bohemia to consume point-in-time load since OdspDocumentServiceFactory will support point-in-time loading directly.

@github-actions github-actions Bot added area: tools area: driver Driver related issues area: repo Repo related work area: website area: odsp-driver public api change Changes to a public API changeset-present base: main PRs targeted against main branch labels Aug 18, 2026
@sonalideshpandemsft
Sonali Deshpande (sonalideshpandemsft) marked this pull request as ready for review August 18, 2026 21:47
Copilot AI lite review requested due to automatic review settings August 18, 2026 21:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds optional point-in-time (sequence-number-based) loading support directly to OdspDocumentServiceFactoryCore, so the standard OdspDocumentServiceFactory can be used for both normal and point-in-time loads without a separate point-in-time factory class.

Changes:

  • Moves the point-in-time factory capability into OdspDocumentServiceFactoryCore via an optional createPointInTimeDocumentService function property.
  • Updates exports so getOdspPointInTimeDocumentServiceFactory and IPointInTimeDocumentServiceFactory remain available from the public package surface, while removing the dedicated point-in-time factory implementation file.
  • Adds coverage to ensure the local ODSP factory explicitly does not expose point-in-time loading.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/drivers/odsp-driver/src/test/odspPointInTimeDocumentServiceFactory.spec.ts Updates imports and adds a test asserting the local factory does not expose PIT loading.
packages/drivers/odsp-driver/src/pointInTimeDriver/odspPointInTimeDocumentServiceFactory.ts Removes the dedicated PIT factory implementation (logic now lives in the core factory).
packages/drivers/odsp-driver/src/odspDocumentServiceFactoryCore.ts Introduces IPointInTimeDocumentServiceFactory and implements optional PIT creation on the core factory.
packages/drivers/odsp-driver/src/odspDocumentServiceFactory.ts Re-exports the PIT interface and preserves getOdspPointInTimeDocumentServiceFactory on the main factory module.
packages/drivers/odsp-driver/src/localOdspDriver/localOdspDocumentServiceFactory.ts Explicitly overrides createPointInTimeDocumentService to undefined for the local factory.
packages/drivers/odsp-driver/src/index.ts Updates public exports to surface PIT factory function/type from odspDocumentServiceFactory.
packages/drivers/odsp-driver/api-report/odsp-driver.legacy.beta.api.md Updates API report to include the new optional PIT capability on the core factory.
packages/drivers/odsp-driver/api-report/odsp-driver.legacy.alpha.api.md Updates API report to include the new optional PIT capability on the core factory.
.changeset/ready-peaches-juggle.md Adds a changeset documenting the new PIT capability on the standard ODSP factory.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@github-actions

github-actions Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Hi! Thank you for opening this PR. Want me to review it?

Based on the diff (532 lines, 9 files), I've queued these reviewers:

  • Correctness — logic errors, race conditions, lifecycle issues
  • Security — vulnerabilities, secret exposure, injection
  • API Compatibility — breaking changes, release tags, type design
  • Performance — algorithmic regressions, memory leaks
  • Testing — coverage gaps, hollow tests

How this works

  • Adjust the reviewer set by ticking/unticking boxes above. Reviewer toggles alone don't trigger anything.

  • Tick Start review below to dispatch the review fleet.

  • After review finishes, tick Start review again to request another run — it auto-resets after each dispatch.

  • This comment updates as new commits land; your reviewer selections are preserved.

  • Start review

Comment thread .changeset/ready-peaches-juggle.md Outdated
---
Enable point-in-time loading on the standard ODSP document service factory

`OdspDocumentServiceFactoryCore` now exposes the optional

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nit: can we link to the API documentation for these? E.g.

Suggested change
`OdspDocumentServiceFactoryCore` now exposes the optional
[`OdspDocumentServiceFactoryCore`](https://fluidframework.com/docs/api/odsp-driver/odspdocumentservicefactorycore-class) now exposes the optional

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

(Ideally we can link the others as well)

Comment thread packages/drivers/odsp-driver/src/odspDocumentServiceFactory.ts Outdated
Comment thread packages/drivers/odsp-driver/src/odspDocumentServiceFactoryCore.ts Outdated
Comment thread packages/drivers/odsp-driver/src/odspDocumentServiceFactoryCore.ts Outdated
OdspDocumentServiceFactoryCore,
} from "./odspDocumentServiceFactoryCore.js";

export type { IPointInTimeDocumentServiceFactory } from "./odspDocumentServiceFactoryCore.js";

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Do we need to re-export this type from this module? Can't users just import from the other one?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Re-opened one existing comment, and left 1 new question. Otherwise, API and docs changes look good to me. Someone who knows this space better than I do should probably approve too before merging though 😋

@github-actions

Copy link
Copy Markdown
Contributor

🔗 Found some broken links! 💔

Run a link check locally to find them. See Checking for Broken Links for more information.

linkcheck output

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"


> fluid-framework-website@0.0.0 serve
> docusaurus serve --no-open

[SUCCESS] Serving "build" directory at: http://localhost:3000/
[ELIFECYCLE] Command failed with exit code 1.

@github-actions

Copy link
Copy Markdown
Contributor

Bundle size comparison

Base commit: 53eb97dcb06a9563caf37275f89f20b28104461d
Head commit: d87e12321c7f18a8092695bdbc9107134bd5a1b4

Pending — Build - client packages is running. Results will appear here when the build completes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: driver Driver related issues area: odsp-driver area: repo Repo related work area: tools area: website 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.

4 participants