✨ New Features
- FreeHand-style Reflect tool — Added to the transforms group with gradient fill mirroring and midpoint flip handles
- Crop shapes in keyline view — Crop shapes now participate in clip path settings for keyline view
🐛 Bug Fixes
-
Clipping & compositing
- Fix nested clipping groups rendering inner clip masks correctly in all view modes
- Fix compound path holes not clipping in nested clip groups
- Clip with mask's fill rule so compound-path holes are respected
- Fix nested clipping paths in SVG import and export
- Hiding a clip mask member now hides only the clip, not the content
-
Images & sandbox
- Fix linked images not loading on reopen by falling back to direct file path
- Fix EPERM flood from mmap'd CGImage outliving security scope
- Sandbox image fix
- Fix alignment using stale local bounds for image shapes
-
Keyline view
- Fix
cropImageBoxInKeylinepreference ignored for clipGroup images - Sync
cropImageBoxInKeylineAppStorage to AppState on appear and change
- Fix
-
Text & paths
- Fix text-to-outlines compound paths and ungroup layer mismatch
-
Guides
- Fix guide visibility toggle and exclude guides from all exports
-
Clipboard
- Fix Paste in Back pasting in front
-
General
- Make clipping groups (and member-based groups) scalable via the selection box
- Reconcile persisted tool-group order with current defaults
🎨 UI & Preferences
- Keyline View toggles rearranged — Keyline-related toggles in Preferences now displayed side by side for a more compact layout
🧹 Code Cleanup
- Strip all comments and blank lines from Swift sources
- Strip ThirdParty comments and blank lines; consolidate licenses
- Strip comments and blank lines from Metal shader files
- Strip comments and blank lines from py/css/html/pl files
- Remove all markdown files except README.md
- Restore logical blank lines: after imports, between top-level decls, between type members
- More humanly spaced: computed properties + property-group transitions
- Exclude duplicate ThirdParty LICENSE files to fix bundle resource collision
- Remove all app print statements