Skip to content

Releases: Exoridus/exosnap

ExoSnap 0.8.1 — Robust MSI packaging

Choose a tag to compare

@Exoridus Exoridus released this 30 Jun 03:20
Immutable release. Only release title and notes can be modified.
eca379e

ExoSnap 0.8.1 — Robust MSI packaging

A packaging-only patch release that fixes a critical installer defect affecting every MSI-based install since ~0.2.0.

The fix

The MSI file list (packaging/msi/Package.wxs) was hand-maintained and had drifted from the actual install staging tree, so the bundled FFmpeg runtime DLLs (avcodec, avformat, avutil, swresample) were never packaged into the MSI. As a result, every install via MSI / WinGet / Chocolatey crashed on launch with STATUS_DLL_NOT_FOUND. (Scoop and the portable ZIP were unaffected — they ship the full deploy tree.)

This is now correct-by-construction:

  • Package.wxs harvests the install staging tree — the file list is generated from what the build actually produces, so it can no longer drift.
  • MSI content assertion — the release build fails if the packaged MSI is missing any runtime DLL.
  • MSI install + launch smoke test — the release pipeline installs the MSI and verifies the app starts.
  • Release-push CI gate (release/** + v*) — the full Release build + packaging validation runs before any release ships, so a missing-DLL regression can never reach users again.

ADRs: 0036 — MSI auto-harvest staging tree, 0037 — packaging robustness gate.

Who should update

  • MSI / WinGet / Chocolatey users — required. Previous versions crashed on launch; 0.8.1 is the first working MSI.
  • Scoop / portable ZIP users — no functional change; update at your convenience.

No feature, capture, or UI changes from 0.8.0.

Notes

  • Pre-v1 preview. Settings, preset, and recording-history schemas may still change before 1.0.0.
  • NVIDIA NVENC required; AMD / Intel / software encoding not supported.
  • Unsigned build — Windows SmartScreen may warn on first launch. Verify the download with the published SHA-256.

Full changelog: v0.8.0...v0.8.1

ExoSnap 0.8.0 — Diagnostics as a feature

Choose a tag to compare

@Exoridus Exoridus released this 29 Jun 20:24
Immutable release. Only release title and notes can be modified.
5dbbea7

ExoSnap 0.8.0 — Diagnostics as a feature

Diagnostics becomes a first-class feature: ExoSnap now tells you why a recording would fail or stutter, and offers the concrete fix.

Highlights

  • Typed FixAction model (ADR 0033) — every detected issue carries a remedy classified as Auto / Assisted / External, with a reversible flag and a change summary.
  • Pre-flight readiness gate — blocker + notice checks run before a recording starts, so a misconfigured capture is caught up front instead of failing mid-record.
  • Live pipeline monitoring — low-cost frame-drop, A/V-drift and disk-fill-ETA tracking with encoder-vs-capture-vs-disk-bound classification.
  • Root-cause correlation — first showcase: VRR-vs-CFR judder, correlating present cadence to the "smooth game, stuttery recording" symptom.
  • Post-flight report card — frame-drop %, peak A/V drift and pipeline health after each recording.
  • PresentProvider with PresentMon — an opt-in, elevation-gated provider for tearing/game-present observation.
  • In-app updates (ADR 0034 Phase A) — the Settings Updates card is wired to the consent-gated GitHub-Releases flow.

Settings & UI polish

  • Reliable hover popovers: the countdown chevron menu and the info-i compare popovers no longer flicker, loop, or stick open — they close on true hover-out and the compare popover anchors to the glyph's corner.
  • The Hotkeys card is de-nested (rows live directly in the card, "Reset all" as a header badge) and the Quality row no longer shows a duplicate info-i.

Notes

  • Pre-v1 preview. Settings, preset, and recording-history schemas may still change before 1.0.0.
  • NVIDIA NVENC required; AMD / Intel / software encoding not supported.
  • Unsigned build — Windows SmartScreen may warn on first launch. Verify the download with the published SHA-256.

Full changelog: v0.7.0...v0.8.0

ExoSnap 0.7.0

Choose a tag to compare

@Exoridus Exoridus released this 26 Jun 00:34
Immutable release. Only release title and notes can be modified.
5f0cdfb

ExoSnap 0.7.0

This release brings the v10 design pass across the entire app, an expanded codec and color pipeline (HEVC, 10-bit, BT.709), a modal recording-error dialog, and a number of focused UX improvements.

Codec and color pipeline

  • HEVC video encoding (NVENC) is now available as a codec option, in both MKV and MP4 containers. MP4 HEVC output uses the hvc1 sample entry for broad player compatibility.
  • 10-bit video output (P010 pixel format) is available for HEVC Main10 and AV1 in 10-bit mode — SDR content at higher bit depth, no HDR transfer curve.
  • BT.709 color metadata is written deterministically to both MKV and MP4 outputs, giving video editors and players an accurate color description.
  • Selectable Y'CbCr color range: Full (default) or Limited, configurable per preset.
  • Per-display HDR status is now reported in the Diagnostics Capability Matrix, showing which monitors are HDR-capable.

Note: HEVC, hvc1, and 10-bit encoder paths are fully wired end-to-end but have not yet been validated across the full range of NVIDIA GPU generations under live recording conditions. If you encounter issues with these options, please report them via the in-app error dialog or file a GitHub issue.

Recording error dialog

  • When a recording stops unexpectedly, a modal error dialog is now shown with details about the failure. An opt-in report button lets you send a GitHub-formatted issue with the relevant log context.

v10 design pass

  • Transport Dock redesign: the Record button is now a split button — click the face to start immediately, click the chevron to start with a countdown. The "Saved" dock state is removed; saved notifications go through the toast system.
  • Audio level fill in the dock toggle buttons (SYS · APP · MIC · CAM): the active level is shown as a fill inside each toggle, with a grayed-out appearance when the track is off.
  • About is now a standard embedded nav page instead of a modal overlay, with a version facts table and direct links to GitHub and release notes. Updates status lives exclusively in the Settings Updates card.
  • Logs viewer: restored All / Info / Issues filter tabs with column-aligned output and a color-laned syntax palette.
  • Diagnostics: verdict is neutral by default; amber is shown only when an actual issue is present.
  • Settings: v10 design port with masonry column layout, visible filename token hints, and an Updates card.
  • Notification toast: the "Recording saved" toast now carries Edit and Show-in-folder actions directly.
  • Countdown ring on the preview during countdown; round capture-frame button in the dock.
  • Branded empty-state placeholder in the preview area when no capture source is active.

Appearance

  • Theme picker: the Appearance section in Settings shows 4 clickable preview cards (Dark · Default, Dark · Indigo, Light · Paper, Light · Slate), each a live mini-UI swatch. Selecting a card applies the theme immediately.
  • Hanken Grotesk is now bundled as the primary UI typeface.
  • All checkboxes now use the canonical ExoCheckBox widget consistently across the app.

Source Picker UX

  • Clicking a screen or window card in the Source Picker immediately commits that source and returns to the preview — no separate "Use selected source" step. The explicit Use button is now scoped to the Region section only, where a multi-step configuration (preset / draw / defer) is genuinely needed.

Settings

  • Settings search pill removed (including in Expert mode).

Known limitations

  • Unsigned binaries. The portable ZIP and MSI installer are both unsigned. Windows SmartScreen may show a warning on first launch; click "More info → Run anyway" to proceed.
  • HEVC, hvc1, and 10-bit are not yet fully hardware-validated. The encoder paths are implemented and functional but have not been confirmed across all supported NVIDIA GPU generations and driver versions under real recording conditions. Use H.264 or AV1 if you encounter issues.
  • No HDR10 output. 10-bit output is SDR only (no PQ / HLG transfer, no HDR10 metadata, no wide color gamut). True HDR recording is planned for a future release.
  • NVIDIA NVENC required. No AMD AMF, Intel Quick Sync, or software encoding fallback in this build.
  • For all other current boundaries, see KNOWN_LIMITATIONS.md.

ExoSnap 0.6.0

Choose a tag to compare

@Exoridus Exoridus released this 22 Jun 15:33
Immutable release. Only release title and notes can be modified.
63cc628

ExoSnap 0.6.0 — a pre-v1 Windows-native screen recorder.

Audio v2 (new)

  • Per-track gain & mute — independent gain (dB) and mute per audio source, applied in the mixer.
  • Brickwall limiter on the mixed bus (on by default, 0 dBFS ceiling) — a true peak limiter, not a hard clip.
  • Microphone DSP chain, each stage off by default: high-pass filter → noise gate → AGC → RNNoise neural noise suppression. Stages toggle individually; capture is byte-identical when all are off.
  • PCM (16/24/32-bit) and FLAC (16/24-bit, compression level 0–8) lossless audio codecs — MKV only.
  • Audio format model — configurable output sample rate (44.1 / 48 / 96 kHz), channels (mono / stereo) and bit depth for the lossless codecs. Capture stays at 48 kHz; the engine resamples/rematrixes once after the mix bus. Opus is locked to 48 kHz.

Settings

  • Settings UX redesign; the new audio controls live in the Expert audio section, with codec and format choices in the Output card.

Fixes

  • Long recordings no longer fail. A recording running past ~2 minutes previously aborted with a shutdown timeout (ERROR_TIMEOUT) and left an unfinalized file. The worker join budget now applies only to shutdown — not to recording duration.
  • Window protected during finalize — closing the window while a recording is being finalized is now blocked, so the file isn't truncated.

Downloads

File Size SHA-256
ExoSnap-0.6.0-windows-x64-portable.zip 63 MB e5bafabc51d1ef95f75e163564cc47d736a83b8774bb1bc91ca29163a7d5abee
ExoSnap-0.6.0-windows-x64.msi 27 MB 249bf07947e03bd2446fdb7032649e6f05b7cb5a3004ba45bcfd8fd0c39f0a22

Binaries are unsigned — Windows SmartScreen may warn on first launch (More info → Run anyway). Verify the SHA-256 against the .sha256 files if you wish.

ExoSnap 0.5.0

Choose a tag to compare

@Exoridus Exoridus released this 20 Jun 11:03
Immutable release. Only release title and notes can be modified.

ExoSnap 0.5.0 — a pre-v1 Windows-native screen recorder.

Themes (new)

  • 4 curated themes — 2 dark (Default · Indigo), 2 light (Paper · Slate), selectable in Settings → Appearance. Replaces the old accent picker; status colours stay on-meaning in every theme.

Settings, redesigned

  • Two-tier Default / Expert model: a calm default view plus an Expert toggle that reveals lower-level controls.
  • Slimmer top navigation (Record · Settings · Diagnostics · Logs · About); Hotkeys folded into a Settings card.
  • Two-column card layout, inline ⓘ hints, free codec choice with a compatibility callout, and a settings search (Expert).

Presets

  • Presets are now stored as TOML; manage, export and import via a dedicated Manage Presets dialog.

Recording & flow

  • Split recordings by file size (in addition to time).
  • Notification bell + hub for persistent advisories; manual update checks now live on the About page.
  • (Preview) Edit/Output/Save shell after recording — UI shell only, not yet functional.

Fixes & polish

  • The app launches from the build tree without Qt on PATH (no more missing-DLL dialogs); one canonical checkbox; readiness-first Diagnostics; extensive UI polish.

Downloads

File Size SHA-256
ExoSnap-0.5.0-windows-x64-portable.zip 51 MB 319d5b1ba24d6f6096df2088051d4130dddf60ccc4d18995cb48dea29c630e3c
ExoSnap-0.5.0-windows-x64.msi 15 MB 9fd5ff411e51aee282a7198964bdbd233251b60b935a7ff54c5947513c9a36ea

Binaries are unsigned — Windows SmartScreen may warn on first launch (More info → Run anyway). Verify the SHA-256 against the .sha256 files if you wish.

ExoSnap 0.4.0

Choose a tag to compare

@Exoridus Exoridus released this 18 Jun 23:22
Immutable release. Only release title and notes can be modified.
45f2037

Summary

ExoSnap 0.4.0 is the crash reporting and updates release. It adds local-first crash capture
(out-of-process Crashpad), a privacy-scrubbed and consent-gated crash report surfaced on the next
launch after a crash, two-stage crash delivery (an assisted GitHub issue, or an automated opt-in
upload to Sentry with EU data residency), and an update system with Stable and Preview channels that
verifies a signed manifest (ed25519 via Monocypher + SHA-256) and notifies you when a newer release
is available.

The presence layer from 0.3.0 (capture-excluded overlays, tray icon, notification toasts) and the
reliability foundation from 0.2.0 (MKV + MP4-via-remux, crash recovery, low-disk guard, MP4 split)
ship unchanged as the base.

This is a pre-v1 preview. Settings, preset, and recording-history file formats are not frozen and
may change incompatibly before 1.0.0.


Highlights

Local-first crash capture

  • Out-of-process crash capture via Crashpad (sentry-native). The handler runs outside the app so
    it survives a hard crash of the recorder process.
  • Crash detection is next-launch. ExoSnap writes a clean-exit marker and a per-session sidecar
    (last_session.json). If the previous session did not exit cleanly, the next launch surfaces a
    crash dialog after the recovery overlay. No client-side minidump parsing — stacks are
    symbolicated server-side from PDBs.
  • The crash dialog shows exactly what would be sent (privacy-scrubbed context) and never sends
    anything without an explicit choice.

Consent-gated, two-stage crash delivery

  • Stage 0 — assisted GitHub issue. Always available. Prefills a GitHub issue with the scrubbed
    context so you can review and submit it yourself. No account linkage beyond your own GitHub action.
  • Stage 1 — automated opt-in upload to Sentry. EU data residency (.de ingest), DPA-governed.
    The Sentry DSN is compiled in only under the official-build gate, so self-built binaries never
    upload. Consent is required (require_user_consent); logs are disabled in release.
  • Privacy scrubbing (allowlist). Only OS/build, GPU + driver, app version, encoder backend,
    container + codec, and the stack/minidump are included. User names, file paths, machine names, and
    recording file names are scrubbed. The crash database lives under
    %LOCALAPPDATA%\ExoSnap\crashes.

Update checking (Stable / Preview)

  • Checks public GitHub Releases (no token) for a newer version on the selected channel and
    notifies you in-app with an UpdateAvailable toast.
  • Notify + open releases page. ExoSnap does not download, install, or restart on its own;
    in-place auto-update is deferred. A recording-in-progress guard prevents update prompts from
    interfering with an active session.
  • Signed manifest verification. The manifest is verified with an ed25519 signature
    (vendored Monocypher 4.0.2, RFC-8032 / SHA-512 verify-only) plus a SHA-256 package hash.
    Downgrades below the minimum version are rejected (rollback protection).
  • Update checking is off by default for self-built binaries (the official public key must be
    embedded) and requires no GitHub token in the client.

Release plumbing

  • A CI job validates the heavy crash-capture ON build (EXOSNAP_ENABLE_CRASH_CAPTURE=ON) and
    confirms crashpad_handler.exe is staged.
  • crashpad_handler.exe is packaged into the portable ZIP and MSI; PDB symbols are archived per
    release for server-side symbolication.

Fixes and internal changes

  • ed25519 verification switched to vendored Monocypher 4.0.2 (crypto_ed25519_check,
    RFC-8032 / SHA-512) — replaces a hand-written ref10 variant; pinned with per-file SHA-256 in
    THIRD_PARTY_NOTICES, dual CC0-1.0 / BSD-2 (GPL-compatible). 34 update tests including RFC vectors.
  • ON + official build fixes (release blockers): FetchContent-relative third-party license paths
    (${<dep>_SOURCE_DIR}) so FETCHCONTENT_BASE_DIR works for the Crashpad MAX_PATH workaround; a
    valid public-key length check (CMake has no {n} regex quantifier — switched to a string(LENGTH)
    check).
  • Build/include-order fix in crash_scrubber.cpp / package_verifier.cpp (C4005 PASCAL/bcrypt
    under Ninja + MSVC /WX); Monocypher excluded from cppcheck.
  • libs/update tests explicitly registered (the project uses bare enable_testing()), and the
    update service version is sourced from exosnap::build::kVersion.
  • PRIVACY.md updated: Stage 1 present and opt-in; the stale "planned — not present" block removed.
  • Version: canonical version bumped to 0.4.0 in project(exosnap VERSION 0.4.0) (root
    CMakeLists.txt); all derived metadata (VERSIONINFO, About surface, artifact names) update
    automatically.
  • KNOWN_LIMITATIONS.md updated: crash reporting and updates section added; the deferred-features
    list moved from the 0.3.0 boundary to the 0.4.0 boundary.

Known limitations

See KNOWN_LIMITATIONS.md (shipped with the package) for the full current boundary.

  • Crash detection is next-launch only — an immediate in-session crash reporter (Crash A2) is
    deferred past 0.4.0.
  • Stage 1 upload is official-builds only — self-built binaries never upload (Stage 0 is always
    available).
  • Automated symbol upload not yet wiredsentry-cli PDB upload is pending an auth token;
    symbols are archived per release in the meantime.
  • Update is notify + manual download — no in-place download, no auto-install, no silent restart.
  • No code signing (portable ZIP and MSI both unsigned); Windows SmartScreen may warn on first
    launch. Update integrity is provided by the ed25519-signed manifest, not Authenticode.
  • NVIDIA NVENC only — no AMD/Intel/software encoding fallback.
  • No HDR10 / 10-bit pipeline (8-bit 4:2:0 only). HEVC, PCM, and FLAC are not implemented.
  • No built-in editor, trimming, or Quick Trim. No Replay Buffer.
  • Display identity uses the GDI device name and may be reassigned on a monitor topology change;
    re-select a saved Region/Display target after a reboot or reconnect. Hot-swap during recording is
    not supported.

Supported formats (0.4.0)

Container Video Audio Notes
MKV (default) AV1, H.264 (NVENC) Opus, AAC-LC Crash-tolerant recording format; split supported
WebM AV1 (NVENC) Opus Split supported
MP4 AV1, H.264 (NVENC) AAC-LC Remuxed from MKV on stop; split supported

HEVC, PCM, and FLAC are not implemented. Exact codec availability depends on your GPU generation,
driver, and the selected container/codec combination; invalid combinations are not offered.


Pre-v1 notice

ExoSnap 0.4.0 is a pre-v1 preview. Configuration, preset, and recording-history file schemas are
not frozen and may change in incompatible ways before 1.0.0. Keep your own backups of presets you
care about.


Install

Portable ZIP and MSI are attached to this release. The portable build needs no installer — extract
the ExoSnap-0.4.0-windows-x64-portable folder and run exosnap.exe. The Microsoft Visual C++
2022 x64 Redistributable
is required (usually already present); the WinGet package installs it
automatically, other distributions do not bundle it. Neither artifact is code-signed; Windows
SmartScreen may warn on first launch.

Verify a download with Get-FileHash <file> -Algorithm SHA256 against the published .sha256
sidecar.


Reporting issues

Please open an issue at https://github.com/Exoridus/exosnap/issues. Including your Windows version,
GPU model, NVIDIA driver version, and the startup log (%TEMP%\exosnap-recorder-app-startup.log)
helps a lot. If ExoSnap crashed, the next-launch crash dialog can prefill an issue for you (Stage 0).


ExoSnap is licensed under GPL-3.0-or-later. Third-party component licenses are listed in
THIRD_PARTY_NOTICES.md, with full texts under licenses/. The bundled FFmpeg libraries are
LGPL-2.1 dynamically linked builds from
Exoridus/exosnap-ffmpeg-build; see
licenses/ffmpeg.txt for the full text.

ExoSnap 0.3.0

Choose a tag to compare

@Exoridus Exoridus released this 14 Jun 00:02
Immutable release. Only release title and notes can be modified.
afd1990

Summary

ExoSnap 0.3.0 is the presence and notifications release. It ships the complete capture-excluded
on-screen overlay layer (recording status, diagnostics, and countdown), a tray icon with
recording/paused state and unread badge, transient notification toasts for every key lifecycle
event, a refined region-selection overlay, close-to-tray, and an opt-in interactive quick-control
pill. These features are all excluded from the captured frame via WDA_EXCLUDEFROMCAPTURE.

The reliability foundation from 0.2.0 (MKV + MP4-via-remux, crash recovery, low-disk guard,
MP4 split) ships unchanged as the base.

This is a pre-v1 preview. Settings, preset, and recording-history file formats are not frozen
and may change incompatibly before 1.0.0.


Highlights

Capture-excluded on-screen overlays

All overlays use SetWindowDisplayAffinity(WDA_EXCLUDEFROMCAPTURE) — they appear on the user's
desktop but are invisible inside the captured frame, the recording file, and screen-sharing
sessions. If the capture-exclusion API fails (e.g. an older Windows build), the overlay hides
itself and logs the failure rather than leaking into the recording.

  • Recording overlay — top-right corner of the recorded monitor: status badge (REC/PAUSED)
    and elapsed timer. Visible only while recording or paused.
  • Diagnostics overlay — top-left corner of the recorded monitor, stacked below the REC pill:
    live fps, dropped frames, A/V drift, and output file size; muted-source glyphs (MIC/SYS) when a
    track is muted. Toggle in Advanced settings (off by default).
  • Countdown overlay — center of the recorded monitor: a 3-2-1 countdown displayed before
    each recording starts (class-1: fixed position, non-interactive, capture-excluded).
  • Overlay re-skin — both overlays updated to the Mappe wave-03 design tokens (pill shape, coral
    accent, refined typography). An anti-cheat compatibility note is included in the documentation
    (click-through, no code injection — low anti-cheat risk; opt-out for competitive titles is on the
    roadmap).

Tray icon + unread badge

A tray icon appears in the system notification area showing recording state:

  • Idle / Recording / Paused — distinct icon states so the recording state is always visible.
  • Unread badge — increments each time an actionable toast notification becomes visible (toasts
    that carry a button action, e.g. Recover, Open folder). Badge clears when the tray icon is clicked
    (no persistent notification panel in this release; a history panel is planned for a future wave).

Notification toasts

Transient toast notifications appear in the bottom-right corner of the primary monitor. Issued for:

  • Saved — when a recording (including remux) finishes successfully. Auto-dismisses after 5 s.
  • Low storage — mirrors the 2 GB Diagnostics warning for users not watching the Diagnostics page.
    Sticky (does not auto-dismiss).
  • Unexpected stop — when recording is stopped by the low-disk hard-stop or any non-user event.
    Sticky (does not auto-dismiss).
  • Recovery available — on launch, when one or more recovery candidates exist in the manifest.
    Sticky (does not auto-dismiss).

The notification layer is intentionally lightweight: no persistent notification center panel, no
interaction model beyond dismiss. The tray unread badge provides the lightweight running count.
Toast notifications may be suppressed by Windows Focus Assist / Do Not Disturb mode — this is a
system behavior and is not controlled by ExoSnap.

Countdown overlay

A 3-2-1 countdown is shown on the recorded monitor before each recording starts. The overlay is
capture-excluded and centered on the recorded monitor. On multi-monitor setups it follows the
selected monitor. Not configurable in this release.

Capture-frame dock button and preview integration

  • A round camera button in the Transport Dock triggers a single-frame capture (NV12 GPU readback →
    PNG). This replaces the previous DXGI-occluded preview overlay approach for the capture-frame
    action and keeps the dock layout consistent.
  • The existing capture-frame hotkey (index 2) remains fully functional.

Refined region-selection overlay

The RegionSelectionOverlay is reskinned to the Mappe wave-03 spec: darker scrim, coral
corner handles, improved typography for the dimension/position readout. The interaction model
(click-drag to select, resize handles, confirm/cancel) is unchanged.

Close-to-tray

Closing the main window sends ExoSnap to the tray rather than terminating it (opt-in, off by
default). When enabled:

  • Clicking the tray icon restores the main window.
  • A right-click tray menu offers Show/Hide window, Start/Stop recording, and Quit.
  • A recording in progress is not affected by close-to-tray — the recording continues.
  • The exit guard for in-progress saves (remux-on-stop phase) remains active.

Opt-in quick-control pill

An interactive capture-excluded overlay pill anchored to the bottom-center of the primary display.
Off by default; enable in Advanced settings. Visible only while recording is active. When enabled:

  • Shows a drag grip (click to collapse/expand) plus three action buttons: Pause/Resume, Stop,
    and Capture Frame (no marker button; markers are deferred to 0.11.0).
  • Fully interactive — accepts mouse input (drag to reposition, click to act). Not click-through.
  • Capture-excluded via WDA_EXCLUDEFROMCAPTURE.
  • Designed for situations where the user cannot see the main ExoSnap window (e.g. full-screen
    application recording).

Fixes and internal changes

  • ADR 0016 updated: all 0.3.0 overlay implementations recorded; DIAGNOSTICS-OVERLAY-R1,
    COUNTDOWN-OVERLAY-R1, QUICK-PILL-R1 marked IMPLEMENTED.
  • Build: EXOSNAP_CONFIG_DIR isolation wired through all smoke/validation environments.
  • Version: canonical version bumped to 0.3.0 in project(exosnap VERSION 0.3.0) (root
    CMakeLists.txt); all derived metadata (VERSIONINFO, About surface, artifact names) update
    automatically.
  • KNOWN_LIMITATIONS.md updated: overlay/notification limitations section added; deferred
    features list updated from 0.2.0 to 0.3.0 boundary.

Known limitations

See KNOWN_LIMITATIONS.md (shipped with the package) for the full current boundary.

  • NVIDIA NVENC only — no AMD/Intel/software encoding fallback.
  • No persistent notification center — the tray unread badge is the notification history; a
    panel is not shipped in this release.
  • Fullscreen/exclusive capture matrix deferred — capturing games that use exclusive fullscreen
    or borderless-window exclusion is deferred to 0.12.x (RC stabilization wave). The overlays work
    correctly with windowed and monitor-capture targets.
  • Countdown not configurable — duration and position are fixed in 0.3.0.
  • Quick-control pill is opt-in — disabled by default; enable in Advanced settings.
  • Toast suppression — Windows Focus Assist / Do Not Disturb may suppress toast notifications;
    this is OS behavior.
  • Poll-based disk monitor: a very fast sequential write burst could exceed the hard-stop
    threshold between 5 s polls.
  • No automatic update checking or in-app updater.
  • No code signing (portable ZIP and MSI both unsigned); Windows SmartScreen may warn on first launch.
  • No Replay Buffer.
  • No built-in editor, trimming, or Quick Trim.
  • No HDR10 / 10-bit pipeline (8-bit 4:2:0 only).
  • Display identity uses the GDI device name and may be reassigned on a monitor topology change;
    re-select a saved Region/Display target after a reboot or reconnect.
  • Hot-swap during recording is not supported.

Supported formats (0.3.0)

Container Video Audio Notes
MKV (default) AV1, H.264 (NVENC) Opus, AAC-LC Crash-tolerant recording format; split supported
WebM AV1 (NVENC) Opus Split supported
MP4 AV1, H.264 (NVENC) AAC-LC Remuxed from MKV on stop; split supported

HEVC, PCM, and FLAC are not implemented. Exact codec availability depends on your GPU generation,
driver, and the selected container/codec combination; invalid combinations are not offered.


Pre-v1 notice

ExoSnap 0.3.0 is a pre-v1 preview. Configuration, preset, and recording-history file schemas are
not frozen and may change in incompatible ways before 1.0.0. Keep your own backups of presets
you care about.


Install

Portable ZIP and MSI are attached to this release. The portable build needs no installer — extract
the ExoSnap-0.3.0-windows-x64-portable folder and run exosnap.exe. The Microsoft Visual C++
2022 x64 Redistributable
is required (usually already present); the WinGet package installs it
automatically, other distributions do not bundle it. Neither artifact is code-signed; Windows
SmartScreen may warn on first launch.

Verify a download with Get-FileHash <file> -Algorithm SHA256 against the published .sha256
sidecar.


Reporting issues

Please open an issue at https://github.com/Exoridus/exosnap/issues. Including your Windows
version, GPU model, NVIDIA driver version, and the startup log
(%TEMP%\exosnap-recorder-app-startup.log) helps a lot.


ExoSnap is licensed under GPL-3.0-or-later. Third-party component licenses are listed in
THIRD_PARTY_NOTICES.md, with full texts under licenses/. The bundled FFmpeg libraries are
LGPL-2.1 dynamically linked builds from
Exoridus/exosnap-ffmpeg-build; see
licenses/ffmpeg.txt for the full text.

ExoSnap 0.2.0

Choose a tag to compare

@Exoridus Exoridus released this 13 Jun 05:55
Immutable release. Only release title and notes can be modified.
f3ace2e

Summary

ExoSnap 0.2.0 is the reliability foundation release. It ships the remux-first MP4 strategy
(ADR 0014), a crash-recovery workflow, low-disk guards, FAT32 filesystem checks, a container
compatibility registry, and MP4 split via per-segment remux. MKV remains the sole recording
container; MP4 output is delivered by stream-copying the transient MKV to a progressive,
faststart-enabled MP4 after recording stops.

This is a pre-v1 preview. Settings, preset, and recording-history file formats are not frozen
and may change incompatibly before 1.0.0.


Highlights

MP4 via remux-on-stop

MP4 output is no longer written directly. ExoSnap now always records to a crash-tolerant MKV
transient file and stream-copies it to a faststart progressive MP4 after stop. The transient MKV
is deleted on success and retained for recovery on failure.

  • SAVING state: the Transport Dock and status pill show Saving… while the remux runs in the
    background. All recording controls are locked during this phase.
  • App-exit guard: closing ExoSnap while a save is in progress shows a modal "Wait / Cancel save
    and close" dialog.
  • MF/SinkWriter MP4 writer removed: the legacy Media Foundation mux path is gone; libavformat
    handles all remux and future trim work.
  • libavformat is the LGPL-shared prebuilt from the companion
    Exoridus/exosnap-ffmpeg-build (r3, SHA256-pinned),
    statically linked against mux/demux DLLs deployed flat next to exosnap.exe.

Crash recovery

If a recording session is interrupted by a crash or forced kill, ExoSnap writes a
recovery-manifest.json to its config directory before every session starts. On the next launch a
recovery overlay appears for each orphaned artefact, showing filename, size, and date, with these
actions per entry (ADR-0015):

  • Finish — saves the recording as it was originally configured (MKV rename/repair, or MP4
    remux), honouring the manifest snapshot. No user format choice is offered.
  • Continue — shown only for non-finalized (true-crash) artefacts. Arms the coordinator in a
    paused state; Resume starts the next recording slice aligned with the per-segment machinery. The
    1–2 s data loss at the crash boundary is accepted and visible as the slice boundary.
  • Delete — inline two-step confirmation; permanently removes the artefact.
  • Decide later — an explicit text button (replacing the bare ×). Entries remain in the
    manifest and the overlay re-shows on the next launch.

At most one Continue session can be armed at a time; continued sessions produce independent
recording slices (no single-file concat — Quick Trim is planned for 0.11.0).

Low-disk guard

ExoSnap now monitors free space on the output drive during recording:

  • Warning — 2 GB free (rec.005): a Notice appears in Diagnostics. Recording continues.
  • Hard stop — 500 MB free (rec.007): a running recording is stopped gracefully; start is
    blocked when below the threshold.
  • For MP4 sessions the effective hard-stop threshold is raised by the current transient-MKV size
    so the remux phase can always complete (roughly 2× the file size must be available). For split
    MP4 sessions the reserve sums all in-flight transient MKV sizes plus the live segment estimate.
  • A background thread polls every 5 s; the stop is single-fire to avoid duplicate stops on
    oscillating drives.

FAT32 / filesystem check

  • New diagnostic check rec.008: when the output volume is FAT32, a Notice (not a Blocker) warns
    that the 4 GiB per-file limit will truncate long recordings. NTFS, exFAT, and other filesystem
    types pass silently. Recording is not blocked — short clips on FAT32 work correctly.
  • Detection uses GetVolumeInformationW behind an injectable IFilesystemProvider interface,
    following the same pattern as the disk-space provider.

Container compatibility registry

  • ContainerCompatRegistry becomes the single source of truth for container × video-codec ×
    audio-codec compatibility, classifying combinations as Recommended / Allowed / Experimental /
    Prohibited.
  • RecordingPreset::ReconcileContainerCodecs() and SettingsResolver delegate to the registry;
    ad-hoc switch/if chains were removed.
  • CapabilitySet::QueryCombo() gates recording start: Prohibited → Invalid → recording blocked.
  • MKV + H.264 + Opus reclassified from Prohibited to Allowed (Matroska carries Opus natively; the
    write path is production-validated via AV1 + Opus).
  • Default profile confirmed as MKV + AV1 + Opus + CFR 60 fps (matches MakeDefaultPreset()).

MP4 split via per-segment remux

  • When the output container is MP4 and a split boundary fires (manual or automatic), each completed
    transient MKV segment is remuxed to a progressive MP4 in a background thread while recording
    continues into the next segment.
  • Per-segment recovery manifest lifecycle: an entry is created before each segment starts, updated
    on finalization, and removed on success; entries persist across crashes.
  • Stop semantics: Saved is reported only after all segment remux threads have drained.
  • The disk reserve (PendingRemuxReserveBytes) sums all in-flight transient MKV sizes and is added
    to the hard-stop threshold to keep the disk guard correct during concurrent background remuxes.

Fixes and internal changes

  • Build: test discovery switched to DISCOVERY_MODE PRE_TEST globally to avoid 0xc0000135
    (FFmpeg DLLs not found) during build-time test discovery.
  • ADR 0008 / 0010 / 0014: container-backend choice resolved; stale fMP4 labels removed from the
    codec/container matrix; remux-on-stop decision (no fMP4 recording writer) accepted with the split
    consequences section added.
  • ADR 0016: the on-screen overlay architecture is recorded for the upcoming 0.3.0 presence wave.
  • License compliance: licenses/ffmpeg.txt (LGPL-2.1) is staged from the FFmpeg build;
    THIRD_PARTY_NOTICES.md updated; the license-bundle test enforces both.
  • KNOWN_LIMITATIONS.md updated throughout: crash-recovery workflow, disk-space thresholds,
    FAT32 behaviour, and MP4 split status are all documented.

Known limitations

See KNOWN_LIMITATIONS.md (shipped with the package) for the full current boundary.

  • NVIDIA NVENC only — no AMD/Intel/software encoding fallback.
  • No toast or tray notification when a recovery overlay is dismissed (planned for 0.3.0).
  • FAT32 auto-split not implemented: when the 4 GiB limit is approached, recording stops rather
    than auto-splitting (the rec.008 Notice warns ahead of time).
  • Poll-based disk monitor: a very fast sequential write burst could exceed the hard-stop
    threshold between 5 s polls.
  • Network-drive space reporting may be unreliable; no special network-drive handling.
  • No automatic update checking or in-app updater.
  • No code signing (portable ZIP and MSI both unsigned); Windows SmartScreen may warn on first
    launch.
  • No Replay Buffer.
  • No built-in editor, trimming, or Quick Trim.
  • No HDR10 / 10-bit pipeline (8-bit 4:2:0 only).
  • No multi-vendor hardware-encoder matrix (NVIDIA only).
  • Display identity uses the GDI device name and may be reassigned on a monitor topology change;
    re-select a saved Region/Display target after a reboot or reconnect.
  • Hot-swap during recording is not supported.

Supported formats (0.2.0)

Container Video Audio Notes
MKV (default) AV1, H.264 (NVENC) Opus, AAC-LC Crash-tolerant recording format; split supported
WebM AV1 (NVENC) Opus Split supported
MP4 AV1, H.264 (NVENC) AAC-LC Remuxed from MKV on stop; split supported

HEVC, PCM, and FLAC are not implemented. Exact codec availability depends on your GPU generation,
driver, and the selected container/codec combination; invalid combinations are not offered.


Pre-v1 notice

ExoSnap 0.2.0 is a pre-v1 preview. Configuration, preset, and recording-history file schemas are
not frozen and may change in incompatible ways before 1.0.0. The recovery-manifest.json
schema is v1 in this release; corrupt or future-schema manifests are silently reset (no migration
attempt). Keep your own backups of presets you care about.


Install

Portable ZIP and MSI are attached to this release. The portable build needs no installer — extract
the ExoSnap-0.2.0-windows-x64-portable folder and run exosnap.exe. The Microsoft Visual C++
2022 x64 Redistributable
is required (usually already present); the WinGet package installs it
automatically, other distributions do not bundle it. Neither artifact is code-signed; Windows
SmartScreen may warn on first launch.

Verify a download with Get-FileHash <file> -Algorithm SHA256 against the published .sha256
sidecar.


Reporting issues

Please open an issue at https://github.com/Exoridus/exosnap/issues. Including your Windows
version, GPU model, NVIDIA driver version, and the startup log
(%TEMP%\exosnap-recorder-app-startup.log) helps a lot.


ExoSnap is licensed under GPL-3.0-or-later. Third-party component licenses are listed in
THIRD_PARTY_NOTICES.md, with full texts under licenses/. The bundled FFmpeg libraries are
LGPL-2.1 dynamically linked builds from
Exoridus/exosnap-ffmpeg-build; see
licenses/ffmpeg.txt for the full text.

ExoSnap 0.1.0

Choose a tag to compare

@Exoridus Exoridus released this 11 Jun 01:53
Immutable release. Only release title and notes can be modified.
4e45d7c

Summary

ExoSnap 0.1.0 is the first public, pre-v1 Windows preview of a native screen / application / region recorder built around a high-performance NVIDIA NVENC pipeline, flexible container/codec profiles, multi-track audio routing, a webcam overlay, and built-in diagnostics. It is distributed as both a portable ZIP and a per-machine MSI installer.

This is a pre-v1 preview, not the final 1.0 release. Settings, preset, and recording-history file formats are not frozen and may change incompatibly before 1.0.0.

Highlights

  • Capture an application window, a monitor, or a screen region, recorded as CFR 60 fps through a native GPU pipeline.
  • NVIDIA NVENC hardware video encoding: H.264 and AV1 (where the GPU/driver expose it).
  • Multi-track audio routing for APP, SYS, and MIC sources with a reorderable / mergeable track layout (merge-first by default).
  • Container/codec profiles: MKV (default) + H.264 + AAC, plus WebM (AV1 + Opus) and MP4 (H.264 + AAC).
  • Webcam picture-in-picture overlay with drag/resize and real mirroring.
  • Recording presets, rebindable global hotkeys (default Start/Stop Alt+F9), single-frame capture, and recording split for MKV/WebM.
  • Diagnostics-first: invalid recordings are blocked before start with a clear diagnostic instead of failing silently; live recording metrics and rich logging are exposed in-app.
  • Dark-mode-first UI with Record, Video, Audio, Output, Webcam, Hotkeys, Diagnostics, Logs, and Advanced views.

System requirements

  • Windows 10 or 11, 64-bit (Windows 11 recommended; Windows 10 best-effort).
  • An NVIDIA GPU with supported NVENC capability (RTX 20-series or newer recommended) and a current NVIDIA display driver. AMD, Intel, and software encoding are not supported in 0.1.0; if no supported NVENC encoder is detected, recording is blocked with a diagnostic.
  • Microsoft Visual C++ 2022 x64 runtime (usually already present). If the app fails to start with a missing-DLL error, install it from https://aka.ms/vs/17/release/vc_redist.x64.exe.

Supported formats

Container Video Audio Notes
MKV (default) H.264 (NVENC) AAC-LC Flexible default container; split supported
WebM AV1 (NVENC) Opus Split supported
MP4 H.264 (NVENC) AAC-LC Normal recording only; no split, not crash-safe

HEVC, PCM, and FLAC are not implemented in 0.1.0. Exact codec availability depends on your GPU generation, driver, and the selected container/codec combination; invalid combinations are not offered.

Installation

MSI package

  1. Download ExoSnap-0.1.0-windows-x64.msi.
  2. Run it; ExoSnap installs per-machine to %ProgramFiles%\Codexo\ExoSnap\ and adds a Start Menu shortcut.
  3. Silent install: msiexec /i ExoSnap-0.1.0-windows-x64.msi /quiet /norestart.

The MSI is not yet code-signed; Windows SmartScreen / UAC may warn on first run. User data (settings, presets, history) is not installed or removed by the MSI.

Portable package

  1. Download ExoSnap-0.1.0-windows-x64-portable.zip.
  2. Extract the entire ExoSnap-0.1.0-windows-x64-portable folder to a location of your choice.
  3. Run exosnap.exe from the extracted folder. Keep the folder intact — the app depends on the bundled Qt runtime DLLs and the plugins/ directory.

There is no installer for the portable build, and it is not code-signed; SmartScreen may warn on first launch.

Checksums

Verify your download against the published SHA-256 sidecars:

ExoSnap-0.1.0-windows-x64-portable.zip   SHA-256: f046cfd7d50db1ed1d07394e5da79a9d0a34a7968ffdeb6878db75486ba31ef0
ExoSnap-0.1.0-windows-x64.msi            SHA-256: 6dedf7ecdd376afdf21952833caaba214b2b0d66ffecaf6a0b040e97acb577b6

In PowerShell:

Get-FileHash .\ExoSnap-0.1.0-windows-x64-portable.zip -Algorithm SHA256
Get-FileHash .\ExoSnap-0.1.0-windows-x64.msi -Algorithm SHA256

The printed hash must match the value in the corresponding .sha256 file. The checksum verifies download integrity only; it is not a publisher signature.

Known limitations

  • NVIDIA NVENC only — no AMD/Intel/software encoding fallback.
  • No crash-recovery workflow. Progressive MP4 is not crash-safe; an interrupted active recording may be unusable. For MKV/WebM split recordings, already-finalized segments remain usable.
  • MP4 split is not available; HEVC, PCM, FLAC, HDR/10-bit are not implemented (8-bit 4:2:0 only).
  • No automatic update checking / in-app updater; no Replay Buffer; no built-in editor/trimming.
  • No code signing yet (portable ZIP and MSI both unsigned).
  • Display identity uses the GDI device name and may be reassigned on a monitor topology change; re-select a saved Region/Display target after a reboot or reconnect if needed.
  • Hot-swap during recording is not supported; stop and restart after changing capture devices.

See KNOWN_LIMITATIONS.md (shipped in both packages) for the complete current support boundary.

Pre-v1 notice

ExoSnap 0.1.0 is a pre-v1 preview. Configuration, preset, and recording-history file schemas are not frozen and may change in incompatible ways before 1.0.0. ExoSnap does not wipe existing data on upgrade, but forward/backward compatibility across preview versions is not guaranteed — keep your own backups of presets you care about. The MSI package identity (Codexo.ExoSnap), permanent UpgradeCode, and stable asset naming are maintained so future updates upgrade cleanly.

Reporting issues

Please open an issue at https://github.com/Exoridus/exosnap/issues. Including your Windows version, GPU model, NVIDIA driver version, and the startup log (%TEMP%\exosnap-recorder-app-startup.log) helps a lot.


ExoSnap is licensed under GPL-3.0-or-later. Third-party component licenses are listed in THIRD_PARTY_NOTICES.md, with full texts under licenses/.