Releases: 66HEX/frame
Releases Β· 66HEX/frame
v0.25.3
v0.25.2
Fixed
- Linux AppImage Media Runtime: Enabled AppImage media framework bundling (
bundleMediaFramework) in Tauri config to avoid host/plugin version mismatches that could break WebKit/GStreamer playback pipelines on some distributions. - Linux Release Build Inputs: Added GStreamer plugin packages (
base,good,bad,libav) to the Linux publish workflow so AppImage bundling captures a complete, matching media runtime during CI builds.
v0.25.1
Fixed
- Linux Native Dialog Theme (KDE/Portal): Switched Linux dialog backend from GTK3 to XDG Desktop Portal so file/message dialogs follow desktop portal integration and better match system theme behavior (including KDE setups).
v0.25.0
Changed
- Typography System Rework: Replaced embedded Geist fonts with Archivo + Loskeley Mono, rewired app font tokens/switching (
mono/sans), and normalized typography across UI components (size/weight/letter-spacing) for more consistent readability. Updated all localized README files to reflect the new font stack. - Two-Tone Borders and Separators: Replaced single-tone divider/border treatments with a two-tone background + subtle shadow style to better match the neumorphic UI direction.
- Cursor Style Cleanup: Removed redundant
cursor-*utility classes from non-actionable/neutral surfaces (settings overlay, preview container layers, file rows, checkbox, slider) to keep cursor behavior visually consistent with element semantics. - Action Tooltips (Preview/List/Presets): Replaced native
titleattributes with shared tooltip UI for preview transform controls, file row action controls, and preset action buttons for consistent hover labels. - Tooltip Layering and Positioning: Updated shared tooltip rendering to use a body portal with viewport-aware fixed positioning, so labels are not clipped by parent overflow and stay visually centered.
- Common Action Copy: Added shared i18n keys
common.pauseandcommon.resumeand applied translated values across all supported locales.
v0.24.1
Changed
- Neumorphic Highlight Layering: Reworked shared
.card-highlight,.input-highlight, and.button-highlightstyles to use isolated::beforeoverlay layers for more consistent inner-highlight rendering. - Ghost Button Border Cleanup: Removed redundant transparent borders from ghost buttons and icon tab/aspect controls to simplify control outlines and spacing.
- Selection Indicator Polish: Updated audio/subtitle track selectors and checkbox surfaces to follow current window opacity and use a clearer active-state marker color.
v0.24.0
Added
- DeepL Translation Automation: Added
i18n-translatetooling to translate locale keys fromen-USvia DeepL with header-based authentication, placeholder preservation, retry handling, and parser-error fallback behavior. - Reusable Tooltip Component: Added
ui/Tooltip.sveltewith configurable side variants viaclass-variance-authority, arrow rendering, Svelte transition animation, and delayed-first-hover behavior with instant trigger-to-trigger switching. - Stream Copy / Remux Mode: Added a new
Cut / Stream Copyprocessing mode for trim + remux workflows without re-encoding (-c copy), including queue/config support across frontend and backend.
Changed
- Neumorphic UI Redesign: Reworked the app shell and core UI controls in a neumorphic style across dashboard/settings/logs/titlebars, including updated surface tokens (
background/sidebar) and new shared highlight treatments for cards, buttons, and inputs. - Translation Workflow Commands: Added
i18n:translate,i18n:translate:write,i18n:translate:rewrite, andi18n:sync:autoscripts plus updated contributor workflow documentation. - Non-English Locale Consistency: Re-translated all non-source locale files from the current
en-USdictionary baseline to reduce cross-locale copy drift. - App Settings Language Hover UI: Replaced inline CSS hover labels in language selection with the shared tooltip component for consistent interaction behavior.
- Shared Media Rules (Copy Validation): Extended
media-rules.jsonwith stream-level container compatibility tables (video/audio/subtitle) and applied them in both UI container availability and backend preflight validation for stream copy tasks.
Fixed
- Input Placeholder Contrast: Increased placeholder/readability contrast in shared text and timecode inputs and aligned subtitle burn file picker text to foreground color for better visibility.
v0.23.2
Fixed
- i18n Production Startup Regression: Restored eager locale module loading and registered dictionaries from the preloaded module map to prevent release builds from stalling on splash.
- i18n Build Noise: Removed mixed eager/dynamic locale import behavior that triggered repeated Vite chunking warnings during production builds.
v0.23.1
Added
- i18n Guardrails Tooling: Added
i18n:extract,i18n:check, andi18n:syncscripts withen-USas source-of-truth, locale key diff checks, placeholder parity validation, and optional sync autofill for missing translations. - CI Locale Validation: Added a dedicated GitHub Actions workflow that runs i18n guardrail checks on pull requests and pushes.
Fixed
- Conversion Failure Dialog Regression: Restored native error dialog display for failed conversions with localized title and close action label.
- Source Metadata Coverage: Added missing Source tab rendering for
colorPrimariesmetadata returned by ffprobe probing. - Stale Locale Key Cleanup: Removed unused i18n keys across all locale files after UI scope verification (keeping
common.*keys intentionally reusable). - File List Action Hover Drift: Replaced the row bottom separator from
border-bto an::after1px line to eliminate subpixel vertical drift when action buttons appear on hover. - ML Upscale Sidecar Permission: Added missing Tauri shell capability for
realesrgan-ncnn-vulkanso runtime encoder detection and AI upscaling execution can start the sidecar successfully. - Update Dialog HTML Safety: Escaped release note HTML before Markdown rendering in the in-app updater dialog to prevent rendering untrusted raw HTML from update metadata.
- Manual Update Check Recovery: Hardened the settings-side update check flow so request failures no longer leave the UI stuck in a perpetual "Checking..." state.
- Startup Panic Guarding: Replaced panic-prone window unwraps in the Tauri bootstrap and splash-close flow with explicit error handling to reduce fatal crashes during window lifecycle edge cases.
- i18n Build Warnings: Removed duplicate locale eager/dynamic import pattern in the i18n bootstrap, eliminating repeated Vite chunking warnings during production builds.
- Capability Surface Hardening: Removed unused global
fs:allow-read-filecapability grant to reduce default filesystem exposure. - Rust Lint Compliance: Applied
cargo clippyrecommendations across conversion, dialog, and window lifecycle modules, including enum size reduction, conditional simplifications, and minor API usage cleanups to keepclippy -D warningsgreen.
v0.23.0
Added
- GIF Workflow: Added full GIF output support across frontend and backend, including container selection, dedicated GIF settings UI (palette colors, dither mode, loop count), strict compatibility normalization, backend validation, and FFmpeg palette pipeline generation.
- GIF Presets: Added built-in GIF-focused presets for web-friendly and higher-quality export scenarios.
Changed
- Shared Media Rules (FE/BE): Container, audio-only, and codec-compatibility rules now come from a single shared
media-rules.jsonsource consumed by both frontend and backend validation paths, removing duplicated rule definitions. - Multilingual Docs & Locales: Updated all localized READMEs and UI locale files to include GIF container support and GIF settings copy in each supported language.
Fixed
- Compatibility Drift Risk: Eliminated a class of frontend/backend mismatches where UI-allowed configurations could diverge from Rust-side input validation due to duplicated hardcoded rule tables.
- GIF Stream Mapping: Corrected GIF conversion mapping to emit a single filtered video stream (
[gif_out]), preventing muxer failures caused by multi-stream video output.
v0.22.0
Added
- AI Upscaling Setup: Updated documentation across all supported languages to guide users through Real-ESRGAN asset installation.
- Upscaling Capability Detection: The app now automatically detects the presence of the
realesrgan-ncnn-vulkansidecar and required ML models, gating UI controls accordingly.
Performance
- Upscale Thread Tuning: The ML upscaling pipeline now dynamically tunes
realesrgan-ncnn-vulkanthread counts (load:proc:save) based on source resolution, scale factor, and available CPU cores instead of using a fixed4:4:4configuration. This prevents VRAM exhaustion on lower-end GPUs while allowing higher concurrency on smaller inputs.
Fixed
- VideoToolbox Selection Freeze: Resolved an infinite reactive loop in the settings panel triggered by selecting VideoToolbox encoders, which were incorrectly reporting all encoding presets as invalid.
- Upscaling Duration and Gaps: Forced Constant Frame Rate (CFR) and synchronization during frame extraction to prevent duration drift and sequence gaps (static images) in AI-upscaled videos.
- Upscaling Pixel Format: Restored pixel format preservation in the AI upscaling pipeline, ensuring output matches source bit-depth (e.g., 10-bit) or defaults to compatible yuv420p.
- AI Upscale Progress: Improved progress accuracy by driving updates from per-frame completion logs and hardening calculations for videos where total frame counts cannot be pre-determined.
- Upscaler Preflight: Resolved an issue where the AI upscaler preflight check would fail on some systems due to non-zero exit codes during help-text verification.
- Log Highlighting (CSP): Updated Content Security Policy to allow inline styles, fixing Shiki-based runtime log highlighting in production builds.
- Upscale Mode Validation: Added strict backend validation for ML upscale modes to prevent invalid configurations from entering the processing queue.
- ML Control Reactivity: Fixed a UI bug where ML upscale buttons remained enabled even if runtime dependencies were missing.