fix(app): filter non-renderable part types from browser store#18926
Merged
adamdotdevin merged 1 commit intoanomalyco:devfrom Mar 24, 2026
Merged
fix(app): filter non-renderable part types from browser store#18926adamdotdevin merged 1 commit intoanomalyco:devfrom
adamdotdevin merged 1 commit intoanomalyco:devfrom
Conversation
Skip patch, step-start, and step-finish parts at the store boundary. These types have no PART_MAPPING entry and are never rendered by SessionTurn. For sessions with large snapshot diffs (e.g. 17 MB patch with 99K file entries), this prevents SolidJS from creating deep reactive proxies over massive arrays that freeze the browser.
Contributor
|
Hey! Your PR title Please update it to start with one of:
Where See CONTRIBUTING.md for details. |
Contributor
|
Thanks for updating your PR! It now meets our contributing guidelines. 👍 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue for this PR
Closes #18922
Type of change
What does this PR do?
Part types
patch,step-start, andstep-finishhave noPART_MAPPINGentry and are never rendered bySessionTurn(partState()returnsundefinedfor them). However, they are loaded into the SolidJS reactive store via both SSE events and the initial page load. For sessions with large snapshot diffs (e.g. 17 MB patch with 99K file entries), SolidJS creates deep reactive proxies over massive arrays, freezing the browser.Adds a
SKIP_PARTSset and filters these types at both store entry points:event-reducer.ts: early break inmessage.part.updatedhandlersync.tsx: filter parts during page load before store insertionFor the problematic session this reduces data in the browser store from 24 MB to ~7 MB.
How did you verify your code works?
bun testpasses forpackages/app(291/291)Checklist