Notable user-facing changes are recorded here. The project follows Semantic
Versioning while it is in 0.x: minor releases may change public contracts,
and patch releases remain backward compatible within the current minor line.
- Optional
AbortSignal/CompressionControlcancellation with stableERR_CANCELLEDnormalization across preflight, queued, and running work. - Decode-time downsampling for resize requests and pre-decode source/working
pixel limits with stable
ERR_RESOURCE_LIMITfailures. - Additive capability fields for bounded concurrency, downsampling, and named resource limits.
- Large-image, cancellation-race, output-cleanup, and alpha decode-back native coverage.
- Version-specific v0.4.0 GitHub Release notes.
- iOS file, decode, transform, encode, and output work runs on a bounded
background
NSOperationQueueand uses ImageIO/CoreGraphics instead of main-thread UIKit rendering. - Android compression runs on a two-worker bounded executor instead of the React Native module queue.
- Android and iOS publish only fully encoded cache files and remove temporary or published output when cancellation wins before settlement.
- JPEG transparency is flattened onto white consistently; PNG/WebP alpha capability now matches decode-back validation.
- Release metadata separates the intended release target from the registry-observed published npm latest, and Trusted Release selects notes from its exact validated version instead of a prior-version hardcode.
- Existing
compressImage(options)calls and result fields remain unchanged. - Small-image resize, crop, metadata, format, and
maxBytessemantics remain compatible; the new control and capability fields are additive. - HEIC/HEIF/AVIF output, batch APIs, progress events, animation preservation, remote URLs, and data URIs remain outside scope.
- Public integration and platform-support documentation.
- A GitHub Pages site with a traceable native before/after evidence contract.
- Community contribution, support, and security-reporting paths.
- Compatibility and trusted-release gates.
- The
ImageCompressionKitErrorCodepublic TypeScript export.
- The podspec source tag now follows the repository's
v<version>tag format. - Package and repository links use the canonical public documentation site.
- Native compression and output behavior remain unchanged from 0.2.62.
- Android requires API 23 or newer; iOS requires 13.4 or newer.
- Expo requires a development build or prebuild. Expo Go is unsupported.
- The verified release lanes cover React Native 0.73.11 Legacy, React Native 0.86.0 Legacy/New, and Expo 57.0.7 development builds on Android and iOS.
- Intermediate React Native versions accepted by the
>=0.73 <1.0peer range are not individually release tested.
- Split npm-user documentation from repository release-evidence operations.
- Added semantic documentation and current-status gates.
- Preserved release evidence, native behavior, and public API compatibility.
Complete 0.2.x implementation and evidence history is preserved in the repository history and GitHub Releases.