004de13f14
Two compounding defects in the holographic memory provider (#57682): 1. The on_session_end gate used plain truthiness on auto_extract, but the plugin's own config schema declares it as a string enum with default "false" — and not "false" is False, so extraction ran for users who had it configured off. Coerce with the shared utils.is_truthy_value (same fix class as the merged byterover no-op fix). 2. _auto_extract_facts scanned every role=user message. Context-compaction handoff summaries can be inserted as role=user messages and their prose reliably matches the decision patterns (we decided/agreed, the project uses), so the compactor's own output was persisted as a durable project fact on every rollover following a compaction — recreated even after manual deletion. Adds agent.context_compressor.is_compaction_summary_message(), a public helper that prefers the in-process COMPRESSED_SUMMARY_METADATA_KEY marker and falls back to _is_context_summary_content() (covers merged-into-tail and historical prefixes), since the metadata key is stripped by wire sanitizers and doesn't survive all session-store round-trips. The plugin skips summary messages before pattern matching. Fixes #57682