AfterFrame 0.3.4 — Solid Ground
Signed + notarized build for macOS (Apple Silicon).
Highlights
↩️ Undo/redo that just works
- One timeline for everything:
Cmd+Zand both panel Undo buttons now reverse the same last action — transforms and text/sticker layers no longer live on separate stacks. - A slider scrub or a layer drag is one undo step (no more per-pixel / per-tick history).
- Applying or clearing a frame preset undoes as a single step (margins + its text together).
📌 Text stays put
- Text and stickers now stay locked to the photo when you add/remove a frame, change the crop, or undo/redo — no more creeping upward each cycle.
- Preview and export line up on the same coordinates (WYSIWYG).
🖼 Thumbnails self-heal
- Fixed a concurrency bug where exporting into a watched folder could corrupt a few thumbnails (two processes writing the same preview file). Previews are now written atomically.
- Broken/empty thumbnails regenerate automatically when you scroll to them — no re-import or restart.
✨ Editor polish (review fixes)
- Framed view auto-fits and re-centers; double-click / border changes reset the view; window resize & rotation refit.
- Wheel-zoom no longer fights undo or mid-drag; frame-preset thumbnails and the depth mask stop rebuilding on every tick.
Under the hood
- Editor layer coordinates are now basis-independent (stored in full-photo space, derived to the current crop/border at render) — this removes an entire class of undo-drift bugs by construction.
- Unified
{transform, layers}history; retired the split layer-history stack. - Preview generation is atomic (temp + rename) with on-demand and batch self-heal.
- Backed by expanded end-to-end + sidecar unit tests.
Install: download the .dmg below (macOS, Apple Silicon) and drag AfterFrame to Applications. Signed with a Developer ID and notarized by Apple — no quarantine workaround needed.