Skip to content

Releases: Second-March/offspring

v0.5.5

Choose a tag to compare

@github-actions github-actions released this 15 Sep 17:36

Fixes

  • MP4 export no longer fails on sources with an odd width or height (for example 2270×281). H.264 needs even dimensions, so the frame is now rounded down to even, losing at most one row or column, instead of the conversion dying with "finished with errors" and an opaque 0xdfaba7bb exit code.
  • If an odd-dimension failure ever gets through, the error dialog now explains it in plain English instead of showing a hex code.

Offspring 0.5.4

Choose a tag to compare

@github-actions github-actions released this 27 Aug 11:05

Offspring 0.5.4

A smaller release, all about GIFs.

New in 0.5.4

GIF loop modes. GIF presets (and the Custom dialog) now have a Loop dropdown:

  • Loop forever — the default, and exactly what every previous version did.
  • Play once — plays through a single time and holds on the last frame.
  • Ping-pong — plays forward, then backward, forever. Great for clips that would otherwise jump-cut back to the start. The reversed frames are baked into the file, so expect roughly double the file size.

Faster palettes, with a real progress bar. The "Generating palette" stage used to sit silently with no percentage — on long clips it looked hung. It now reports live progress, and it samples ~120 frames spread across the clip instead of scanning every frame. On a 60-second 1080p clip that stage went from 37s to about 4.5s, with no visible difference in the result.

Fixed: the "Open download page" button in the update banner did nothing in packaged builds. It now opens the release page, and tells you if it can't.


Install notes: Windows SmartScreen may warn on first run ("Windows protected your PC") — click More info → Run anyway. We sign releases with minisign rather than an Authenticode certificate; the in-app updater verifies every download's signature before installing.

Full changelog: v0.5.3...v0.5.4

Offspring 0.5.3

Choose a tag to compare

@github-actions github-actions released this 11 Aug 11:38

Offspring 0.5.3

I'm back with some updates, and this is a big one — a refreshed app with a cleaner window, presets that auto-save, and proper speed controls for GIFs. If you're coming from 0.4.3, this release also rolls up everything from the unpublished 0.5.x line, including full macOS support. I still have to test some of the MacOS support so please feel free to reach out if something is not working.

New in 0.5.3

A cleaner window. Swapped the main/settings toggle for a Tools and Presets toggle. This should give more space for presets and clearly differentiates the two 'features' of offspring. The windows native bar has also been made custom for the app, which looks nicer imo. Drag anywhere on the bar to move the window, double-click it to maximize.

Presets save themselves. The "Save and Sync" button is gone. Edits are saved automatically a moment after you stop typing, and the right-click menu entries sync up quietly in the background. Closing the app flushes anything pending — you can't lose an edit anymore.

