7/8/26 - v2.1.0
Fixes
- Baltic & Slavic Translation Lifecycle
- Resolved an initialization issue where Baltic and Slavic translations required toggling the plugin off and on to render. Translations now automatically re-apply once the lyric layout view fully settles.
- Improved Foreign Language Retention
- Fixed a lyric matching gap where Slavic and Baltic songs (such as Polish) left untranslated lines. Lines missing recognizable dictionary terms or accented letters are no longer skipped. If a song is heavily weighted in a single foreign language, every line is processed uniformly.
- LibreTranslate Array Pipeline
- Patched a layout bug where LibreTranslate dropped or garbled lines by attempting to parse internal extension batch markers. Non-LLM engines (LibreTranslate, DeepL, and generic custom endpoints) have been migrated to a native array per-line delivery path.
- LLM Truncation & Failure Overrides
- Raised default output token budgets across OpenAI tiers (GPT-5.5 Speed to 8000; GPT-4o mini to 2048) to prevent complex reasoning tracks or long songs from truncating mid-generation.
- Added a fallback listener that catches empty lines inside model batch returns and instantly re-translates them individually instead of leaving raw source text behind.
Improvements
- Optimized Local Language Detection
- Implemented fast local character parsing for Polish, Lithuanian, Czech, Latvian, and Croatian. The engine now identifies distinctive characters (such as ł ż ś, ř ě ů, ė į ų, macrons, cedillas, and đ) instantly on the client side.
- Bypasses the latency of a network detection round-trip, correcting misclassifications (e.g., Croatian previously reading as Spanish) while including functional guards to ensure Vietnamese text is not misidentified.
Full Changelog: v2.0.9...v2.1.0