diff --git a/crates/terraphim_sessions/src/connector/mod.rs b/crates/terraphim_sessions/src/connector/mod.rs index 8b2bc6c43..91288df53 100644 --- a/crates/terraphim_sessions/src/connector/mod.rs +++ b/crates/terraphim_sessions/src/connector/mod.rs @@ -153,12 +153,27 @@ impl ConnectorRegistry { /// Import sessions from all available connectors pub async fn import_all(&self, options: &ImportOptions) -> Result> { + let connectors = self.available(); + let total_connectors = connectors.len(); let mut all_sessions = Vec::new(); - for connector in self.available() { + for (idx, connector) in connectors.iter().enumerate() { + tracing::info!( + "Importing from {}/{}: {}", + idx + 1, + total_connectors, + connector.display_name() + ); + match connector.import(options).await { Ok(mut sessions) => { + let count = sessions.len(); all_sessions.append(&mut sessions); + tracing::info!( + " Imported {} sessions from {}", + count, + connector.display_name() + ); } Err(e) => { tracing::warn!("Failed to import from {}: {}", connector.display_name(), e); @@ -168,12 +183,14 @@ impl ConnectorRegistry { // Apply global limit if specified if let Some(limit) = options.limit { if all_sessions.len() >= limit { + tracing::info!("Reached global limit of {} sessions", limit); all_sessions.truncate(limit); break; } } } + tracing::info!("Total sessions imported: {}", all_sessions.len()); Ok(all_sessions) } } diff --git a/crates/terraphim_sessions/src/connector/native.rs b/crates/terraphim_sessions/src/connector/native.rs index 5c4f723bb..1d0796670 100644 --- a/crates/terraphim_sessions/src/connector/native.rs +++ b/crates/terraphim_sessions/src/connector/native.rs @@ -71,7 +71,12 @@ impl SessionConnector for NativeClaudeConnector { tracing::info!("Found {} JSONL files", jsonl_files.len()); - for file_path in jsonl_files { + let total = jsonl_files.len(); + for (idx, file_path) in jsonl_files.into_iter().enumerate() { + // Log progress every 50 sessions or at the end + if idx > 0 && (idx % 50 == 0 || idx == total - 1) { + tracing::info!("Imported {}/{} sessions...", idx, total); + } match self.parse_session_file(&file_path).await { Ok(session) => { if let Some(session) = session { @@ -98,12 +103,17 @@ impl SessionConnector for NativeClaudeConnector { // Apply limit if let Some(limit) = options.limit { if sessions.len() >= limit { + tracing::info!("Reached limit of {} sessions, stopping import", limit); break; } } } - tracing::info!("Imported {} Claude sessions", sessions.len()); + tracing::info!( + "Imported {} Claude sessions (from {} files)", + sessions.len(), + total + ); Ok(sessions) } } diff --git a/crates/terraphim_sessions/src/service.rs b/crates/terraphim_sessions/src/service.rs index cdde66a6a..3c4a4fef8 100644 --- a/crates/terraphim_sessions/src/service.rs +++ b/crates/terraphim_sessions/src/service.rs @@ -83,7 +83,7 @@ impl SessionService { if cache_empty { tracing::info!("Cache empty, auto-importing sessions..."); - let options = ImportOptions::new().with_limit(100); + let options = ImportOptions::new(); match self.import_all(&options).await { Ok(sessions) => { tracing::info!("Auto-imported {} sessions", sessions.len());