MioSub Docs

Changelog

All notable changes to MioSub

All notable changes to this project will be documented in this file.

[3.0.20] - 2026-02-26

Fixes

  • macOS: Switch QuickJS engine from cosmopolitan APE builds to quickjs-ng native binaries, fixing codesign failures on macOS (Ref: MIOSUB-38).
  • Glossary: Guard against undefined glossary terms in LLM responses, preventing crashes during glossary merging (Fixes MIOSUB-3A).
  • JSON Parser: Strip markdown code fences from JSON responses when third-party proxies ignore responseMimeType, with improved error position logging (Fixes MIOSUB-11).
  • Aligner: Wrap CTC aligner audio and model paths with ensureAsciiSafePath(), fixing alignment failures on non-ASCII paths (Fixes MIOSUB-3H).

[3.0.19] - 2026-02-22

Features

  • Glossary: Added "Duplicate" button to glossary sidebar and widened the modal layout to reduce name truncation.

Fixes

  • Linux: Fixed binary updates silently failing on AppImage by writing to a writable overlay directory instead of the read-only FUSE mount (Fixes MIOSUB-36).
  • Linux: Added versioned libonnxruntime.so.1 soname required by the Linux dynamic linker at runtime.
  • i18n: Added 27 missing translation keys for English and Japanese locales.

[3.0.18] - 2026-02-21

Features

  • Workspace: Added a desktop sidebar toggle and responsive editor panel expansion so the subtitle workspace can use more horizontal space when the sidebar is hidden.

Fixes

  • Storage (macOS): Disabled portable-path storage mode on macOS and always use userData paths, preventing startup/write failures caused by App Translocation read-only locations (Fixes MIOSUB-32).
  • Editor: Prevented dropdown menus from closing during playback-driven auto-scroll in the subtitle list.
  • Subtitles (ASS): Generate ASS PlayRes and font sizes from actual video dimensions in preview/export/compression flows, fixing incorrect subtitle scaling on non-16:9 videos.

Chore

  • Dev Tooling: Normalized Windows path handling in local hook trackers and ignored cpp-ort-aligner/ source directory for cleaner repository state.

[3.0.17] - 2026-02-20

Features

  • Aligner: Support Omnilingual ASR CTC 300M model with automatic model type detection (MMS vs Omnilingual) and aligner version compatibility check (requires v0.2.0+).
  • Aligner: Add warning-only preflight flow — version warnings show "Continue Anyway" instead of blocking generation.

Fixes

  • Binary: Fix macOS/Linux file picker incorrectly showing Windows .exe filter for whisper/aligner executables (Ref: MIOSUB-2P).
  • Binary: Gracefully handle missing binaries — return "Not found" instead of crashing on version detection.
  • UX: Extract human-readable error messages from Gemini SDK JSON error responses instead of showing raw JSON to users.

Refactor

  • Update: Overhaul update service for GitHub repo migration, add HTTP redirect handling and improved error logging.

[3.0.16] - 2026-02-17

Performance

  • Pipeline: Reduce default chunk duration from 300s to 120s for better transcription accuracy (MMS benchmark shows lower alignment error on shorter chunks).
  • Aligner: Raise CTC aligner memory threshold from 512MB to 1GB to prevent OOM kills on 8GB M1 Macs.

Fixes

  • Build: Re-sign macOS ZIP after patching distribution.json to preserve code signature seal. Fixes KERN_CODESIGN_ERROR crash when launching binaries from portable (ZIP) installs on Apple Silicon.
  • Binary Updates: Install companion libraries (e.g. libonnxruntime.dylib) alongside binary updates, with atomic backup/restore and ad-hoc codesigning on macOS.

[3.0.15] - 2026-02-12

Features

  • Local Whisper: Auto fallback to CPU when GPU transcription fails, so users with incompatible GPU drivers can still transcribe without manual configuration.

Fixes

  • Compression: Copy subtitle file to a safe temp path when the filename contains special characters (emoji, CJK, apostrophes, parentheses), fixing ffmpeg filter graph parse errors.
  • Speaker Detection: Use frequency-based speaker name extraction to prevent false positives from partial matches in subtitle text.
  • Aligner: Add memory pre-check before CTC alignment and show warning toasts when available memory is too low, preventing silent OOM crashes on low-memory devices.
  • UI: Truncate long error messages across all error display components to prevent layout overflow.
  • Glossary: Prevent accidental modal closure during term editing.

Chore

  • FFmpeg: Update ffmpeg download URLs to n8.0 release.

Documentation

  • FAQ: Comprehensive FAQ update based on common user issues.

[3.0.14] - 2026-02-09

