remem-ai 0.3.8

Persistent memory for Claude Code — single binary, zero subprocesses
Documentation
use crate::memory_format;

pub struct ParsedSummary {
    pub request: Option<String>,
    pub completed: Option<String>,
    pub decisions: Option<String>,
    pub learned: Option<String>,
    pub next_steps: Option<String>,
    pub preferences: Option<String>,
}

pub fn parse_summary(text: &str) -> Option<ParsedSummary> {
    if text.contains("<skip_summary") {
        return None;
    }

    let start = text.find("<summary>")? + "<summary>".len();
    let end = start + text[start..].find("</summary>")?;
    let content = &text[start..end];

    Some(ParsedSummary {
        request: memory_format::extract_field(content, "request"),
        completed: memory_format::extract_field(content, "completed"),
        decisions: memory_format::extract_field(content, "decisions"),
        learned: memory_format::extract_field(content, "learned"),
        next_steps: memory_format::extract_field(content, "next_steps"),
        preferences: memory_format::extract_field(content, "preferences"),
    })
}