Update TODO search with graceful fallback