Features

  • Glossary: Added CSV import support with custom parser handling quoted fields, escaped quotes, and automatic header detection. Import button now opens a dropdown menu with JSON/CSV options and a format hint tooltip.
  • Glossary: Auto-detect glossary target language on JSON import when not specified in the file.
  • Settings: Added option to remove trailing punctuation from translated subtitles.

Fixes

  • i18n: Fixed hardcoded target language in Gemini prompt schemas and EndToEnd settings merge, ensuring dynamic language selection works correctly.
  • Storage: Fixed startup crash when storage directory does not exist by ensuring the directory is created before access.

[3.0.13] - 2026-02-08

Features

  • Preflight Check: Added warning severity level with "Continue Anyway" button. Glossary language mismatches now show as amber warnings instead of blocking errors.
  • Glossary: Added target language field to glossaries with auto-detection via ELD. Glossary manager now shows a language badge and dropdown selector per glossary.
  • Settings: Added clear button for custom whisper binary path to easily reset to bundled default.
  • Binary Updates: Added whisper-cli to in-app binary update system alongside aligner and yt-dlp.

Fixes

  • Translation: Fixed hardcoded "Simplified Chinese" defaults in 7 prompt functions that caused non-Chinese target languages to still produce Chinese output.
  • Glossary: Added blocking preflight check when active glossary language does not match target language, preventing wrong-language terms from being injected into prompts.
  • Local Whisper: Rebuilt whisper.cpp as statically linked binary, fixing macOS crash caused by missing libwhisper.dylib.
  • Local Whisper: Fixed retry loop continuing after user cancellation. Aborted requests now fail fast instead of retrying.
  • FFmpeg: Fixed spawn args not split for concat extraction, causing long video (>2h) speaker analysis to fail with exit code 2880417800.
  • UI: Fixed long toast messages breaking layout by adding max width and text truncation.

[3.0.12] - 2026-02-06

Fixes

  • Local Whisper: Added ASCII-safe path workaround for non-ASCII model paths on Windows. Creates temporary symlinks so third-party whisper binaries can handle Chinese/CJK paths without crashes.
  • Local Whisper: Fixed version detection silently falling back to hardcoded v1.7.4. Now tries --version first, then -h output, then reports unknown.
  • Local Whisper: Updated bundled whisper binary to v1.8.4 with upstream path encoding fix (MultiByteToWideChar instead of broken codecvt_utf8).
  • Settings: Fixed whisper binary path reading from wrong settings key.
  • Electron: Fixed backend log subscription not re-initializing after React StrictMode cleanup.

[3.0.11] - 2026-02-06

Fixes

  • Long Video Mode: Fixed all entry points to check video duration before decoding audio. Previously, end-to-end generation and batch regenerate would decode entire audio into memory before checking duration, causing OOM crashes for videos longer than 2 hours.
  • Long Video Mode: Removed the 6-hour video duration limit. With on-demand FFmpeg extraction now fully functional for videos over 2 hours, there's no longer a need for artificial duration restrictions.

[3.0.10] - 2026-02-06

Fixes

  • macOS Auto-Update: Fixed SHA512 checksum mismatch regression. The build script now recalculates hashes after patching ZIP files with distribution mode, ensuring latest-mac.yml contains correct checksums.
  • Video Preview: Added cache versioning to invalidate old transcoded files after updates. Users upgrading from v3.0.8/v3.0.9 will now get fresh previews with streaming optimizations instead of using stale cache.

[3.0.9] - 2026-02-05

Features

  • Binary Updates: Added in-app update support for aligner and yt-dlp binaries. The header now shows update notifications when new versions are available, with one-click download and installation.
  • Progress Smoothing: Added smooth progress bar animations with exponential easing interpolation for download and video preview operations.

Fixes

  • Long Video Mode: Comprehensive fix for videos longer than 2 hours. Speaker analysis and glossary extraction now work correctly using fixed-interval FFmpeg sampling instead of accessing null audio buffer.
  • YouTube Download: Fixed issue where AI-dubbed audio tracks were downloaded instead of original audio. Now prefers original audio track using format_note*=original selector.
  • macOS: Added ad-hoc code signing for bundled binaries (ffmpeg, whisper, aligner, yt-dlp), fixing installation issues on Apple Silicon Macs.
  • Electron: Fixed logger stack overflow caused by Sentry instrumentation triggering infinite recursion when accessing Error.stack.
  • Electron: Fixed "Object has been destroyed" crash in update service by adding isDestroyed() checks before sending IPC messages.
  • Electron: Fixed mainWindow undefined error in forceClose handler by using BrowserWindow.getFocusedWindow() fallback.
  • Electron: Fixed package.json path resolution in packaged app by using app.getAppPath() instead of __dirname.
  • Video Preview: Optimized audio streaming to prevent Chromium OOM crashes by adding 1-second fragment duration and forcing 48kHz sample rate.
  • Audio Decoder: Added 500MB threshold to prevent Web Audio API fallback for large files that would cause OOM.

