fix: preserve BubbleBench container compatibility - #27928
Conversation
Use Fluid-owned iterable contracts and a minimal read-only bubble collection so both SharedTree arrays and native arrays satisfy BubbleBench's shared model types. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Hi! Thank you for opening this PR. Want me to review it? Based on the diff (23 lines, 4 files), I've queued these reviewers:
How this works
|
There was a problem hiding this comment.
Pull request overview
This PR updates BubbleBench’s shared types and container adapters to use FluidIterable and a minimal “bubble collection” contract, keeping the benchmark compatible with both Fluid Tree array nodes and native JavaScript arrays without requiring full Array semantics.
Changes:
- Introduces a minimal
ReadonlyBubbleCollectioncontract forIClient.bubblesand switchesIAppState.clientstoFluidIterable. - Updates the OT, experimental-tree, and shared-tree adapters to expose
clientsasFluidIterable. - Adds a standalone (no-package) changeset documenting the compatibility fix for release notes.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| examples/benchmarks/bubblebench/shared-tree/src/appState.ts | Updates clients to return FluidIterable for compatibility with Tree arrays. |
| examples/benchmarks/bubblebench/ot/src/state.ts | Adjusts the array-ish adapter contract to use FluidIterable instead of Iterable. |
| examples/benchmarks/bubblebench/experimental-tree/src/state.ts | Updates clients to FluidIterable to align with the shared contract. |
| examples/benchmarks/bubblebench/common/src/types.ts | Introduces ReadonlyBubbleCollection and switches clients to FluidIterable in the shared types. |
| .changeset/preserve-bubblebench-container-compatibility.md | Adds a no-package changeset entry documenting the fix in release notes. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Bundle size comparisonBase commit: Notable changesNo bundles changed by ≥ 500 bytes parsed. Per-bundle deltas
|
Description
BubbleBench needs to support both Fluid Tree arrays and native arrays. This PR introduces a minimal shared collection contract so the benchmark remains compatible with both container implementations without requiring the full built-in array interface.
This is an internal-only change to private BubbleBench packages, so it does not include a changeset.
Validation performed:
git diff --check upstream/main...HEADbuild:compilefor all five BubbleBench packages:common,baseline,ot,experimental-tree, andshared-treeot,experimental-tree, andshared-tree(all passed)Reviewer Guidance
The review process is outlined on this wiki page.
The diff is limited to the shared BubbleBench collection type and its three Tree/OT adapters.