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.