pub(crate) async fn build_fingerprint_cache( app: AppHandle, candidate_paths: Vec<String>, ) -> Result<Value, String>