diff --git a/src-tauri/src/commands/conversations.rs b/src-tauri/src/commands/conversations.rs index a62c55c..034a9ce 100644 --- a/src-tauri/src/commands/conversations.rs +++ b/src-tauri/src/commands/conversations.rs @@ -84,6 +84,10 @@ fn list_conversations_sync( .as_ref() .map(|b| b.to_lowercase().contains(&query_lower)) .unwrap_or(false) + || s.model + .as_ref() + .map(|m| m.to_lowercase().contains(&query_lower)) + .unwrap_or(false) }); } diff --git a/src-tauri/src/parsers/gemini.rs b/src-tauri/src/parsers/gemini.rs index 4b9414a..49ef774 100644 --- a/src-tauri/src/parsers/gemini.rs +++ b/src-tauri/src/parsers/gemini.rs @@ -49,18 +49,23 @@ impl GeminiParser { } fn list_chat_files(&self) -> Vec { - let tmp_dir = self.tmp_dir(); - if !tmp_dir.exists() { - return Vec::new(); + let mut files: Vec = Vec::new(); + + // Scan both tmp/ (active sessions) and history/ (archived sessions) + for dir in [self.tmp_dir(), self.history_dir()] { + if !dir.exists() { + continue; + } + let found = WalkDir::new(&dir) + .into_iter() + .filter_map(|e| e.ok()) + .map(|e| e.path().to_path_buf()) + .filter(|p| p.is_file() && Self::is_chat_file(p)); + files.extend(found); } - let mut files: Vec = WalkDir::new(&tmp_dir) - .into_iter() - .filter_map(|e| e.ok()) - .map(|e| e.path().to_path_buf()) - .filter(|p| p.is_file() && Self::is_chat_file(p)) - .collect(); files.sort(); + files.dedup(); files }