diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 62b5eb4..33f2937 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -44,15 +44,30 @@ pub fn run() { config::SourceOs::IpadOs => "ipad", config::SourceOs::Unknown => "unknown", }; - let mut pf = patterns::load(source, migration.source_distro_family.as_deref(), family).ok(); + log::info!("robin: loading patterns for {source} → {family} (distro: {})", migration.distro); + let mut pf = match patterns::load(source, migration.source_distro_family.as_deref(), family) { + Ok(p) => { + log::info!("robin: loaded {} patterns", p.patterns.len()); + Some(p) + } + Err(e) => { + log::warn!("robin: no pattern file found ({e}) — notifications disabled"); + None + } + }; // Layer dual-boot supplement patterns on top when a co-installed OS is configured. if let (Some(ref mut primary), Some(ref dualboot)) = (&mut pf, &migration.dual_boot_with) { - if let Ok(supplement) = patterns::load_supplement(dualboot) { - primary.extend(supplement); + match patterns::load_supplement(dualboot) { + Ok(supplement) => { + log::info!("robin: loaded {} dual-boot supplement patterns for {dualboot}", supplement.patterns.len()); + primary.extend(supplement); + } + Err(e) => log::warn!("robin: dual-boot supplement not found for {dualboot}: {e}"), } } pf } else { + log::info!("robin: no migration config — onboarding needed"); None }; @@ -70,6 +85,7 @@ pub fn run() { while let Some(event) = rx.recv().await { if let Some(ref pf) = *pf { if let Some(matched) = patterns::classify(&event, pf) { + log::info!("robin: matched pattern '{}' — dispatching notification", matched.pattern_id); notify::dispatch(&app_handle, matched); } } diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 69c3a72..b72eaef 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -2,5 +2,5 @@ #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] fn main() { - app_lib::run(); + robin_lib::run(); }