This release is focused on making Windows export actually work, cutting recorder/editor overhead, and fixing a handful of ways the app could freeze or eat your desktop clicks.
Export
- Fixed MP4 export hanging on Windows. WebView2's hardware H.264 encoder would accept frames and never emit any, freezing progress at ~1–7% forever. Export now probes an encoder with real frames before trusting it, and every wait has a watchdog so a wedged encoder fails the route instead of hanging the app.
- Five encode routes cut down to two: verified Annex-B → ffmpeg stream copy, and RGBA → ffmpeg hardware encode (no WebCodecs required). MP4 muxing moved out of the WebView into Rust/ffmpeg.
- Much faster export. Frames are read straight off the GPU instead of being copied four times, and readback is pipelined with fenced PBOs so frame N composes while the GPU copies frame N-2.
- Recovers from GPU context loss. If the WebGL context dies under load, export reclaims the GPU and retries instead of reporting a bogus "no WebGL" error.
- Export is now a blocking progress dialog with Cancel, so the timeline and preview can't be touched mid-export.
- WebM without a suitable encoder now errors clearly instead of silently writing an MP4.
Recording
- 30 or 60 fps capture picker (screen capture at 60, face-cam at 30), persisted between sessions, with a warning in the export dialog when you request a higher rate than you captured.
- Fixed the setup overlay swallowing every desktop click — an invisible full-screen window could eat all input until the app was killed. Click-through now fails closed on every path.
- Fixed the macOS source picker freeze.
- Fixed Windows area-guide freezes: the fullscreen dim overlay is replaced by a crop-sized dashed border, excluded from capture, and selection resets when the recorder hides. Esc cancels area select.
- Mic warm-up on select, so hitting Record no longer waits on Bluetooth open latency.
- Smoother recorder bar drag and a working grip on the live HUD for repositioning it.
- Stop is no longer blocked by a wedged encoder — the ffmpeg finalize timeout is now reachable.
Performance
- Capture frame buffers are pooled and reused instead of allocating ~33MB per 4K frame.
- WGC frames are dropped before the GPU readback rather than after, removing a staging copy that stalled the desktop on high-refresh displays.
- Background jobs (proxy, camera track, thumbnails, captions) run below normal priority with bounded thread pools on Windows, so opening the editor no longer competes with the shell.
Editor & UI
- New updater experience: an in-app toast with real download progress and Later/Update, replacing the native dialog. Shown only in editor/library.
- Feedback dialog with contacts, plus rolling
capptivo.logand a warn-levelerrors.login AppData, reachable from the tray via "Open Error Log…". - Playback now stops when you drag the playhead or click the track, so you land on the frame you asked for.
- App version is shown in Config under About.
- Fixed thumbnail/poster generation failing silently (MJPEG rejected the pixel format).