Performance (ported from Linearr): - rapidfuzz C extension for Levenshtein (20-50x faster when available) - Pure Python early termination fallback via threshold parameter - Normalization cache: precompute_normalizations() avoids redundant normalize_name() calls - fuzzy_match() and find_best_match() use cached results - ETA updated from 7.73s to 0.1s per item UI simplification: - Profile Name: free text → dynamic dropdown from database - Match Sensitivity: number 0-100 → named presets (Relaxed/Normal/Strict/Exact) - Tag Handling: 4 booleans → single dropdown (Strip All/Keep Regional/Keep All) - Channel Database: per-country booleans → single dropdown - All changes backward compatible with legacy field IDs Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
569 B
569 B