Upgrade notes
- Automation (MCP / control channel) now needs explicit file roots. File access from automation clients is limited to folders you grant with
--automation-read-root <dir>/--automation-write-root <dir>(orPHOTOCRAFT_AUTOMATION_READ_ROOT/PHOTOCRAFT_AUTOMATION_WRITE_ROOT), and paths must be relative to them. Without roots, automation file operations fail closed. The desktop control channel also requires the per-launch token printed at startup. Interactive file dialogs and one-shot CLI commands are unaffected. - Camera RAW: DNG, Canon CR2, Sony ARW (lossless and compressed), Panasonic RW2 and uncompressed Olympus ORF now decode. Nikon's compressed NEF and other formats still open their embedded full-size preview for now.
What's Changed
- Indexed Color: no panic when forced colours fill the palette by @storybored379 in #17
- MCP: a panicking command no longer wedges the headless session by @storybored379 in #16
- Layers: Add Layer Mask uses the active selection by @Multipad-cyber in #11
- feat(ui): add Exit to the File menu by @torstfugl in #10
- fix(ui): give menu bar labels more breathing room by @torstfugl in #8
- Eraser on Background layer paints the background colour (fixes #15) by @echelon in #19
- Open links in the system browser via a platform service (fixes #14) by @echelon in #20
- Test: Image Rotation rotates every layer (re #1) by @echelon in #21
- GPU: Rgba16Float fallback when Rgba32Float isn't renderable (fixes #7) by @echelon in #22
- Add File > Open Recent (fixes #5) by @echelon in #23
- Licensing: MIT OR Apache-2.0 files, NOTICE, ArtCraft brand terms, attribution by @echelon in #32
- cms tests: system_profiles skips malformed named-colour profiles by @storybored379 in #24
- Codecs: camera raw files fail with a clear "not supported" error by @storybored379 in #25
- Filter › Other › Minimum / Maximum: Preserve Roundness by @storybored379 in #27
- Layer Style › Blending Options › Blend If (render, PSD round trip, command) by @storybored379 in #26
- Dialogs can be moved by dragging the title bar by @sommerper in #29
- Layer Style dialog previews effects live on the canvas by @sommerper in #30
- Never crash: steering rules, clippy.toml, forbid unsafe by @echelon in #33
- CI: green on all platforms (rustfmt config, clippy 1.99, FXC-safe adjust shader) by @echelon in #37
- feat(ui): confirm before discarding unsaved changes by @torstfugl in #31
- docs: add mdBook and security documentation foundation by @Gh0stlyKn1ght in #35
- Never crash: psd, codecs, format, io are panic-free by @echelon in #34
- Never crash: cms is panic-free by @echelon in #36
- Never crash: text, color, doc, paint, geom, raster, compose, vector by @echelon in #39
- Never crash: automation (MCP/RPC) and photocraft-cli are panic-free by @echelon in #38
- Never crash: algo pyramids and ui-egui parity without expect by @echelon in #40
- Never crash: the engine is panic-free by @echelon in #54
- Never crash: the GPU compositor is panic-free by @echelon in #55
- Never crash: algo is panic-free by @echelon in #56
- Never crash: ui-egui is panic-free by @echelon in #57
- Never crash: last-resort guard for commands and file import/export by @echelon in #58
- Never crash: ops denies panicking shortcuts by @echelon in #59
- security: authenticate control channels and bound transport resources by @Gh0stlyKn1ght in #61
- PSD round trip: read/write Vibrance, Color Balance, B&W, Photo Filter, Channel Mixer; corpus floors by @echelon in #60
- UI input: Ctrl+'+' zooms the canvas, dialogs don't cancel on outside click, menu hover-switch by @echelon in #62
- macOS: open files from Finder/Open With/Dock; file path, recent, warnings and .pcraft fixes by @echelon in #63
- Camera raw: clean-room pure-Rust decoder (DNG, CR2, TIFF/EP raws) with develop pipeline by @echelon in #65
- Colour-managed canvas: document profile -> monitor (P3/Adobe RGB/ProPhoto/Gray/CMYK), linear EXR, embedded CMYK by @echelon in #66
- Sandboxed WebAssembly plug-ins: photocraft-plugins (wasmi), plugin.* commands, Filter › Plug-ins by @echelon in #67
- Image › Adjustments overhaul: full params, one editor per kind, live-preview dialogs, Curves point deletion by @echelon in #68
- Magic Eraser and Background Eraser tools; canvas rotation/flip/size move vector geometry by @echelon in #70
- Photoshop brushes: .abr import, stylus pressure/tilt, 36 grouped presets, .grd import by @echelon in #74
- security: constrain automation file access to granted roots by @Gh0stlyKn1ght in #72
- Large images: adapter texture limits, banded compositing/export, proxy thumbnails, history byte budget by @echelon in #71
- fix(ui): brush and eraser show the real stroke while drawing by @sommerper in #64
- Select › Color Range: the dialog, Select presets, eyedroppers, Localized Color Clusters, Invert by @storybored379 in #80
- Persist brush presets (user + imported .abr) in a size-aware preset store by @echelon in #82
- raw: Sony cRAW, Panasonic RW2 (RawFormat 5), uncompressed ORF + ORF previews; NEF blocked (clean-room) by @echelon in #83
- GPU canvas: Rgba16Float display texture for 16/32-bit documents (#46) by @echelon in #84
- Adjustment dialogs: GPU live preview through a clipped adjustment layer (#77) by @echelon in #85
- Painting: right-click opens the brush picker (or erases), real Smoothing, eraser-on-Background tests by @echelon in #86
- Release 0.2.0 by @echelon in #113
New Contributors
- @storybored379 made their first contribution in #17
- @Multipad-cyber made their first contribution in #11
- @torstfugl made their first contribution in #10
- @echelon made their first contribution in #19
- @sommerper made their first contribution in #29
- @Gh0stlyKn1ght made their first contribution in #35
Full Changelog: v0.1.1...v0.2.0