Performance: Context builder crashes on massive minified JS files - #254
Open
pradeep0153 wants to merge 1 commit into
Open
Performance: Context builder crashes on massive minified JS files#254pradeep0153 wants to merge 1 commit into
pradeep0153 wants to merge 1 commit into
Conversation
|
@pradeep0153 is attempting to deploy a commit to the sreerevanth's projects Team on Vercel. A member of the Team first needs to authorize it. |
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.
Closes #239.
Description
This PR resolves a catastrophic performance bottleneck within the global Repository Ingestion architecture that was actively crashing the agent. The
context_builder.pymodule enforces a 512KB cap on file size, but it was highly vulnerable to memory/CPU spikes when processing minified files.If a repository contained a 400KB
bundle.min.jsfile consisting of a single, continuous line of text, the keyword scoring algorithm (context_builder.py) attempted to tokenize and score the file. Because the regex/tokenizer wasn't optimized for single-line files of this magnitude, it violently choked the main thread. The agent took over 45 seconds just to score the file before even contacting the LLM, completely destroying the developer experience and artificially inflating execution times.Changes Made
context_builder.py.repo_ingestion.pynow intelligently detects minified or generated files (e.g., checking if the average line length exceeds 5,000 characters or checking for common.min.jsextensions). It automatically flags these files asis_generated=Trueand mathematically excludes them from the LLM context payload entirely, regardless of the 512KB size cap.Impact