Changelog
All notable changes. Follows semantic versioning from v0.2.0 onwards.
v0.2.4
April 18, 2026
Faster grain, WebP support
- Rewrote grain kernel with NEON/SVE2 — 3.8× faster on ARM, 1.6× on x86_64
- Added WebP input support (with warning for lossy sources)
- Improved error messages for unsupported colour spaces (CMYK, P3)
- EXIF orientation is now applied before processing
- Fixed panic on 1-channel greyscale TIFF with
hp5plusprofile - Fixed halation bounds overflow on odd-pixel-dimension images
- Fixed
--out-dirnot creating intermediate directories on Windows - Fixed
bergcraft profiles showtruncating output after first parameter group
v0.2.3
February 11, 2026
Batch mode improvements
- Added
--out-dirflag for batch processing to a target directory - Added
--formatflag to force output format independent of input - Progress bar now shows estimated time remaining for batches >10 images
- Fixed output file being written even when processing fails mid-pipeline
- Fixed memory not being released between batch items (caused OOM on large batches)
v0.2.2
January 3, 2026
WASM performance, custom profiles
- WASM module is ~30% smaller after switching to
wasm-optlevel 4 - Added
--profile-fileflag for loading custom TOML profiles - Custom profile schema documented in
docs/custom-profiles.md - Browser editor: added grain and halation sliders
- Fixed WASM build failing on Node 20 (WASI polyfill issue)
v0.2.1
November 28, 2025
Halation improvements
- Halation threshold is now configurable via
--halation-threshold - Added soft knee to halation bloom curve (previously hard cutoff)
- Slightly adjusted Provia curve in the deep shadows (values below 0.04 linear)
- Fixed halation being applied after grain instead of before
v0.2.0
October 14, 2025
New grain engine, Ilford HP5 profile
- Rewrote grain engine using Poisson-disc sampling (replaces FFT noise approach)
- Per-channel independent grain for accurate colour film structure
- Added
hp5plusB&W profile (Ilford HP5 Plus in D-76) - Added
bergcraft inspectsubcommand - 16-bit TIFF output now embeds sRGB ICC profile
- Breaking: grain parameter values from v0.1 profiles are not compatible — the new engine uses different units. Re-tune any custom grain settings.
v0.1.2
August 30, 2025
Stability fixes
- Fixed crash on images with embedded ICC profiles other than sRGB
- Fixed
portra400curve clipping at 0.97 linear in red channel - Fixed install script on Alpine Linux (musl libc)
v0.1.0
July 22, 2025
Initial release
- Initial public release
- CLI with
applysubcommand - Profiles:
portra400,provia100f - JPEG and TIFF input/output
- FFT-based grain (replaced in v0.2.0)