github 66HEX/frame 0.26.0
v0.26.0

9 hours ago

Added

  • Image Workflow (End-to-End): Added first-class image source handling across probing (mediaKind=image), settings navigation (new Images tab), file-picker filters, and locale dictionaries.
  • Image Output Compatibility Rules: Extended shared frontend/backend media rules with dedicated image containers/codecs (png, jpg, webp, bmp, tiff) and aligned container capability checks.
  • Image Controls Parity: Added image-side settings for resolution/scaling, ML upscaling selection, and pixel format selection using the same compatibility-driven option model as video.

Changed

  • Native Dialog + Window Surface Simplification: Removed custom Rust dialog commands and the macOS dialog-host workaround in favor of direct @tauri-apps/plugin-dialog usage on the frontend. Also removed window effects/transparency plumbing (window tint setting, opacity store hydration, and opacity-driven background mixing), keeping the app on standard opaque window surfaces.
  • Crop Overlay Visual Overhaul: Reworked the preview crop overlay presentation with stronger contrast, improved frame styling, clearer rule-of-thirds guides, refined corner marks, and larger/more readable drag handles for a more professional editor-like feel.
  • Fixed App Typography Mode: Removed runtime font-family switching and locked UI typography to the embedded Loskeley Mono stack for consistent visuals across sessions/platforms.
  • Primary View Rename (DashboardWorkspace): Renamed the main app view identifier/labels across page state, titlebar controls, and locale dictionaries; synced non-source locales to the new titlebar.workspace key and applied translated values.
  • Image-Aware UI Semantics: Source metadata now uses image-specific labels/fields for image inputs (instead of video stream semantics), hides empty non-applicable metrics, and limits metadata editing fields to image-relevant tags.
  • Image Preview Interaction Model: Preview now renders images as still media, disables trim timeline/timecode interactions for image inputs, and keeps transform/crop tooling available.
  • Image Output Normalization: Config normalization and presets/output selection now enforce image-safe behavior (re-encode only, image-capable containers, no audio/subtitle carryover).

Fixed

  • Startup Window Handshake (No Splash): Removed the dedicated splash window flow and switched startup to show the main window only after initialization completes in the frontend boot sequence (finally-guarded), preventing stuck-splash states on packaged Windows installs while still avoiding hidden-window deadlocks when a startup step fails.
  • Crop Overlay Scaling + Layering: Moved crop overlay rendering outside the transformed video layer so handles/guides keep consistent on-screen size and no longer collapse to subpixel widths. Also raised the crop aspect-ratio action bar above overlay layers to prevent it from being visually covered during crop mode.
  • Settings Panel Scope: Removed the App Settings Visuals section and deprecated font-family controls to match the mono-only typography model.
  • Cancellation Event Semantics: Conversion manager now emits a dedicated conversion-cancelled event instead of conversion-error when a task was intentionally canceled, preventing false error dialogs and restoring clean cancellation flow in the queue UI.
  • Process Identity Guarding: Task control operations (pause/resume/cancel) now verify the active process identity using PID + process start-time metadata, reducing the risk of signaling a different process when PIDs are reused by the OS.
  • Manager Runtime Coverage: Added targeted unit tests for conversion-manager state cleanup and process-identity validation paths, increasing automated coverage of cancel/error/pause-resume critical runtime behavior.
  • Extended Clippy Quality Pass: Applied a broad pedantic/nursery/perf cleanup in Rust backend modules (queue manager, args/upscale/worker pipelines, dialog/capabilities, core bootstrap), preserving clippy -D warnings and reducing extended-clippy findings from ~173 to ~52 warnings.
  • Extended Clippy Follow-up (Queue/Probe/Rules): Refined conversion manager task-tracking internals (HashSet for running IDs), hardened Unix PID conversions, simplified media-rule lookups, and optimized probe metadata assignment paths; kept cargo test --locked and clippy -D warnings green while reducing extended-clippy findings from ~52 to ~22 warnings.
  • Extended Clippy Completion (Pedantic/Nursery/Perf): Finalized remaining extended-clippy items across conversion pipeline and tests (numeric conversion safety, assertion/message cleanup, extension checks, unnecessary collection removal, and documented intentional architectural lint expectations), bringing cargo clippy --all-targets --all-features --locked -- -W clippy::pedantic -W clippy::nursery -W clippy::perf to 0 warnings.
  • Encoder-Aware Pixel Format Compatibility: Reworked pixel format validation from container-only rules to shared container+encoder compatibility tables in media-rules.json, wired into both frontend normalization/UI option availability and Rust backend preflight validation. This prevents invalid combinations from being selectable/enqueued and avoids silent runtime pixel format downgrades in common hardware/software encoder paths.
  • Single-Image FFmpeg Output Path: Added explicit single-frame output flags in standard and upscale encode paths for image containers, preventing ffmpeg image-sequence pattern errors on standalone image export.
  • Image Metadata Classification Noise: Improved ffprobe mapping for images by classifying still-image inputs and clearing non-applicable duration/FPS/bitrate fields to avoid misleading values in UI and logs.

Don't miss a new frame release

NewReleases is sending notifications on new releases.