perf: Lazy-load loader input/output to reduce data volume by 90%+#1525
Merged
perf: Lazy-load loader input/output to reduce data volume by 90%+#1525
Conversation
…olume Co-authored-by: yifancong <18437716+yifancong@users.noreply.github.com>
Co-authored-by: yifancong <18437716+yifancong@users.noreply.github.com>
…dencies Co-authored-by: yifancong <18437716+yifancong@users.noreply.github.com>
Co-authored-by: yifancong <18437716+yifancong@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Improve UI performance by reducing loader data volume
Lazy-load loader input/output to reduce data volume by 90%+
Feb 4, 2026
Deploying rsdoctor with
|
| Latest commit: |
e36dcfb
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://33ddd113.rsdoctor.pages.dev |
| Branch Preview URL: | https://copilot-reduce-loader-data-v.rsdoctor.pages.dev |
Contributor
There was a problem hiding this comment.
Pull request overview
Reduces loader-related payload sizes by removing large input/result code blobs from loader detail responses and fetching them only when needed, improving UI responsiveness for large manifests.
Changes:
- Strip
input/resultfromgetLoaderFileDetails()and update theGetLoaderFileDetailsresponse type accordingly. - Fix
APIDataLoaderrouting forGetLoaderFileInputAndOutputto correctly fetch per-loader code on demand. - Update
LoaderExecutionsto request loader code viaGetLoaderFileInputAndOutput, and add unit tests for the new behavior.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/utils/src/common/loader.ts | Omits large input/result fields from loader details response. |
| packages/utils/src/common/data/index.ts | Fixes GetLoaderFileInputAndOutput dispatch to call the correct loader utility with correct params. |
| packages/types/src/sdk/server/apis/loader.ts | Updates API response typing for GetLoaderFileDetails to omit input/result. |
| packages/components/src/components/Loader/executions.tsx | Switches loader code display to on-demand fetching via ServerAPIProvider. |
| packages/utils/tests/common/loader.test.ts | Adds tests asserting stripped fields and on-demand input/output retrieval. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
90c5439 to
c3ae899
Compare
yifancong
approved these changes
Feb 10, 2026
fansenze
approved these changes
Feb 10, 2026
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.
Loader data includes
inputandresultcode strings that can reach hundreds of KB per loader, causing transfer sizes of 100+ MB and UI degradation. These fields are rarely viewed but always transmitted.Changes
API Layer - Strip large fields from detail responses
getLoaderFileDetails()now omitsinput/resultfieldsGetLoaderFileInputAndOutputAPI correctly fetches code on-demand (fixed implementation bug)Omit<LoaderTransformData, 'input' | 'result'>UI Layer - Fetch code when user views it
LoaderExecutionscomponent lazy-loads viauseEffectwhen "Loader Details" tab becomes activeImpact: Initial loader detail requests reduced from ~hundreds of KB to ~10 KB per file. Code still available but fetched only when user switches to code view tab.
Original prompt
This pull request was created from Copilot chat.
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.
Related MR: #1521