pub fn compress_progressive( segments: &[String], budget_tokens: usize, ) -> Vec<String>
segments[0] is oldest, segments[last] newest. Budget follows exponential weights toward recent slices.
segments[0]
segments[last]