feat(opencode): add context overflow prevention with configurable thresholds #8810
+849
−25
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.
Fixes #8089, #8293, #6286, #6068
Closes #8140
What does this PR do?
Problem
Auto-compaction was not triggering before context limits were exceeded, causing
context_length_exceededAPI errors. Users had no control over when compaction triggered or ability to limit context usage for cost optimization.Solution
#8140 - Configurable context limit and auto-compaction threshold
compaction.thresholdconfig option (0.5-0.99, default 0.9)compaction.maxContextconfig option to override model's context limitshouldCompact()function in compaction.ts with threshold logic#8089, #8293, #6286, #6068 - Prevent context_length_exceeded errors
Config Example
{ "compaction": { "threshold": 0.8, "maxContext": 100000 } }How did you verify your code works?