Chore

  • Added typecheck script that runs before builds to catch type errors early.

[3.0.8] - 2026-02-04

Features

  • Preflight Check: Added configuration validation before generation starts. Validates API keys, Whisper model files (GGML/GGUF format), and CTC alignment model directories. Shows clear error messages with links to settings and documentation.
  • Close Confirmation: Added warning dialog when closing the app with active tasks (generation, download, compression, transcoding). Prevents accidental data loss.
  • Audio Extraction: Added support for cancelling audio extraction operations.

Fixes

  • Windows: Fixed Unicode path encoding issues once and for all. Replaced cmd.exe wrapper with direct binary spawning, ensuring Chinese/Japanese/Korean paths work correctly without code page conversion issues.
  • Video Preview: Fixed "ReadableStream is already closed" error when switching from live transcoding to static playback mode for MKV files.

[3.0.7] - 2026-02-03

Fixes

  • CTC Aligner: Fixed language detection failure that caused alignment errors for CJK languages. The eld library now uses static imports for proper Vite bundling, with CJK character-based fallback detection for Japanese, Korean, and Chinese.
  • Gemini API: Fixed unnecessary API calls when JSON parsing fails. The truncation continuation logic now only triggers on explicit MAX_TOKENS finish reason, preventing wasted retries on malformed responses.
  • macOS: Fixed auto-update SHA512 checksum mismatch. The latest-mac.yml now correctly contains ZIP file hashes instead of DMG hashes.

[3.0.6] - 2026-02-03

Fixes

  • Generation: Display aggregated error messages when subtitle generation fails, helping users understand what went wrong instead of generic failure messages.
  • Windows: Fixed "C:\Program is not recognized" error when the app is installed in paths containing spaces (e.g., C:\Program Files\...).
  • macOS: Enabled auto-update functionality by adding ZIP target alongside DMG builds.

Refactor

  • UI: Centered toast notifications for better visibility.

[3.0.5] - 2026-02-03

Fixes

  • Pipeline: Fixed crash when processing videos longer than 2 hours. The long video mode now correctly extracts audio segments on-demand instead of accessing null audio buffer.
  • Electron: Fixed ENOENT error when saving subtitle files. The output directory is now recreated if deleted by user during processing.
  • macOS: Fixed missing libonnxruntime.dylib that caused CTC forced alignment to fail on macOS. The dynamic library is now included in the app bundle.

[3.0.4] - 2026-02-02

Important: Users who downloaded v3.0.3 should update immediately. This release fixes a critical bug that prevented downloading certain videos and generating subtitles for them.

