feat(context): lower default compaction threshold to 150K#37
Merged
Conversation
Default CONTEXT_WINDOW drops from 1M to 200K, threshold from 0.8 to 0.75 (effective budget 150K tokens). At the old 800K budget a multi-PR session could exhaust a Claude 5-hour rate-limit window before compaction ever triggered. - Added env overrides: MAX_CONTEXT_WINDOW, MAX_COMPACT_THRESHOLD, MAX_KEEP_RECENT - Log effective values once per process (first transformContext call) - Documented in README under "Context sizing" - .env.example updated Providers with cheap long context (Gemini direct, 1M-context models) can raise MAX_CONTEXT_WINDOW back up. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
CONTEXT_WINDOW: 1M → 200K defaultCOMPACT_THRESHOLD: 0.8 → 0.75 (effective budget: 150K tokens)MAX_CONTEXT_WINDOW,MAX_COMPACT_THRESHOLD,MAX_KEEP_RECENTWhy
Yesterday's quota exhaustion: at the old 800K budget, a multi-step session resends history on every tool iteration. The Claude subscription 5-hour rate-limit window fills long before compaction kicks in. 150K is a safe default for that path; Gemini direct or long-context Anthropic keys can set the window back up via env.
Test plan
npm test— all greennpm run build— cleanContext sizing: window=200000 threshold=150000 ...🤖 Generated with Claude Code