v1.9.0: Nudge starts at the budget; error tightened to 2×
Behavior changes
Two deliberate tier adjustments. The full ladder (@ default budget 400): 200 / 400 / 600 / 700 / 800 — excellent / budget=nudge / warning / forced rewrite / error.
1. The light nudge now starts at the budget itself (1.25× → 1.0×)
tokenBudget is documented as "a target — files over it get nudged", but the old 1.25× ratio left a silent band: a file at 631 tokens under a 550 budget got no nudge, no warning — nothing. Crossing the budget now triggers the light "drifting — tighten this up" reminder, so the budget number actually means something.
2. Validator error tightened to double the budget (2.5× → 2.0×)
The 2.5× was an artifact of the historical 1000/400 constants, not a design choice. 2× is the natural "double the budget" line. In practice this is rarely the first defense — the 1.75× tier already forces a rewrite/split before a file reaches error.
What you'll notice
- Files between 1.0×–1.25× of budget (400–500 @ default) now get a light nudge where they were previously silent.
- Files between 2.0×–2.5× (800–1000 @ default) are now validation errors instead of warnings.
compress_ai_readmeon a file just over budget now hands off to the LLM rewrite flow instead of reporting "already concise".
No API changes.