Skip to content

Merge main into test/client/presence-refactor#24310

Merged
WillieHabi merged 8 commits into
test/client/presence-refactorfrom
main
Apr 10, 2025
Merged

Merge main into test/client/presence-refactor#24310
WillieHabi merged 8 commits into
test/client/presence-refactorfrom
main

Conversation

@WillieHabi
Copy link
Copy Markdown
Contributor

Title

ChumpChief and others added 8 commits April 9, 2025 10:39
Adding a skipped test which reproduces a inconsistency in merge tree
related to rollback

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
## Description

Historian denyList is used to prevent DoS issues with our services.
However, we do not need to use the denyList for delete ops. This PR
removes the denyList from ops that are handled by the delete APIs of
Historian.
…at for old loader) (#24276)

We need to flush whenever incoming ops are processed (even non-runtime
ops), since we track the reference sequence number of the in-progress
batch and throw if it ever changes mid-batch. For this reason, we
recently started calling `flush` in `ContainerRuntime.process`.

In old loader code, `ContainerRuntime.process` is only called for
runtime messages, so it is possible for the reference sequence number to
advance without ContainerRuntime flushing.

This change adds another flush call in response to DeltaManager's "op" event
to close this gap.

It's ok to call flush extra, it's a cheap no-op if there's nothing
there.
## Bug
Recursively assinging an unhydrated and unparented node to itself hangs
forever. Note that doing the same for a parented node does throw a usage
error (added a test for this scenario)

## Fix
The root-cause of this bug is that it is stuck in a while loop in
`TreeNodeKernel` trying to emit `subtreeChangedAfterBatch` event for the
sub-tree of the node.
Added logic in `adoptBy` to detect recursion and throw a usage error.
This is where the logic to detect this for parent node happens.


[AB#32207](https://dev.azure.com/fluidframework/235294da-091d-4c29-84fc-cdfc3d90890b/_workitems/edit/32207)
## Description

Remove alpha+legacy tagging on some non-exported API.

Group exports to indicate which ones are actually intended to be used.
…oundBatchMessage in Outbox and related code (#24287)

This is a glorified "rename", splitting the type
`BatchMessage` into two cases: `LocalBatchMessage` and
`OutboundBatchMessage`, converting between the two when necessary.

The intention is to change no behavior with this change. Here are the
non-typing changes (that affect runtime code):

* Renaming the property `contents` to `serializedOp` for the Local batch
case
* Shallow-copy the whole batch and each message in
`Outbox.virtualizeBatch` to convert from `LocalBatch` to
`OutboundBatch`.
* This is where we copy `serializedOp` over to `contents`, which paves
the way for `serializedOp` to stop being serialized in the next PR,
which is the end goal here
* Minor refactoring of `createEmptyGroupedBatch` to support both
Local/Outbound forms

### Context

As ops are accumulated into a batch in the ContainerRuntime, they're
currently serialized immediately. However, we plan to keep those
unserialized, and only stringify when virtualizing (grouping,
compressing) in preparation to send to the server. See #24281.

This is the first step there. We should model pre/post virtualized
batches differently because they are different. pre-virtualization batch
messages are called `LocalBatchMessage` and post-virtualization are
called `OutboundBatchMessage`.
Removes lerna.json files since they are no longer used. Also removes
pipeline references to lerna.json, and cleans up a few other references
in other files.

There is a reference to lerna in a comment in the mocha-test-setup
project. I left it as-is, because it still seems relevant.

Split off from #24072.
@WillieHabi WillieHabi requested review from a team as code owners April 10, 2025 14:00
@WillieHabi WillieHabi changed the title Merge main into presence-refactor Merge main into test/client/presence-refactor Apr 10, 2025
@WillieHabi WillieHabi closed this Apr 10, 2025
@WillieHabi WillieHabi reopened this Apr 10, 2025
@WillieHabi WillieHabi merged commit 64c1b26 into test/client/presence-refactor Apr 10, 2025
160 of 163 checks passed
WillieHabi added a commit to WillieHabi/FluidFramework that referenced this pull request Apr 11, 2025
WillieHabi added a commit to WillieHabi/FluidFramework that referenced this pull request Apr 11, 2025
WillieHabi added a commit to WillieHabi/FluidFramework that referenced this pull request Apr 11, 2025
WillieHabi added a commit to WillieHabi/FluidFramework that referenced this pull request Apr 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants