Skip to content

feat(container-runtime): allow createBlobPayloadPending to be explicitly set to false - #28097

Open
Daniel Madrid (dannimad) wants to merge 1 commit into
mainfrom
dannimad/create-blob-payload-pending-false
Open

feat(container-runtime): allow createBlobPayloadPending to be explicitly set to false#28097
Daniel Madrid (dannimad) wants to merge 1 commit into
mainfrom
dannimad/create-blob-payload-pending-false

Conversation

@dannimad

Copy link
Copy Markdown
Contributor

Description

createBlobPayloadPending on ContainerRuntimeOptions previously only accepted true | undefined. This widens the type to boolean | undefined, so consumers can explicitly pass false to disable the feature (equivalent to leaving it undefined). Also added false as an explicit option in the test-service-load pairwise options matrix for coverage.

This is a non-breaking, backwards-compatible widening of the accepted values at runtime. It does trip the generated backCompat type tests (a narrower type is no longer assignable to the widened type), which have been acknowledged in container-runtime's and aqueduct's package.json (typeValidation.broken), and the corresponding type test files were regenerated.

Reviewer Guidance

The review process is outlined in the pull request guidelines.

  • The type-test breaks are intentional acknowledgements of a type-widening change, not behavioral breaks — please confirm the typeValidation.broken entries in container-runtime/package.json and aqueduct/package.json look correct.

- Widen createBlobPayloadPending option type from true|undefined to
  boolean|undefined in IContainerRuntimeOptionsInternal.
- Include false in the test-service-load options matrix for pairwise
  coverage.
- Acknowledge the resulting backCompat type-test breaks in
  container-runtime and aqueduct package.json, and regenerate the
  affected type test files.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings August 27, 2026 16:30
@github-actions github-actions Bot added area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct area: tools area: runtime Runtime related issues area: repo Repo related work area: website area: tests Tests to add, test infrastructure improvements, etc public api change Changes to a public API changeset-present base: main PRs targeted against main branch labels Aug 27, 2026

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.

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


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

@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

$ start-server-and-test "npm run serve -- --host 127.0.0.1 --no-open" http://127.0.0.1:3000 check-links
1: starting server using command "npm run serve -- --host 127.0.0.1 --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 --host 127.0.0.1 --no-open

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

> fluid-framework-website@0.0.0 check-links
> linkcheck http://127.0.0.1:3000 --skip-file skipped-urls.txt

Crawling...

http://127.0.0.1:3000/docs/data-structures/tree/schema-evolution/feature-flag-schema-upgrades
- (72:12) 'isStaged..' => http://127.0.0.1:3000/docs/api/fluid-framework/treeviewalpha-interface#isstagedupgradeenabled-methodsignature (HTTP 200 but missing anchor)


Stats:
  338443 links
    2041 destination URLs
    2297 URLs ignored
       1 warnings
       0 errors

Error: Command failed with exit code 1: npm run check-links
    at makeError (/home/runner/work/FluidFramework/FluidFramework/website/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/error.js:60:11)
    at handlePromise (/home/runner/work/FluidFramework/FluidFramework/website/node_modules/.pnpm/execa@5.1.1/node_modules/execa/index.js:118:26)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5) {
  shortMessage: 'Command failed with exit code 1: npm run check-links',
  command: 'npm run check-links',
  escapedCommand: '"npm run check-links"',
  exitCode: 1,
  signal: undefined,
  signalDescription: undefined,
  stdout: undefined,
  stderr: undefined,
  failed: true,
  timedOut: false,
  isCanceled: false,
  killed: false
}
[ELIFECYCLE] Command failed with exit code 1.

@github-actions

Copy link
Copy Markdown
Contributor

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

Based on the diff (40 lines, 10 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

@ChumpChief

Copy link
Copy Markdown
Contributor

I think this sounds like it's probably part of what needs to happen, but I'd really like to see that plan of "here's how a vanilla feature uses document schema to ship" first, so we can confirm that any changes to this feature are "just aligning to the normal plan". Just because it's so hard to undo any changes in this space if we realize a different approach is preferable.

@github-actions

Copy link
Copy Markdown
Contributor

Bundle size comparison

Base commit: 915a86a6bec93625346165686adce4f25e92cd6b
Head commit: b4770bac5c0e33879820bef2dac1c1a637c1fa9e

Notable changes

No bundles changed by ≥ 500 bytes parsed.

Per-bundle deltas

@fluid-example/bundle-size-tests

  • fluidFrameworkAllAlpha.js: parsed 802853 → 802909 (+56), gzip 220698 → 220761 (+63)
  • azureClient.js: parsed 633562 → 633594 (+32), gzip 169791 → 169880 (+89)
  • odspClient.js: parsed 604831 → 604977 (+146), gzip 162591 → 162745 (+154)
  • aqueduct.js: parsed 537466 → 537516 (+50), gzip 144387 → 144441 (+54)
  • fluidFramework.js: parsed 412878 → 412911 (+33), gzip 117150 → 117198 (+48)
  • sharedTree.js: parsed 402257 → 402283 (+26), gzip 114578 → 114620 (+42)
  • containerRuntime.js: parsed 314235 → 314250 (+15), gzip 86216 → 86221 (+5)
  • sharedString.js: parsed 175205 → 175212 (+7), gzip 49660 → 49667 (+7)
  • experimentalSharedTree.js: parsed 161812 → 161812 (0), gzip 46711 → 46711 (0)
  • matrix.js: parsed 159584 → 159591 (+7), gzip 45903 → 45911 (+8)
  • loader.js: parsed 147289 → 147305 (+16), gzip 40028 → 40038 (+10)
  • odspDriver.js: parsed 105655 → 105713 (+58), gzip 32926 → 32992 (+66)
  • directory.js: parsed 65635 → 65642 (+7), gzip 18481 → 18489 (+8)
  • 578.js: parsed 58686 → 58686 (0), gzip 17657 → 17657 (0)
  • odspPrefetchSnapshot.js: parsed 45884 → 45865 (-19), gzip 15335 → 15351 (+16)
  • map.js: parsed 45786 → 45793 (+7), gzip 14109 → 14116 (+7)
  • 252.js: parsed 44362 → 44362 (0), gzip 13735 → 13735 (0)
  • summarizerDelayLoadedModule.js: parsed 31287 → 31287 (0), gzip 7929 → 7929 (0)
  • socketModule.js: parsed 26992 → 26962 (-30), gzip 8019 → 8053 (+34)
  • createNewModule.js: parsed 12464 → 12464 (0), gzip 4792 → 4805 (+13)
  • summaryModule.js: parsed 3888 → 3888 (0), gzip 1874 → 1874 (0)
  • connectionState.js: parsed 909 → 909 (0), gzip 500 → 500 (0)
  • sharedTreeAttributes.js: parsed 845 → 852 (+7), gzip 493 → 503 (+10)
  • debugAssert.js: parsed 429 → 429 (0), gzip 299 → 299 (0)
  • FluidFramework-HashFallback.js: parsed 419 → 419 (0), gzip 313 → 313 (0)

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

Labels

area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct area: repo Repo related work area: runtime Runtime related issues area: tests Tests to add, test infrastructure improvements, etc 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.

3 participants