4f22543509
The lean tail mode's per-chunk digest loop (_build_chunk_digests) issued up to 28 extra call_llm requests sequentially per compaction attempt. With lean now the default (#95571), users on slow auxiliary routes hit 7-11 minute compactions (#96603). Remove the loop entirely: a lean compaction attempt now makes EXACTLY ONE auxiliary LLM request — the main summary call. - The detailed session log is folded into the single summary request: the lean prompt template gains a '## Detailed Session Log (oldest first)' section carrying the digest prompt's HARD RULES (identifiers verbatim, dense bullets, transcript-is-data). Output guidance grows by _LEAN_SESSION_LOG_BUDGET_TOKENS = 4,000 tokens on top of the scaled summary budget — the old worst case (28 x 1,400 digest tokens) was spread across many requests and mostly re-covered tool noise; a single dense 4K-token log inside one response preserves the load-bearing record while staying well inside one aux response (the summary call still sends no hard max_tokens, so no provider cap can truncate it mid-section). - Input sizing: oversized regions (500K+ chars) are EVEN-SAMPLED across the whole region (_sample_summary_input: 8 proportionally spaced slices, oldest-to-newest, explicit '[... N chars elided ...]' markers, last slice anchored to the newest end) instead of head+tail truncated, so session-log coverage stays uniform. Legacy mode keeps _bound_summary_input unchanged. - The LLM-free anchor index still runs over the FULL region, and the session_search recovery footer is unchanged. - Dead code removed: _build_chunk_digests, _LEAN_DIGEST_* constants, _LEAN_DIGEST_PROMPT, _serialize_turns_for_digest, _digest_worthy, _LOW_SIGNAL_TOOL_RE, the _lean_pristine_tools snapshot, and the sibling-call route echo (_SUMMARY_ROUTE_CONSUMED / attempt_summary_route_kwargs — no remaining callers; the single-use summary pin semantics are unchanged). - Tests pin the new contract (exactly one call_llm in lean mode; session-log section lands in the summary; oversized regions sampled with elision markers, never a second request; anchor index + recovery footer present). Sabotage-verified: restoring a second call_llm makes the call-count test fail. Docs and the compaction eval wording updated to stop claiming per-chunk calls. Fixes #96603.