The marker AgentMessage::summary prefixes onto a compaction summary.
A summary is an ordinary User message with no distinguishing field, so
this string IS the discriminator: readers that must not mistake a summary
for something the user typed (crate::title::excerpt,
main.rs::first_user_line_of) match on it.
The text of the most recent Assistant message, if any — a compact “what it
last said” for a status read (see crate::protocol::Request::Status). Joins
the assistant’s Text blocks with newlines; None when there is no assistant
message or its text is blank.