The AI often returns 'Guerre - Moyen-Orient' (ASCII dash) instead of 'Guerre — Moyen-Orient' (em-dash), causing exact match to fail silently. Fix: normalize unicode, collapse all dash variants, then try exact → normalized → partial substring matching. Also log the raw AI response for debugging, increase max_tokens 1200→2000. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>