- Remove early break: always send all 3 top frames to PlateRecognizer
(3 calls/passage × ~26 passages/day = ~2340/month, within quota)
- Vote across results by alnum form so "GV-665-FJ" and "GV665FJ" count
as the same candidate — majority wins over higher confidence
- Levenshtein history correction: if the winning plate is 1 char away
from a known plate in DB, substitute the known plate (fixes noise
like "GV665FJW" → "GV-665-FJ")
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>