GIF speed. GIF presets now show frame timing both ways — FPS and milliseconds per frame — as one linked value, with a warning when you enter the range most players refuse to play fast (GIFs can't reliably go under 20 ms per frame). And there's a new Playback speed dropdown (0.5×–8×): pick 2× and the same motion plays in half the time by dropping frames, which should also make the gif smaller, duh.

Settings, reorganized. Settings moved to a proper home in the sidebar. New toggle to mirror presets into the Windows Send to menu. "Reset to defaults" now lives inside Settings. Every popup in the app now uses the same quiet in-app dialog instead of jarring OS message boxes.

Design polish throughout. New icon set shared across my apps, snappier and more consistent animations, and a long list of small copy and layout fixes.

Also new since 0.4.3 (from the unpublished 0.5.x releases)

  • macOS support — Offspring runs on Mac (universal binary, signed and notarized). Right-click files in Finder → Services → Offspring. Includes a first-launch guide for enabling the Services entry, FFmpeg auto-download for Mac, and in-app updates via .dmg.
  • ProRes output — presets can now encode ProRes (.mov), proxy through 4444 XQ, with automatic alpha handling.
  • Modify tool: speed & more — the Modify dialog gained speed change with drop/blend/motion-compensated interpolation options.
  • Sturdier Windows 11 right-click menu — if the modern (top-level) menu package can't register, the classic menu keeps working; a repair button in Settings re-registers it without admin rights.
  • FFmpeg updates — Offspring can now replace its managed FFmpeg copy (older bundled builds couldn't decode some AV1 files; Settings will flag this and offer a one-click update).

Install notes: Windows SmartScreen may warn on first run ("Windows protected your PC") — click More info → Run anyway. We sign releases with minisign rather than an Authenticode certificate; the in-app updater verifies every download's signature before installing.

Offspring 0.5.1

Choose a tag to compare

@github-actions github-actions released this 29 May 13:15

What's Changed

  • macos: add one-shot sanity-check script by @honear in #4
  • Stage 0.4.4: per-user install, Studio variant, macOS port scaffolding by @honear in #5

Full Changelog: v0.4.3...v0.5.1

Offspring 0.4.3

Choose a tag to compare

@honear honear released this 11 May 11:21

First release under the new github.com/Second-March/offspring home — Offspring moved into the SecondMarch GitHub org. Existing 0.4.2 installs upgrade transparently via GitHub's repo-transfer redirects; no action needed from users.

Highlights

  • Zero network traffic on launch. Offspring no longer pings GitHub when you open the app. Update checks happen only when you click Settings → Check for updates, and even then the installer doesn't start downloading until you click Download in the banner that follows. The "Current version: …" line in Settings now reads from a local Rust constant — no network round-trip required.
  • Modify tool: rotate dropdown (90° / 180° / 270° CW) — included in this release alongside the network-quiet change.
  • Refreshed example clips for Trim / Modify / Invert with proper aspect-ratio framing (no more letterbox bars).
  • New Make Square example image in the editor pane.

Repo / housekeeping

  • Repo transferred to the Second-March GitHub org. Old honear/offspring URLs continue to redirect indefinitely.
  • Tauri bundle identifier com.offspring.app → xyz.secondmarch.offspring (drops the .app build-warning and aligns with the brand domain).
  • Cargo.toml metadata + structured GitHub issue templates added.
  • README / SECURITY / THREAT_MODEL updated to reflect the manual-only update behaviour (previous wording was now factually wrong).

Install

Download Offspring-Setup-0.4.3.exe (or the forever-link). Both are minisign-signed — verify with:

```
minisign -Vm Offspring-Setup-0.4.3.exe -P RWSozxN0N0fWyF2cXP0fC+q5Hg2kb2zW/ML+e+zItvm7A8BCXNLZunjr
```

In-app updater on existing 0.4.2 installs will surface this upgrade when you click Settings → Check for updates.

Offspring 0.4.2

Choose a tag to compare

@honear honear released this 11 May 09:53

Highlights

  • Modify tool: rotate. New "Rotate" dropdown in the Modify dialog — None / 90° CW / 180° / 270° CW. Translates to FFmpeg's transpose filter. Filter ordering puts rotation between crop/scale and flip/reverse, so a "90° CW + Flip horizontal" combination applies the flip to the rotated frame (matches "flip what I see on screen"). Counts as a real transform — rotating alone is enough to dispatch, no need to also pick a flip/crop. Works on both video and image inputs.

Housekeeping

  • Master-icon source folder slimmed: Offspring_Icon/ → icon/, just the 1024 master remains (tools/update-icons.ps1 regenerates every shipped target from there). Saves ~2 MB in-repo.
  • Pruned unused cross-platform icon scaffolding from src-tauri/icons/ (android/, ios/, icon.icns — Offspring is Windows-only).
  • package.json metadata tidied (name, description).
  • Installer wizard signing flow updated: tools/sign-release.ps1 now resolves the minisign key from installer/.minisign/offspring.key by default (was previously expected at a path outside the repo).

Install

Download Offspring-Setup-0.4.2.exe (or the forever-link). Both are minisign-signed — verify with:

minisign -Vm Offspring-Setup-0.4.2.exe -P RWSozxN0N0fWyF2cXP0fC+q5Hg2kb2zW/ML+e+zItvm7A8BCXNLZunjr

In-app updater on existing 0.4.1 installs will surface the upgrade automatically.

Offspring 0.4.1

Choose a tag to compare

@honear honear released this 11 May 00:02

Highlights

  • Modern menu split toggle — Settings → "Split modern menu into Offspring Presets + Offspring Tools top-level entries". Off by default. When on, the Windows 11 right-click menu shows two separate top-level entries instead of one unified Offspring entry; mirrors the classic right-click menu's split layout.
  • Modify tool: "Remove audio" — new checkbox in the Modify dialog drops the audio track from the output (-an short-circuits the AAC re-encode). Hidden for image inputs.
  • Installer wizard now pops to the foreground — calls SetForegroundWindow + BringWindowToTop + SwitchToThisWindow from InitializeWizard so the setup window doesn't open behind whatever was active.
  • New v08 brand artwork across offspring.exe, the shell-ext DLL, all three MSIX packages, and the in-app favicon.
  • Example clips on Trim / Modify / Invert in the Tools editor pane, matching the existing per-tool video demos.
  • "Second March" credit in topbar now opens secondmarch.xyz in the default browser (via a server-side cmd /C start rather than the tauri-plugin-opener JS API that was failing silently in WebView2).

Under the hood

  • Three-MSIX architecture for the modern menu. The shell-ext DLL now exposes three CLSIDs, each registered in its own MSIX package (SecondMarch.Offspring.ShellExt / .PresetsShellExt / .ToolsShellExt). One DLL, three identities, distinct DisplayNames — so Win11 doesn't auto-group them under one parent the way it does multi-verb packages. The split toggle hot-swaps which packages are registered.
  • modern_menu::sync always re-registers. The old short-circuit on "package already registered" locked upgraders into whatever manifest shipped with their first install. Now Add-AppxPackage runs every sync, tolerating the "same-version-already-installed" error code (0x80073D06) as a silent no-op.
  • Both modern-menu toggles auto-restart Explorer. Saves a manual taskkill /f /im explorer.exe; visible warning line below the toggles explains it up front.

Repo hygiene

  • Removed unused cross-platform icon assets (src-tauri/icons/{android,ios,icon.icns}) — Offspring is Windows-only, those were Tauri scaffolding artefacts.
  • package.json metadata tidied (name and description now reflect the actual project).

Install

Download Offspring-Setup-0.4.1.exe (or use the forever-link). The installer is signed with minisign — verify with:

minisign -Vm Offspring-Setup-0.4.1.exe -P RWSozxN0N0fWyF2cXP0fC+q5Hg2kb2zW/ML+e+zItvm7A8BCXNLZunjr

In-app updater on existing installs will offer the upgrade automatically.

Offspring 0.3.47

Choose a tag to compare

@honear honear released this 04 May 20:47

Two new image-only tools in the right-click flyout.

What's new

🔄 Invert

Inverts the RGB channels of an image — black pixels become white, white become black, colors flip to their opposites. The alpha channel is preserved untouched, so a transparent PNG with black opaque content comes out as the same shape rendered white. Output is <name>_inverted.<ext> keeping the source format.

Optional Clamp to 0/255 setting (Tools sidebar → Invert) thresholds every channel — including alpha — to either 0 or 255 after the invert. Off by default; turn on for binary masks where you want to clean up anti-aliased edges or compression artifacts.

⬜ Make Square

Pads the shorter edge of an image to match the longer one, producing a square output the same width and height. The original image stays centered — the new pixels split equally on both sides.

Two fill modes (Tools sidebar → Make Square):

  • Transparent — pads with transparent pixels. JPEG inputs become PNG since JPEG can't carry an alpha channel.
  • Edge color — samples the top-left pixel of the source and uses that as the pad color. Output keeps the input's codec.

Already-square inputs are skipped with a "nothing to do" message — no wasted re-encode.

Both tools

  • Image-only (PNG / JPEG / WebP / AVIF / BMP / TIFF). Refuse video inputs with a clear error.
  • Multi-select supported — every selected image is processed independently.
  • Outputs land next to each source file.

Verifying this release

Public key fingerprint: C8D647377413CFA8. Run:

minisign -Vm Offspring-Setup-0.3.47.exe -p offspring.pub

Expected: Signature and comment signature verified.

Offspring 0.3.46

Choose a tag to compare

@honear honear released this 04 May 20:01

Default-preset polish on top of 0.3.45. Code unchanged — this release only retunes the preset roster a fresh install starts with.

What's new

🎬 MP4 720p · 10 MB

A new one-click "make it shareable" preset for video. Same 1280×720 sizing as MP4 720p, but with a 10 MB target — Offspring auto-computes the bitrate from the clip duration so the output fits Discord uploads, Slack attachments, and most messaging apps without the user having to think about bitrate or quality knobs.

🧹 Slimmed default roster

First-run installs now seed nine presets instead of fifteen:

GIF 420px LQ 20fps / 500px MQ 25fps / 800px HQ 30fps
MP4 720p / 720p · 10 MB / → 9:16 (crop for vertical)
Image Reduce Size / JPEG 85% / Thumbnail 512px PNG

Removed: GIF 800 HQ 24fps (the 30fps variant covers it), MP4 1080p, MP4 Compressed, MP4 → 16:9, MP4 → 1:1, PNG lossless (Reduce Size already does this), WebP 80%.

The thumbnail preset bumped from 256 to 512px — 512 is a more useful size for previews, contact sheets, and modern high-DPI displays.

Compatibility note

Existing installs upgrading from 0.3.45 will keep whatever presets they already have — presets.json is the source of truth once it exists. Hit "Reset to defaults" in Settings if you want the new lean roster.

Verifying this release

Public key fingerprint: C8D647377413CFA8. Run:

minisign -Vm Offspring-Setup-0.3.46.exe -p offspring.pub

Expected: Signature and comment signature verified.

Offspring 0.3.45

Choose a tag to compare

@honear honear released this 04 May 19:48

First release that handles still images as a first-class output format, plus a fix for a multi-file selection regression that crept in around 0.3.43.

What's new

🖼️ Image presets

Presets now have an Image format alongside GIF and MP4. Pick a codec (PNG, JPEG, WebP, AVIF), set a per-codec quality, optionally strip EXIF / GPS / camera-serial metadata, and resize / crop / greyscale work the same way they do for video.

Five image presets ship by default:

Preset What it does
Reduce Size Re-encodes losslessly as PNG with EXIF stripped. The "share-ready, don't change anything I can see" default.
JPEG 85% (web, strip EXIF) The standard web JPEG.
PNG (lossless, strip EXIF) Same as Reduce Size but explicitly named for PNG output.
WebP 80% (modern web) Better compression than JPEG at the same quality on most browsers from 2020+.
Thumbnail 256px PNG 256-pixel-wide PNG for previews / contact sheets.

You can edit any of these or add your own. Codec selector remembers per-codec quality semantics — switching from PNG to JPEG, the field re-labels itself from "Compression level (0–9)" to "Quality (1–100)" and clamps your previous value into the new range.

🛠️ Tools work on images

  • Compare stacks any number of selected images into a single side-by-side still (PNG, JPEG, WebP, or AVIF — matches the first input's format).
  • Overlay and Greyscale apply to image inputs and produce same-format output (JPEG → JPEG, PNG → PNG, WebP → WebP).
  • Trim and Merge are video-only operations; they refuse cleanly on image-only selections with a clear explanation.
  • Image-format presets refuse to run on video inputs (and vice-versa) with a clear error rather than silently producing nonsense.

🪲 Multi-file selection fix

A regression introduced in 0.3.43 (when the singleton + IPC was rewritten manually to fix the secondary-window flash) caused multi-file right-clicks to silently drop all but the last file, surfacing as "Merge needs at least two files" errors. Two underlying bugs:

  1. The pipe listener was being spawned inside Tauri's setup(), which runs ~100-300ms after process start — long enough that a multi-file selection's secondaries (which fire in rapid succession) raced ahead and silently dropped their argv after a 500ms retry budget. Fixed by spawning the listener immediately after acquiring the singleton mutex, before Tauri Builder runs at all, with an mpsc channel bridging to the processor that lives in setup().
  2. The new-batch detection was firing for every arrival in a fresh batch instead of just the first one, wiping each predecessor's file as the next one landed. Fixed by clearing the dispatch timestamp once per batch reset.

End result: multi-file Merge / Compare / preset application all work as advertised again.

Verifying this release

Public key fingerprint: C8D647377413CFA8. Run:

minisign -Vm Offspring-Setup-0.3.45.exe -p offspring.pub

Expected: Signature and comment signature verified.