pub fn build_compression_content(conv: &Conversation) -> (String, usize)Expand description
Build content for LLM compression.
Strategy: keep the last KEEP_MESSAGES messages at full fidelity,
compress everything before that into one-line-per-round summaries.
Returns (compressed_text, number_of_messages_to_remove).
This operates at MESSAGE level, not turn level, because turn_tracker
counts user messages (1 user msg = 1 turn) but a single user message
can produce 15+ LLM calls with 35+ messages.