Fixes

  • Electron: Fixed shell argument escaping to prevent URL parsing errors. URLs containing special characters (like & in Bilibili's vd_source parameter) were incorrectly interpreted as command separators on Windows, causing video downloads and subtitle generation to fail.

[3.0.3] - 2026-02-02

Fixes

  • Electron: Fixed Windows Unicode path encoding issues affecting Whisper, yt-dlp, and CTC aligner when paths contain non-ASCII characters (Chinese, Japanese, etc.).
  • Electron: Fixed IPC crash when window is destroyed during long-running operations (audio extraction, compression, download progress).
  • Editor: Added regex syntax error feedback with debounced validation in search & replace panel.

Refactor

  • Error Handling: Added error codes to UserActionableError for type-safe error handling.

[3.0.2] - 2026-02-01

Fixes

  • Video Preview: Fixed issue where cancelling video preview would incorrectly trigger CPU fallback transcoding.
  • Whisper: Improved model file validation and fixed filename encoding issues for non-ASCII paths.

[3.0.1] - 2026-02-01

Features

  • Long Video Support: Added on-demand audio segment extraction for videos longer than 2 hours, preventing out-of-memory issues by extracting audio segments via FFmpeg instead of loading the entire audio into memory.

Fixes

  • Electron: Fixed duplicate IPC handler registration in update service that could cause errors on app restart.
  • Path Handling: Improved filename sanitization to handle more special characters (shell metacharacters, smart quotes) that could cause file creation failures.
  • Path Handling: Limited yt-dlp output filename to 80 characters to avoid path length issues on Windows.
  • FFmpeg: Fixed subtitle path escaping for single quotes in FFmpeg filter syntax.

Refactor

  • Error Handling: Introduced UserActionableError class for better error categorization, preventing user-resolvable errors (API key, quota, billing) from being reported to Sentry.

[3.0.0] - 2026-01-31

Highlights

This major release brings significant architectural improvements, new features, and better stability.

New Features

  • Project Renamed to MioSub: The project has been officially renamed from Gemini-Subtitle-Pro to MioSub.
  • CTC Forced Aligner: Integrated CTC-based forced alignment for precise subtitle timing synchronization.
  • Audio-Only File Support: Full support for audio files (MP3, WAV, etc.) without video, including optimized player UI.
  • Editor Search & Replace: New search and replace functionality in the subtitle editor for batch text modifications.
  • Manual Whisper Path Selection: Users can now manually specify the Whisper executable path for custom installations.
  • Auto-Update System: Built-in update detection and automatic update support for seamless upgrades.
  • Startup Splash Screen: New splash screen prevents white flash during application startup.
  • Enhanced Logging System: New logging system with JSON view, log viewer UI, and improved debugging capabilities.
  • Linux ARM64 Support: Added build support for Linux ARM64 architecture.

Improvements

  • UI Overhaul: Redesigned editor, layout components, and settings panel for a more unified look and smoother interactions.
  • Built-in CJK Fonts: Integrated NotoSans JP/SC fonts for better subtitle rendering.
  • React Compiler Integration: Integrated React Compiler v1.0 for automatic performance optimizations.
  • State Management Migration: Migrated from React Context to Zustand stores for better performance and maintainability.
  • JSON Parsing Enhancement: Unified JSON parsing with jsonrepair library for better handling of malformed AI responses.
  • Cancellation Improvements: Transcoding and download tasks now support cancellation with automatic temp file cleanup.
  • Error Tracking: Integrated Sentry for error tracking and analytics to improve stability.
  • Resource Cleanup: Fixed multiple resource leaks and improved memory management throughout the application.
  • Subtitle Editor Performance: Fixed 10+ performance issues in the subtitle editor for smoother editing experience.
  • Pipeline Robustness: Enhanced cancellation handling and error boundaries in the generation pipeline.
  • Bundle Optimization: Improved bundle splitting and reduced application size.

Documentation

  • New Documentation Site: Migrated documentation to Fumadocs with full i18n support (English/Chinese).
  • Redesigned README: New landing page style README with improved layout and badges.

Other Changes

  • License Change: Switched to AGPL-3.0 license.
  • macOS x64 Cross-Compile: Added macOS x64 cross-compilation support on ARM64 runners.
  • CI Improvements: Faster builds with binary caching and newer OS runners.

[2.13.0] - 2026-01-15

Features

  • Batch Operations: Replace "Fix Timestamps" with "Regenerate" - full pipeline re-run (transcription → refinement → alignment → translation) on selected batches with optional user hints.
  • RegenerateModal: New modal for regenerate operation with transcription and translation hint inputs.
  • Speaker Manager: Add custom color editing and merge functionality for speakers.
  • About Tab: Add system info display with Whisper details, GPU detection, and separate log path.
  • Logging: Enhanced logging system with JSON view and IPC handlers.
  • Editor: Add subtitle validation rules with visual markers for timing issues.
  • i18n: Complete Japanese (ja-JP) translations and regenerate modal strings for all locales.

Fixes

  • Pipeline: Update generation hooks and configuration to support new step architecture.
  • UI: Improve glossary configuration explanation and color picker validation.
  • Core: Resolve lint warnings and binary path resolution issues.
  • Video Preview: Fix ASS renderer dependency on collapsed state.
  • Reconciler: Stop inheriting comment field after processing.
  • Editor: Reset auto-scroll when exiting filter mode, support CANCELLED status.

Refactor

  • Electron: Portable storage paths (config/logs in exe directory) and async hardware detection for faster startup.
  • Pipeline: Extract shared context to pipelineCore.ts, add ProofreadStep for future integration.
  • Pipeline: Simplify chunk processor architecture with new step-based design.
  • Batch: Split operations.ts into proofread.ts and regenerate.ts for cleaner separation.
  • Prompts: Remove fix_timestamps mode, simplify to refinement/translation/proofread only.
  • Settings: Migrate console logs to logger, split settings modal into modular components.
  • Workspace: Optimize auto-save and update data types for speaker profiles.

Chore

  • i18n Checker: Add --check-missing and --check-unused flags with improved detection.
  • Config: Increase subtitle max width (55→65) and min split width (10→20).
  • Config: Disable thinking level for cost optimization (can be re-enabled).
  • OpenSpec: Archive completed proposals and add permanent specs for batch operations.
  • Build: Update build system for git commit hash injection.

[2.12.1] - 2026-01-08

Features

  • Video Preview: Improve aspect ratio handling and loading state.

Fixes

  • Config: Adjust thinking level to medium for refinement and translation.
  • Workspace: Prevent snapshot history clearing when loading new files.
  • API: Include text_original in translation schema for reference.
  • Pipeline: Fix diarization flag logic in batch operations.
  • Subtitle: Improve non-speech filtering and cleanup test exports.

Refactor

  • Pipeline: Simplify translation payload structure and improve metadata inheritance.

[2.12.0] - 2026-01-06

Features

  • Alignment: Complete CTC forced aligner integration
  • Pipeline: Add reconciler for metadata preservation
  • Subtitle: Implement visual width based splitting
  • Debug: Add granular mock API controls
  • Pipeline: Enhance metadata preservation and processing robustness
  • Alignment: Add CTC aligner service and settings UI

Fixes

  • Subtitle: Handle undefined speaker color
  • Snapshots: Include date in timestamp display
  • I18n: Add missing translation keys for all locales
  • Lint: Add missing hook dependencies
  • UI: Isolate component errors with granular boundaries
  • I18n: Add missing localization keys for subtitle generation pipeline
  • Subtitle: Service improvements (generator, parser, time)

Refactor

  • Naming: Rename glossary-state.ts to glossaryState.ts
  • Structure: Update services and hooks after component restructure
  • Types: Centralize type definitions and update imports
  • Components: Update components and fix imports after restructure
  • I18n: Localize hardcoded Chinese strings and improve extraction script

Chore

  • Skills: Add release-version skill
  • Config: Add Claude AI development config
  • Scripts: Add i18n key validation script
  • Deps: Update dependencies and types

[2.11.0] - 2026-01-01

Features

  • Video Preview: Implemented comprehensive video preview system with smart caching and cache management UI.
  • Rendering: Added WYSIWYG subtitle rendering using assjs for accurate style representation (font, size, color, etc.).
  • UI: Added source text toggle in video preview and improved internationalization support.

Fixes

  • i18n: Added missing translations for auto-scroll toggle and API key error messages.
  • Cache: Fixed i18n and cleanup logic in cache management.

Chore

  • Deps: Removed react-player in favor of native video handling and updated dependencies.
  • Cleanup: Removed unused code in ytdlp module and fixed lint warnings.

[2.10.2] - 2025-12-28

Features

  • i18n: Added Japanese localization (ja-JP) for full multi-language support.

Fixes

  • i18n: Shortened home page card descriptions for better layout on smaller screens.
  • i18n: Polished translations for more natural phrasing across all supported languages.
  • Batch Processing: Fixed timestamp conversion to use relative time before sending to Gemini API for improved accuracy.
  • Build: Fixed critical issue where locale files were missing in the packaged application (ENOENT error).

[2.10.1] - 2025-12-25

Features

  • Settings: Language preference is now stored in unified app settings for persistence across sessions.
  • i18n Sync: Added language synchronization between renderer and main process for consistent localization.
  • Electron: Added i18n support for main process dialogs and native UI elements.

Fixes

  • i18n: Fixed language initialization to occur at app startup instead of waiting for settings modal, ensuring correct language from first render.

Refactor

  • LanguageSwitcher: Simplified current value logic for cleaner implementation.

Documentation

  • i18n: Added infrastructure documentation for the v2.10.0 internationalization system.

[2.10.0] - 2025-12-25

Features

  • Internationalization (i18n): Complete multi-language support implementation across the entire application.
    • Setup i18n infrastructure with react-i18next (Phase 1).
    • Transformed all major components: HomePage, SettingsModal, SubtitleEditor, WorkspacePage, DownloadPage, CompressionPage, Editor components, and EndToEndWizard (Phases 2-12).
    • Added language switcher for users to change application language.
    • Created comprehensive translation files for Settings, UI components, and all modals.
    • Extracted Chinese strings with automated scripts for translation workflow.

Fixes

  • Hooks: Fixed race condition in native subtitle import error handling.
  • Pipeline: Correctly pass width and height parameters for video compression.

Documentation

  • Bilingual Docs: Added English versions of README and ARCHITECTURE documentation for international users.

[2.9.14] - 2025-12-20

Documentation

  • Architecture: Updated architecture documentation to reflect recent refactoring, including the new Generation Service, centralized timers, and component structure.

[2.9.13] - 2025-12-20

Features

  • Timeline: Added robust timeline validation with retry mechanisms and visual UI markers to identify and correct subtitle overlap or timing issues.

Refactor

  • Workspace: Refactored useWorkspaceLogic by extracting hooks into separate, focused modules to improve code maintainability and readability.
  • Translation: Integrated timeline validation logic directly into the translation flow for better reliability.

Style

  • Linting: Fixed various linting issues and verified ESLint configuration to ensure code quality standards.

[2.9.12] - 2025-12-19

Fixes

  • Glossary (E2E Mode): Fixed issue where user's explicit glossary selection was not respected in End-to-End mode.
  • Glossary (Runtime): Prioritized runtime glossary override in getActiveGlossaryTerms to ensure correct term resolution.
  • Glossary (Settings): Restored glossary field as a runtime carrier in AppSettings for proper data flow.

Refactor

  • Glossary: Simplified glossary access logic and removed legacy items migration code.
  • Glossary: Removed deprecated glossary field and associated migration code for cleaner architecture.
  • Logging: Standardized log levels with [DEBUG]/[WARN]/[ERROR] prefixes for better troubleshooting.

Chore

  • Cleanup: Removed unused electron/env.d.ts type declaration.
  • Cleanup: Removed unused code and fixed deprecated patterns across the codebase.

[2.9.11] - 2025-12-19

Features

  • Debug: Added debug artifact saving functionality for troubleshooting and development.

Fixes

  • Audio Processing: Merged trailing audio chunks shorter than 30 seconds with the previous chunk to prevent incomplete transcription at the end of files.
  • UI (GenrePicker): Fixed issue where the genre picker did not display the current value when first opened.
  • Workspace: Speaker count hints now only appear in new project mode, avoiding confusion in existing projects.
  • Prompts: Ensured glossary terms have absolute priority over web search results to maintain translation consistency.

Refactor

  • API: Updated Gemini API client implementation and revised pricing configuration for latest model tiers.
  • Config: Updated default model name configuration.

Documentation

  • Architecture: Updated architecture documentation with centralized model configuration and new UI components.
  • AI Agents: Added GitHub Copilot instructions for AI coding agents to improve development workflow.

[2.9.10] - 2025-12-18

Features

  • Prompts: Added dynamic search-enhanced prompts and improved priority numbering.
  • UI: Improved disabled state visual feedback for Toggles.

Fixes

  • Prompts: Restored full context-aware translation rules with detailed examples.
  • UI: Fixed toggle UI consistency.
  • Security: Fixed prompt injection vulnerabilities.

Refactor

  • Config: Centralized Gemini model configuration.

[2.9.9] - 2025-12-18

Fixes

  • UI: Made project settings collapse logic responsive to zoom level.
  • Compatibility: Improved overall zoom level compatibility.

[2.9.8] - 2025-12-17

Features

  • UI: Implemented robust web zoom support using CSS transforms and safe layout classes.
  • Core: Updated FFmpeg, FFprobe, and yt-dlp executables.

Fixes

  • UI: Optimized web zoom safety for Electron and fixed layout responsiveness.
  • UI: Ensure correct dropdown positioning across all zoom levels.
  • System: Improved snapshot system reliability.

[2.9.7] - 2025-12-16

Features

  • Performance: Optimized file loading and improved UI loading indicators.

UI

  • Style: Refined overall UI layout and spacing.

Build & Packaging

  • FFmpeg: Bundled FFmpeg/FFprobe binaries and optimized path resolution logic.
  • CI: Automated changelog inclusion in GitHub releases.
  • Docs: Updated README for zip distribution format.

[2.9.6] - 2025-12-16

Features

  • UI: Improved High-DPI support and overall UI responsiveness.

Build

  • Windows: Switched build target from portable exe to zip for faster application startup.
  • Electron: Fixed electron-builder zip configuration.

Chore

  • Cleanup: Removed unused AboutModal and related code.

[2.9.5] - 2025-12-16

Features

  • UI: Implemented desktop fluid layout updates for better responsiveness.

[2.9.4] - 2025-12-16

Features

  • Core: Added shared utility hooks for better AbortController signal handling.
  • UI: Added new base UI components for consistent design system usage.

Fixes

  • UI: Improved settings toggle and input consistency.

Refactor

  • UI: Cleaned up redundant wizard components (progress, header, resolution selectors) and simplified Title Editor integration.

[2.9.3] - 2025-12-16

Features

  • Speaker Analysis: Enhanced speaker analysis and synchronized settings for better diarization control.

Fixes

  • End-to-End: Resolved critical infinite loop in useEndToEndSubtitleGeneration hook.
  • Robustness: Improved JSON parsing reliability and error logging.

Refactor

  • Cleanup: Repository structure cleanup (Phases 1-2, 5, 7, 9).

Documentation

  • Architecture: Updated diagrams for the End-to-End pipeline.

[2.9.2] - 2025-12-15

Features

  • End-to-End Pipeline: Auto-advance after successful parsing, persist auto-confirmed glossary terms.
  • UI Architecture: Implemented new reusable UI components and unified page layouts.
  • Electron: Added context menu support.

Fixes

  • End-to-End: Fixed double-click requirement for starting Full Auto mode.

Refactor

  • UI Migration: Migrated pages, modals, and settings to new layout and component primitives.
  • Prompts: Enforced strict segment boundaries and improved timestamp verification rules.
  • Codebase: Unified glossary logic and improved variable naming (enableDiarization).

[2.9.1] - 2025-12-14

Features

  • Speaker Diarization: Added minSpeakers/maxSpeakers hints for improved LLM diarization accuracy.
  • End-to-End Pipeline: Enhanced input parsing and pipeline handling.

Fixes

  • YouTube: Improved URL parsing to correctly handle playlist links.

Refactor

  • Path Aliases: Replaced relative imports with absolute aliases (@/, @electron/) throughout codebase.
  • UI: Refined StepConfig and CustomSelect component styling.

Documentation

  • Architecture: Updated project architecture documentation.

[2.9.0] - 2025-12-14

Features

  • Full Auto Mode: Implemented complete End-to-End pipeline with new wizard UI (EndToEndWizard), core service (EndToEndPipelineService), and main process integration.
  • Security: Implemented high-risk security fixes based on Electron best practices audit.
  • Error Handling: Added graceful warning for thumbnail download failures.

Fixes

  • Core: Miscellaneous improvements to audio decoding, timing accuracy, and UI stability.
  • Build: Fixed ytdlp compilation issues.

Documentation

  • Guides: Added documentation for Full Auto / End-to-End mode.

[2.8.5] - 2025-12-12

Features

  • Translation Prompts: Added context-aware translation instructions and tuned Conservative Mode for better timing adherence (0.5s threshold).

Refactor

  • UI: Removed redundant StatusBadge and improved toolbar responsiveness.
  • Validation: Adjusted subtitle validation duration thresholds.

[2.8.4] - 2025-12-11

Features

  • HiDPI Support: Added optimizations for high pixel density screens (Retina/4K), including compact spacing and refined layout.
  • Fluid Typography: Implemented viewport-aware font scaling for better readability across different screen sizes.
  • Prompt Engineering: Improved translation prompts with "Visual Balance" checks and better filler word removal.
  • Hardware Acceleration: Enhanced GPU encoder detection by verifying encoding capability with test frames.

[2.8.3] - 2025-12-11

Features

  • Hardware Acceleration: Added hardware acceleration support for video encoding.
  • File Handling: Improved file handling in Electron main process.

[2.8.2] - 2025-12-10

Features

  • Responsive Layout: Optimized responsive layout and window size limits for better UX.

[2.8.1] - 2025-12-09

Refactor

  • Subtitle IDs: Migrated from numeric to string-based IDs to fix AI re-indexing bugs.

Performance

  • Token Efficiency: Optimized subtitle ID length to 4 characters for better LLM token usage.

[2.8.0] - 2025-12-09

Features

  • Unified Snapshots: Implemented a unified persistent snapshot system for better history management.
  • UI Redesign: Redesigned BatchHeader with improved responsive layout and aesthetics.

[2.7.3] - 2025-12-09

Refactor

  • Model Names: Unified model names across the codebase and auto-fixed unused imports.
  • Hooks Architecture: Split useWorkspaceLogic into 4 smaller focused hooks for better maintainability.
  • Environment Variables: Centralized env vars configuration.

Chore

  • Code Quality: Added Prettier + ESLint with pre-commit hooks.

[2.7.2] - 2025-12-06

Features

  • Batch Operations: Enhanced BatchHeader with improved bulk editing and speaker assignment.
  • Speaker Manager: Added batch speaker assignment and improved merge workflow.

Fixes

  • Subtitle Editor: Improved row selection and keyboard navigation.
  • Workspace Logic: Enhanced state management and undo/redo handling.

[2.7.1] - 2025-12-06

Performance

  • Virtualized Subtitle List: Optimized large file rendering using react-virtuoso for virtualized subtitle lists.

Fixes

  • UI Improvements: Minor UI fixes and refinements.

[2.7.0] - 2025-12-06

Features

  • Speaker Management: New speaker manager modal with rename, delete, and merge functionality. Added SpeakerSelect component for easy speaker assignment in subtitle editor.
  • About Modal: New about dialog displaying version info and project credits.
  • Enhanced Logging: Added MainLogger for Electron main process with file persistence and IPC broadcasting.
  • Editor Improvements: Enhanced SubtitleEditor, SubtitleRow, and BatchHeader with better speaker handling and UI.
  • File Upload: Improved FileUploader with better drag-and-drop and file validation.

Fixes

  • Whisper Service: Enhanced error handling and response parsing.
  • Subtitle Parser/Generator: Improved speaker tag handling in SRT/ASS formats.
  • Gemini Client: Better retry logic and error recovery.

Performance

  • Batch Processing: Optimized batch translation with improved concurrency.
  • Workspace Logic: Streamlined state management in useWorkspaceLogic.

[2.6.0] - 2025-12-05

Features

  • Video Compression: Built-in FFmpeg engine supporting H.264/H.265 encoding, CRF quality control, resolution adjustment, and subtitle hardcoding.
  • Video Download: Integrated yt-dlp for downloading videos from YouTube and Bilibili.
  • Workspace History: New history panel showing session snapshots and persistent project history.
  • UI Improvements: Enhanced dropdown menus to open upwards when near the screen bottom.

Fixes

  • Compression: Fixed error handling for isStream during compression.
  • UI: Fixed CRF input field to support decimal values.
  • UI: Fixed CustomSelect dropdown positioning.

Performance

  • Gemini API: Optimized client error handling and retry logic.

On this page

[3.0.20] - 2026-02-26Fixes[3.0.19] - 2026-02-22FeaturesFixes[3.0.18] - 2026-02-21FeaturesFixesChore[3.0.17] - 2026-02-20FeaturesFixesRefactor[3.0.16] - 2026-02-17PerformanceFixes[3.0.15] - 2026-02-12FeaturesFixesChoreDocumentation[3.0.14] - 2026-02-09FeaturesFixes[3.0.13] - 2026-02-08FeaturesFixes[3.0.12] - 2026-02-06Fixes[3.0.11] - 2026-02-06Fixes[3.0.10] - 2026-02-06Fixes[3.0.9] - 2026-02-05FeaturesFixesChore[3.0.8] - 2026-02-04FeaturesFixes[3.0.7] - 2026-02-03Fixes[3.0.6] - 2026-02-03FixesRefactor[3.0.5] - 2026-02-03Fixes[3.0.4] - 2026-02-02Fixes[3.0.3] - 2026-02-02FixesRefactor[3.0.2] - 2026-02-01Fixes[3.0.1] - 2026-02-01FeaturesFixesRefactor[3.0.0] - 2026-01-31HighlightsNew FeaturesImprovementsDocumentationOther Changes[2.13.0] - 2026-01-15FeaturesFixesRefactorChore[2.12.1] - 2026-01-08FeaturesFixesRefactor[2.12.0] - 2026-01-06FeaturesFixesRefactorChore[2.11.0] - 2026-01-01FeaturesFixesChore[2.10.2] - 2025-12-28FeaturesFixes[2.10.1] - 2025-12-25FeaturesFixesRefactorDocumentation[2.10.0] - 2025-12-25FeaturesFixesDocumentation[2.9.14] - 2025-12-20Documentation[2.9.13] - 2025-12-20FeaturesRefactorStyle[2.9.12] - 2025-12-19FixesRefactorChore[2.9.11] - 2025-12-19FeaturesFixesRefactorDocumentation[2.9.10] - 2025-12-18FeaturesFixesRefactor[2.9.9] - 2025-12-18Fixes[2.9.8] - 2025-12-17FeaturesFixes[2.9.7] - 2025-12-16FeaturesUIBuild & Packaging[2.9.6] - 2025-12-16FeaturesBuildChore[2.9.5] - 2025-12-16Features[2.9.4] - 2025-12-16FeaturesFixesRefactor[2.9.3] - 2025-12-16FeaturesFixesRefactorDocumentation[2.9.2] - 2025-12-15FeaturesFixesRefactor[2.9.1] - 2025-12-14FeaturesFixesRefactorDocumentation[2.9.0] - 2025-12-14FeaturesFixesDocumentation[2.8.5] - 2025-12-12FeaturesRefactor[2.8.4] - 2025-12-11Features[2.8.3] - 2025-12-11Features[2.8.2] - 2025-12-10Features[2.8.1] - 2025-12-09RefactorPerformance[2.8.0] - 2025-12-09Features[2.7.3] - 2025-12-09RefactorChore[2.7.2] - 2025-12-06FeaturesFixes[2.7.1] - 2025-12-06PerformanceFixes[2.7.0] - 2025-12-06FeaturesFixesPerformance[2.6.0] - 2025-12-05FeaturesFixesPerformance