diff --git a/src/main.rs b/src/main.rs index 708ccf7..05959ae 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1810,6 +1810,18 @@ fn watch_files( info!("Starting optimized file watcher"); info!(" Quick scan interval: {} seconds", quick_interval_secs); info!(" Full scan interval: {} seconds", full_interval_secs); + // Surface face-detection state at boot so it's obvious whether + // the watcher will hit Apollo. The branch silently no-ops when + // disabled (intentional for legacy deploys), which makes "why + // aren't faces being detected?" hard to diagnose otherwise. + if face_client.is_enabled() { + info!(" Face detection: ENABLED"); + } else { + info!( + " Face detection: DISABLED (set APOLLO_FACE_API_BASE_URL \ + or APOLLO_API_BASE_URL to enable)" + ); + } for lib in &libs { info!( " Watching library '{}' (id={}) at {}", @@ -2115,6 +2127,13 @@ fn process_new_files( // up; the watcher remains usable on legacy deploys. if face_client.is_enabled() { let candidates = build_face_candidates(&context, &files, &exif_dao, &face_dao); + debug!( + "face_watch: scan tick — {} image file(s) walked, {} candidate(s) (library '{}', modified_since={})", + files.iter().filter(|(p, _)| !is_video_file(p)).count(), + candidates.len(), + library.name, + modified_since.is_some(), + ); if !candidates.is_empty() { face_watch::run_face_detection_pass( library,