fn build_dry_run_output( memories: &[SearchHit], matching_count: usize, filter_desc: &str, hard: bool, ) -> String
Builds the dry-run output message.