### Generate session guide Source: https://github.com/ojuschugh1/sqz/blob/main/docs/doc/src/sqz_engine/session_continuity.rs.html Creates a structured XML-wrapped guide from snapshot events, categorized by type and capped by character limits. ```rust pub fn generate_guide(&self, snapshot: &Snapshot) -> SessionGuide { // Collect events grouped by category label, preserving priority order. // We use an ordered list of (label, entries) to keep output deterministic. let category_order: &[SnapshotEventType] = &[ SnapshotEventType::LastPrompt, SnapshotEventType::Error, SnapshotEventType::Decision, SnapshotEventType::PendingTask, SnapshotEventType::ActiveFile, SnapshotEventType::GitOp, SnapshotEventType::Rule, SnapshotEventType::ToolUse, SnapshotEventType::Warning, SnapshotEventType::Learning, SnapshotEventType::Progress, SnapshotEventType::Context, SnapshotEventType::Environment, SnapshotEventType::Dependency, SnapshotEventType::Summary, ]; // Group events by type. let mut groups: std::collections::HashMap> = std::collections::HashMap::new(); for event in &snapshot.events { groups .entry(event.event_type) .or_default() .push(&event.content); } // Build the inner body, respecting the char budget. // Reserve space for the XML wrapper (~50 chars). let wrapper_overhead = "\n\n".len(); let body_budget = MAX_GUIDE_CHARS.saturating_sub(wrapper_overhead); let mut body = String::with_capacity(body_budget); for &cat in category_order { if let Some(entries) = groups.get(&cat) { let label = cat.label(); // Format: