Repository navigation
Releases: 66HEX/frame
Releases · 66HEX/frame
Release list
Frame 0.33.1
Immutable
release. Only release title and notes can be modified.
Fixed
- Default Audio Selection: Selects the first available audio track after probing each new source, while preserving restored sessions and explicit track choices. Resolves #151.
- Conversion Start Guidance: Replaces the unexplained disabled Start button with a specific reason for each blocked state and opens the output-folder chooser when that is the missing step. Resolves #161.
- Linux Window Title: Sets
Frameas the native window title so X11 desktops and window-management tools no longer display a blank application name. Resolves #168. - Preview Wheel Zoom: Uses the standard wheel direction, with upward scrolling zooming in and downward scrolling zooming out. Resolves #160.
- Settings Persistence Diagnostics: Reports the failing read or write operation and a home-directory-redacted path, and preserves the existing settings target when atomic replacement fails. Improves diagnostics for #150.
Frame 0.33.0
Immutable
release. Only release title and notes can be modified.
Added
- M2T, MTS, and M2TS Workflows: Added complete MPEG transport-stream import, preview, re-encode, mixed subtitle, and stream-copy workflows with explicit 188-byte M2T and 192-byte MTS/M2TS profiles; MPEG-2 Video, MP2, Opus-in-TS, AC-3, and Blu-ray PCM encoding; program/service metadata Preserve, Clean, and Replace modes; SRT/ASS/WebVTT burn-in; embedded DVB/teletext/ARIB/PGS handling; and selectable
.supPGS copy or standards-compliant DVB conversion without private-data subtitle fallbacks. Resolves #111. - Selectable External Subtitles: Added multi-file import for SRT, ASS, and WebVTT sidecars as switchable output tracks, with per-track language, title, default, and forced metadata. External tracks are persisted with file settings, validated before conversion, kept synchronized with trimmed exports, and encoded according to the MP4, MOV, MKV, or WebM subtitle contract without forcing source audio and video streams out of copy mode.
Changed
- Explicit Stream Selection: Audio and embedded subtitle exports now map only tracks explicitly selected by the user; an empty selection produces no stream of that type instead of implicitly preserving every source track.
- Virtualized File Queue: Reused the Logs panel's uniform-list rendering and scrollbar for the workspace file queue, keeping large batches responsive while preserving row selection, actions, and accessibility.
- Subtitle Settings Workflow: Split the Subtitles tab into Selectable and Burn-in modes so only the relevant controls are shown. Selectable subtitles now combine imported sidecars with embedded source tracks, while burn-in import uses the same post-import file-row and removal pattern as selectable subtitles.
- Audio and Subtitle Track Rows: Reworked shared track rows so audio metadata uses a readable two-line layout with channels, language, track name, and bitrate grouped together, while subtitle rows remain compact and preserve the track index and codec when space is limited. Source track names now fall back to FFmpeg handler metadata when no title is available.
Fixed
- Track Selection Feedback: Smoothed selected, unselected, hover, and selection-dot transitions and cleared pressed state before click handlers run, preventing track rows from retaining an incorrect brighter color until focus moved elsewhere or showing an unwanted intermediate pressed color.
Frame 0.32.0
Immutable
release. Only release title and notes can be modified.
Added
- Light and Dark Themes: Added a persistent manual Dark/Light appearance setting backed by semantic OKLCH palettes, immediate whole-interface updates, accessible keyboard-selectable controls, deterministic visual-fixture overrides, contrast validation, and CI guards against legacy or unapproved UI color literals. Dark remains the default for existing installations.
- UI Scaling: Added persistent 80â200% interface scale presets to the Appearance section in app settings, primary-modifier zoom shortcuts, and scalable controls and custom input metrics across every GPUI surface. Interface scaling remains independent from preview canvas zoom and native macOS window controls. Resolves #52 and #60.
- Release Supply-Chain Verification: Added signed-tag and green-CI release gates, immutable release handling, SHA-256 checksum manifests, CycloneDX SBOMs, GitHub build-provenance attestations, and protected offline Ed25519 update-manifest signing.
- Repository Security Automation: Added weekly Dependabot updates, CodeQL, dependency review,
cargo auditandcargo denychecks, security-focused CODEOWNERS rules, checksum-pinned workflow tooling, least-privilege permissions, and credential-free repository checkouts. - Update Session Restoration: Kept update downloads running alongside conversions, blocked installation until conversion workers settle, atomically saved the queue and per-file settings before updater handoff, and restored that workspace after restart. Resolves #66.
- Structured Issue Forms: Added guided bug-report and feature-request forms covering environment, source media, reproduction steps, logs, workflow context, alternatives, and duplicate and Code of Conduct confirmations while keeping blank issues available. Resolves #79.
Changed
- macOS DMG Presentation: Replaced the default Finder disk-image layout with a deterministic Retina-ready installer window, branded background, optically positioned application and Applications-folder icons, hidden Finder chrome, and checksum-pinned
dmgbuildpackaging in validation and release workflows. - Rust Dependency Stack: Updated the application and release tooling to
cpal0.18,ed25519-dalek3,rfd0.17,ureq3,zip8, and newer vendored GPUI dependencies while preserving audio preview, signed-update, native dialog, verified download, and cross-platform bundling behavior. - Interface Motion: Standardized GPUI transitions on shared surface and interaction timings with ease-in-out easing, and animated the Logs copy confirmation by scaling, blurring, and cross-fading between the copy and check icons.
- Contributor CI Coverage: Extended
cargo xtask cito format, test, and lintframe-updaterexplicitly, including its unit tests and all-target Clippy checks. Resolves #72. - macOS Contributor Setup: Documented the full-Xcode Metal Toolchain requirement, availability check, and component download command for GPUI shader builds. Resolves #75.
Fixed
- Linux Titlebar Dragging: Replaced GPUI-CE's immediate mouse-down window move with Zed's titlebar drag sequence, starting native X11 and Wayland moves only after pointer motion and isolating window controls from drag events. This prevents clicks on empty titlebar space from crashing affected Linux sessions. Resolves #63 and #110.
- Updater Package Size Validation: Enforced the signed manifest size before and during package downloads, revalidated cached packages, and removed rejected partial files so oversized or truncated update payloads are never installed or retained. Resolves #83.
- Rounded Timecode Boundaries: Carried millisecond rounding across second, minute, and hour boundaries so values just below a boundary, such as
59.9999seconds, render as00:01:00.000instead of producing an invalid timecode. - Timecode Trim Editing: Reworked preview in/out fields as fixed
HH:MM:SS.mmmmasks with separator-skipping cursor navigation, draft-only editing, formatted paste support, Escape cancellation, and silent normalization and clamping only on Enter or focus loss, preventing partial input from being recalculated prematurely. Resolves #74. - Pressed Button Foregrounds: Kept animated text and icon colors synchronized with pressed button backgrounds across shared controls while the pointer moves, including correct hover restoration when released inside and animation reset when released outside.
- Collision-Safe Output Paths: Assigned deterministic suffixes to duplicate or existing output paths before conversion and disabled FFmpeg overwrites, preventing same-stem batch jobs or pre-existing targets from replacing prior data. Resolves #81.
- Display-Matrix Previews: Applied source display-matrix orientation when sizing preview frames so portrait iPhone videos are no longer stretched to their encoded landscape dimensions.
- Probe-Aware Stream Mapping: Replaced wildcard audio and subtitle mapping with explicit
ffprobestream indices, ignored undecodable APAC and data tracks, and skipped bitmap subtitles when the target requires text subtitles. Explicit incompatible subtitle selections now fail during preflight. Resolves #47 and #68. - Conversion Notification Grammar: Pluralized
fileanderrorindependently so conversion-finished notifications use correct singular, plural, and zero-count wording. Resolves #77. - Rust 1.95 Contributor Checks: Restored
cargo xtask cion the pinned Rust 1.95 toolchain by resolving new Clippy diagnostics without changing application behavior or generated workflow output. Resolves #70.
Frame 0.31.1
Changed
- Linux Notifications: Routed conversion completion notifications through the XDG Desktop Portal with a direct notification-service fallback for non-Flatpak Linux installations, and removed the Flatpak permission for direct notification bus access.
- Flathub Desktop Metadata: Shipped ready-to-install desktop and AppStream metadata from upstream, moved the system media-tools environment flag into the Flatpak sandbox configuration, and removed build-time metadata rewriting and the launcher wrapper from the production manifest.
Fixed
- Windows Release Builds: Pinned the Windows FFmpeg bundle to a retained BtbN month-end snapshot so release builds do not depend on daily assets that expire after 14 days.
Frame 0.31.0
Added
- Updateable AppImage Releases: Embedded
gh-releases-zsyncupdate information into Linux AppImage builds, generated matching.zsyncmetadata, and published those files with releases so AppImage managers can update Frame without manual GitHub downloads. - Production Flathub Distribution: Added Flathub-ready manifest generation, release source and
cargo vendorarchives, automated Flathub repository PR updates, and a Flatpak runtime mode that uses Freedesktop-provided FFmpeg/FFprobe instead of bundled media binaries. - Media Filter Tabs: Added dedicated Video Filters and Audio Filters settings tabs with FFmpeg-backed color, tone, detail, cleanup, style, interlace, volume, dynamics, EQ, pass, noise-reduction, de-essing, stereo-width, normalization, and limiter controls, including runtime filter capability detection, preview refresh handling, reset controls, and export/preview filter-chain coverage.
- Settings Tab Tooltips: Added animated labels to the icon-only settings tabs, with a configurable hover delay and a grace period for immediate transitions between neighboring tabs. Resolves #45.
- Reusable Conversion Sources: Added explicit Cancel controls that stop queued, running, or paused conversions without removing their source, plus a Convert Again action that preserves completed-file settings and returns the source to an editable state. Resolves #45.
Changed
- Output Folder Selection: Conversion outputs now use the default output folder selected in Settings instead of being saved next to each source file, giving queued files from different locations one consistent destination.
Fixed
- UNC Output Paths: Preserved periods in generated output names on Windows network shares instead of treating the final portion of the name as a file extension. Resolves #61.
- macOS Release Builds: Moved Intel and Apple Silicon bundle jobs to the macOS 26 GitHub-hosted runners so release and validation workflows use the supported packaging environment.
- Bundled FFmpeg Integrity: Pinned FFmpeg and FFprobe to version
8.1.2across macOS, Linux, and Windows, replaced mutable download URLs, and added SHA-256 verification for downloaded archives, extracted binaries, and cached runtime files.
Frame 0.30.0
Added
- Native GPUI Application: Rebuilt Frame as a Rust-native GPUI-CE desktop app, replacing the previous Tauri/Svelte shell while keeping the main workspace, preview, settings, queue, and logs workflows in a single native application.
- Rust Workspace Architecture: Added dedicated
frame-app,frame-core, andframe-updatercrates so FFmpeg argument generation, media probing, compatibility rules, queue control, and update logic can be tested and shipped outside the UI layer. - Native Packaging Pipeline: Added Rust-based release tooling, macOS/Linux/Windows bundle scripts, Linux desktop metadata, Windows resource embedding, and generated GitHub Actions workflows for building release artifacts.
- Signed Update System: Added a signed-manifest updater with platform-specific assets, SHA-256 verification, Ed25519 manifest signatures, install planning, and a bundled update helper for replacing installed builds.
- GPUI Preview and Editing Surface: Added a native preview panel with crop, transform, trim timeline, overlay controls, zoom handling, and FFmpeg-backed frame extraction for video, image, and audio workflows.
- Native Settings and Metadata Panels: Added GPUI settings surfaces for source details, output selection, video, audio, images, subtitles, metadata, and presets using the shared media compatibility model.
- Image Encoding Controls: Added format-specific still-image encoding controls for JPEG, WebP, PNG, and TIFF, including JPEG quality/Huffman mode, WebP lossy/lossless mode, quality/compression/presets, PNG compression/prediction, and TIFF compression selection with Rust-side validation and FFmpeg argument mapping.
Changed
- Application Runtime: Moved the production app from a webview-based Tauri runtime to a native Rust/GPUI runtime, reducing the JavaScript frontend boundary and making Rust the primary application layer.
- Conversion Flow: Reworked import, queue, progress, cancellation, pause/resume, logging, and notification handling around native Rust state and process controllers while preserving FFmpeg-based conversion behavior.
- Media Compatibility: Centralized container, codec, stream, pixel-format, image, subtitle, and metadata rules in
frame-coreso UI option availability and conversion validation use the same Rust model. - Documentation: Updated the project documentation around the GPUI-CE stack, Rust workspace layout, native packaging scripts, bundled FFmpeg runtime setup, and signed update manifest flow.
Removed
- Tauri/Svelte Application Shell: Removed the previous
src-tauribackend, SvelteKit frontend, Tauri capabilities/configuration, webview services, stores, components, routes, and JavaScript build toolchain. - Frontend Localization System: Removed the previous Svelte-era locale dictionaries and i18n extraction/sync guardrail scripts.
- Legacy Web Preview Pipeline: Removed the Pixi/WebGPU web preview implementation in favor of the GPUI/FFmpeg-backed native preview implementation.
- FFmpeg Log Syntax Highlighting: Removed the previous web-based FFmpeg log syntax highlighting from the Logs view during the native GPUI rewrite.
- ML Upscaling Runtime: Removed the bundled RealESRGAN model assets and Tauri upscaling worker path from the production app.
- Legacy App Icon Sets: Removed unused Tauri mobile/store icon resources, keeping the desktop package icon set consumed by the native bundle scripts.
v0.29.3
Changed
- GPUI Migration Bridge: Converted the final Tauri release into a bridge that tells users to uninstall the old Tauri app and install Frame 0.30.0 manually from GitHub Releases, Homebrew, WinGet, or the Linux tarball/AppImage/Flatpak channels.
- Release Automation: Kept the legacy Tauri bundle targets, including DEB when emitted by the old workflow, but disabled Homebrew and WinGet publishing for the bridge release so those channels can move directly to GPUI 0.30.0.
v0.29.2
Fixed
- Preview Image Loading: Fixed image sources and image overlays in the Pixi preview by decoding local files through the Tauri filesystem API and
ImageBitmap, avoiding stalled Pixi image loads and WebGPU cross-origin upload failures in dev and packaged builds. - Preview WebGPU Rendering: Centralized Pixi preview imports through a local bootstrap module with the required WebGPU uniform upload compatibility patch, and isolated overlay rendering in its own render group to keep overlay controls rendering correctly.
v0.29.1
Fixed
- Packaged Preview Renderer: Fixed a black video preview in packaged builds by loading Pixi's CSP-safe unsafe-eval polyfills before initializing the preview renderer.
v0.29.0
Added
- Pixi Preview Renderer: Added a Pixi.js-backed preview renderer for video/image presentation, including WebGPU preference, explicit frame rendering for paused/seeked video frames, and HiDPI canvas density capped at
2x. - Modular Preview Architecture: Split the monolithic preview panel into focused preview components and Svelte controllers for rendering, playback, crop state, toolbar actions, and trim timeline handling.
- Preview Canvas Navigation: Added preview-only zoom and pan controls for video/image canvas inspection, including wheel zoom, drag panning, double-click reset, and a dedicated bottom-right zoom toolbar.
- Preview Image Overlay: Added image overlay controls for video previews, including PNG/JPG/WebP selection, drag positioning, corner resizing, opacity adjustment, replacement/removal actions, and localized toolbar labels.
- Overlay Export Pipeline: Added FFmpeg overlay composition for re-encoded video and image outputs, with validation for missing overlay files, stream-copy mode, audio-only outputs, and GIF output.
- Trim Timeline Label Localization: Added a localized trim timeline label across all supported UI dictionaries.
Changed
- Preview Timeline Layout: Reworked trim controls into a compact minimal timeline paired with timecode inputs, including direct seek support, hover/current-time indicators, and disabled image-state handling.
- Preview Crop/Transform Controls: Moved rotation, flip, crop, crop-aspect, zoom, and overlay controls into localized icon toolbars around the preview surface while keeping preview transforms synchronized with persisted settings.
- Preview Media Pipeline: Switched video/image preview rendering from DOM media transforms to a Pixi canvas scene, while keeping audio preview on a hidden native audio element.
- Overlay Bounds: Clamped overlay scaling by the rendered source and target frame aspect ratios so oversized square/tall overlays stay inside widescreen video frames in both preview and export.
- Preview Action Buttons: Updated file-row, trim, crop, transform, and zoom actions to use shared button variants and tooltip treatment for more consistent preview/workspace controls.