v0.20.0 — Context-optimizer compression upgrades
Context-optimizer compression upgrades (#65), now documented and released.
Added
- Pluggable optimizer backend —
NADIRCLAW_OPTIMIZE_BACKEND=native(default) orheadroom(opt-in viapip install nadirclaw[headroom], Apache-2.0). Headroom is fail-open: absent/error → transparent fallback to native, requests never fail. - Progressive (staged) compression —
--optimize progressiveescalatesnative_safe → native_aggressive → headroom_structural → headroom_mland stops as soon asNADIRCLAW_OPTIMIZE_TARGET_TOKENSis met. Dependency-free and lossless by default. Newcompress_progressive()library entrypoint. - Columnar JSON-array packing (
json_array_pack, aggressive mode) — lossless, reversible packing of homogeneous object arrays (~68% vs pretty JSON). - Native CCR (
nadirclaw/ccr.py) — deterministic offload +nadir_retrievefetch-back loop (library-only for now).
Fixed
- Whitespace normalization corrupted unfenced source code — it flattened leading indentation of file-read tool outputs into invalid syntax; now preserves indentation in both safe and aggressive modes.
See the CHANGELOG and savings analysis.