pub fn build_forced_compression_candidate_plan(
session: &Session,
model_name: &str,
configured_budget: Option<&TokenBudget>,
summary_target_ratio: f64,
trigger_type: CompressionTriggerType,
) -> Result<CompressionCandidatePlan, CompressionPlanError>Expand description
Select the exact archive candidates before invoking the summarization model.
Candidate segments are considered oldest-first. Generic tool chains remain
atomic because selection operates on crate::MessageSegmenter output;
newest user turns, never_compress, and skill chains remain active.