Clean up verbose debug logging from backend server

- Remove emoji debug logs from event deduplication process
- Remove verbose RRULE consolidation logging
- Remove "found X events with title Y" spam logs
- Keep essential functionality intact
- Maintain clean production server logs

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Connor Johnstone
2025-09-21 21:29:26 -04:00
parent 7caf3539f7
commit 2fee7a15f9

View File

@@ -485,7 +485,6 @@ fn parse_datetime_with_tz(datetime_str: &str, tzid: Option<&str>) -> Option<Date
fn deduplicate_events(mut events: Vec<VEvent>) -> Vec<VEvent> { fn deduplicate_events(mut events: Vec<VEvent>) -> Vec<VEvent> {
use std::collections::HashMap; use std::collections::HashMap;
let original_count = events.len();
// First pass: Group by UID and prefer recurring events over single events with same UID // First pass: Group by UID and prefer recurring events over single events with same UID
let mut uid_groups: HashMap<String, Vec<VEvent>> = HashMap::new(); let mut uid_groups: HashMap<String, Vec<VEvent>> = HashMap::new();
@@ -547,13 +546,12 @@ fn deduplicate_events(mut events: Vec<VEvent>) -> Vec<VEvent> {
let mut deduplicated_recurring = Vec::new(); let mut deduplicated_recurring = Vec::new();
for (title, events_with_title) in title_groups.drain() { for (_title, events_with_title) in title_groups.drain() {
if events_with_title.len() == 1 { if events_with_title.len() == 1 {
// Single event with this title, keep as-is // Single event with this title, keep as-is
deduplicated_recurring.push(events_with_title.into_iter().next().unwrap()); deduplicated_recurring.push(events_with_title.into_iter().next().unwrap());
} else { } else {
// Multiple events with same title - consolidate or deduplicate // Multiple events with same title - consolidate or deduplicate
println!("🔍 Found {} events with title '{}'", events_with_title.len(), title);
// Check if these are actually different recurring patterns for the same logical event // Check if these are actually different recurring patterns for the same logical event
let consolidated = consolidate_same_title_events(events_with_title); let consolidated = consolidate_same_title_events(events_with_title);
@@ -580,15 +578,9 @@ fn deduplicate_events(mut events: Vec<VEvent>) -> Vec<VEvent> {
let existing_completeness = event_completeness_score(existing_event); let existing_completeness = event_completeness_score(existing_event);
if current_completeness > existing_completeness { if current_completeness > existing_completeness {
println!("🔄 Replacing single event: Keeping '{}' over '{}'",
event.summary.as_ref().unwrap_or(&"No Title".to_string()),
existing_event.summary.as_ref().unwrap_or(&"No Title".to_string())
);
deduplicated_single[existing_index] = event; deduplicated_single[existing_index] = event;
} else { } else {
println!("🚫 Discarding duplicate single event: Keeping existing '{}'", // Discarding duplicate single event - keeping existing
existing_event.summary.as_ref().unwrap_or(&"No Title".to_string())
);
} }
continue; continue;
} }
@@ -608,10 +600,6 @@ fn deduplicate_events(mut events: Vec<VEvent>) -> Vec<VEvent> {
}); });
if is_rrule_generated { if is_rrule_generated {
println!("🚫 Discarding RRULE-generated instance: '{}' at {} would be generated by recurring event",
event.summary.as_ref().unwrap_or(&"No Title".to_string()),
event.dtstart.format("%Y-%m-%d %H:%M")
);
} else { } else {
// This is a unique single event // This is a unique single event
seen_single.insert(dedup_key, deduplicated_single.len()); seen_single.insert(dedup_key, deduplicated_single.len());
@@ -623,11 +611,6 @@ fn deduplicate_events(mut events: Vec<VEvent>) -> Vec<VEvent> {
let mut result = deduplicated_recurring; let mut result = deduplicated_recurring;
result.extend(deduplicated_single); result.extend(deduplicated_single);
println!("📊 Deduplication complete: {} -> {} events ({} recurring, {} single)",
original_count, result.len(),
result.iter().filter(|e| e.rrule.is_some()).count(),
result.iter().filter(|e| e.rrule.is_none()).count()
);
result result
} }
@@ -653,14 +636,6 @@ fn consolidate_same_title_events(events: Vec<VEvent>) -> Vec<VEvent> {
} }
// Log the RRULEs we're working with // Log the RRULEs we're working with
for event in &events {
if let Some(rrule) = &event.rrule {
println!("🔍 RRULE for '{}': {}",
event.summary.as_ref().unwrap_or(&"No Title".to_string()),
rrule
);
}
}
// Check if all events have similar time patterns and could be consolidated // Check if all events have similar time patterns and could be consolidated
let first_event = &events[0]; let first_event = &events[0];
@@ -683,7 +658,6 @@ fn consolidate_same_title_events(events: Vec<VEvent>) -> Vec<VEvent> {
}); });
if !can_consolidate { if !can_consolidate {
println!("🚫 Cannot consolidate events - different times or durations");
// Just deduplicate exact duplicates // Just deduplicate exact duplicates
return deduplicate_exact_recurring_events(events); return deduplicate_exact_recurring_events(events);
} }
@@ -696,13 +670,11 @@ fn consolidate_same_title_events(events: Vec<VEvent>) -> Vec<VEvent> {
if weekly_events.len() >= 2 && weekly_events.len() == events.len() { if weekly_events.len() >= 2 && weekly_events.len() == events.len() {
// All events are weekly - try to consolidate into a single multi-day weekly pattern // All events are weekly - try to consolidate into a single multi-day weekly pattern
if let Some(consolidated) = consolidate_weekly_patterns(&events) { if let Some(consolidated) = consolidate_weekly_patterns(&events) {
println!("✅ Successfully consolidated {} weekly patterns into one", events.len());
return vec![consolidated]; return vec![consolidated];
} }
} }
// If we can't consolidate, just deduplicate exact matches and keep the most complete one // If we can't consolidate, just deduplicate exact matches and keep the most complete one
println!("🚫 Cannot consolidate - keeping most complete event");
let deduplicated = deduplicate_exact_recurring_events(events); let deduplicated = deduplicate_exact_recurring_events(events);
// If we still have multiple events, keep only the most complete one // If we still have multiple events, keep only the most complete one