v1.4.0 - Multi-Language Tracks & Resilient AI Pipeline Upgrades
Changelog
TermSub v1.4.0 introduces powerful multi-track language capabilities, allowing you to generate, store, and seamlessly toggle between multiple localized subtitle variants within a single video project workspace. This release also marks a major architectural milestone in pipeline hardening—introducing script-aware data mergers and defensive parsing loops to insulate the application against downstream LLM variations.
🚀 New Features & UI/UX Upgrades
- Multi-Language Subtitle Tracks: Added the ability to run multiple translation passes sequentially without wiping out previous language runs.
- Dynamic Timeline Track Toolbar: Injected a low-profile language track manager toolbar right above the subtitle timeline cards (
#trackSelector) to let users swap display text instantaneously on screen without page refreshes. - Interactive "+ Translate Another Language" Panel: Added an inline target-switch module that bypasses initial audio transcription to directly run the Translation Agent on your existing project timeline.
- Expanded Global Language Catalog: Replaced hardcoded layouts with a global, sorted dictionary of 20+ major global languages natively supported by Gemini 3 Flash, populating both the project configuration and the track-editor dropdown boxes.
- Strict Target Validation Guards: Enforced high-visibility input warning highlights (
border-red-500) and function-arresting execution guards to block empty translation execution states.
🔧 Bug Fixes & Architecture Hardening
- Resolved Language-Code Drift (Critical): Fixed a tracking bug where auto-detected transcript segments written to the database under
"original"caused translation queries to trigger dangerous global-table fallbacks. Segments are now accurately aligned with their specific language code strings at write time. - Script-Aware Overlap Merger: Upgraded the sliding-window compilation algorithm to evaluate target alphabet strings. This prevents Latin-based fallback scripts from accidentally overwriting localized target scripts (like Persian or German) during overlapping window merges.
- Glossary Language Disconnect Fix: Ported the script-aware overlap guard to
context_analysis_service.pyto stop late-stage terminology extraction passes from bleeding English back into localized glossary grids. - Asynchronous View-State Lock: Patched the frontend view router (
updateButtonVisibility) to prevent WebSocket translation messages from force-snapping users back to the terms panel if they are working on a secondary language track.
🛡️ Defensive AI Parsing & System Stability
- Bulletproof JSON Stripper Helper: Added a robust utility function utilizing regex pattern matching to safely extract content nested inside raw
{ ... }brackets, discarding conversational introductory fragments or markdown wrappers (json ...) returned by the model. - Un-Crashable Analysis Fallback: Wrapped context evaluation parsing inside a graceful
try...exceptloop. If an LLM payload fails structural compliance checks, the background engine drops a warning log and generates safe, standard fallback definitions instead of letting the task queue hang in an unrecoverableERRORstate.
📦 Database & Migrations
- Schema Upgrade: Created tracking schema migration (
migrations/add_segment_language_code.py) to append an indexedlanguage_codestring column straight to thesegmentstable. - Safe Duplicate Handling: Configured background tasks to cleanly execute targeted deletion passes for any matching
video_id+target_languagerows right before inserting bulk translation updates, protecting database constraints against data bloat.
Deployment Dependencies: Run source venv/bin/activate and ensure database migrations are verified before initiating your local Uvicorn development server instance.