Skip to content

v1.4.0 - Multi-Language Tracks & Resilient AI Pipeline Upgrades

Choose a tag to compare

@seaweedbeehive seaweedbeehive released this 30 May 07:52

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.py to 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...except loop. 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 unrecoverable ERROR state.

📦 Database & Migrations

  • Schema Upgrade: Created tracking schema migration (migrations/add_segment_language_code.py) to append an indexed language_code string column straight to the segments table.
  • Safe Duplicate Handling: Configured background tasks to cleanly execute targeted deletion passes for any matching video_id + target_language rows 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.