(messages: &[ConversationMessage])
| 270 | } |
| 271 | |
| 272 | fn infer_current_work(messages: &[ConversationMessage]) -> Option<String> { |
| 273 | messages |
| 274 | .iter() |
| 275 | .rev() |
| 276 | .filter_map(first_text_block) |
| 277 | .find(|text| !text.trim().is_empty()) |
| 278 | .map(|text| truncate_summary(text, 200)) |
| 279 | } |
| 280 | |
| 281 | fn first_text_block(message: &ConversationMessage) -> Option<&str> { |
| 282 | message.blocks.iter().find_map(|block| match block { |
no test coverage detected