Viewing is open to everyone. Downloading and starring need a GitHub sign-in.
Sign in with GitHub
CHANGELOG-STABLE.md
v0.1.0-build.85
Latest
Commit ede38f5
Sign in with GitHub to download. Each download is recorded with your GitHub username.
| 1 | # Stable-Release changelog |
| 2 | |
| 3 | This log lists the releases tagged on the `Stable-Release` branch, newest first. Each release is one immutable tag. The per-build history is in [CHANGELOG.md](CHANGELOG.md), and the [release and versioning map](docs/RELEASE-AND-VERSIONING-MAP.md) explains how to cut and deprecate a release. |
| 4 | |
| 5 | **Releases so far: 1** (`v0.1.0-build.83`; `v0.1.0-build.76`, `v0.1.0-build.81` and `v0.1.0-build.82` were tagged but superseded before they were published). |
| 6 | |
| 7 | ## Entry template |
| 8 | |
| 9 | Copy this block to the top of the list for each release, and fill it in. |
| 10 | |
| 11 | ```markdown |
| 12 | ### CKey 0.1.0-build.N — YYYY-MM-DD |
| 13 | |
| 14 | * **Tag:** `v0.1.0-build.N` (commit `abcdef0`) |
| 15 | * **Status:** supported <!-- or: Deprecated YYYY-MM-DD, replaced by CKey 0.1.0-build.M, because … --> |
| 16 | * **Builds included:** build.A to build.N (see CHANGELOG.md) |
| 17 | * **Formats emitted:** P0 0.27.0, P0.1 0.28.0, P1 0.14.0, P2 0.25.0, P3 0.26.0 |
| 18 | * **Formats read:** the emitted formats, plus the legacy formats listed in the map |
| 19 | * **C ABI:** 4 |
| 20 | * **Highlights:** … |
| 21 | * **Known limits:** … |
| 22 | ``` |
| 23 | |
| 24 | When a release is deprecated: |
| 25 | |
| 26 | 1. Change its GitHub Release title to `Deprecated - {release name}`. |
| 27 | 2. Update its **Status** line here. Never delete the entry. |
| 28 | |
| 29 | ## Releases |
| 30 | |
| 31 | ### CKey 0.1.0-build.83 — 2026-11-06 |
| 32 | |
| 33 | * **Tag:** `v0.1.0-build.83` |
| 34 | * **Status:** supported |
| 35 | * **Builds included:** dev.1 to build.83 (see CHANGELOG.md) |
| 36 | * **Formats emitted:** P0 0.27.0, P0.1 0.28.0, P1 0.14.0, P2 0.25.0, P3 0.26.0 |
| 37 | * **Formats read:** the emitted formats, plus the legacy formats listed in the map |
| 38 | * **C ABI:** 4 |
| 39 | * **Highlights:** |
| 40 | * Profile 0, the scalable family: 31 versions, L/M/Q/H correction, version identified from the symbol; Profile 0.1 print layout. |
| 41 | * Native rendering to RGBA and gray pixels, PNG, SVG and vector PDF; styles with strict, adaptive and override policies; certification through a modelled camera sweep. |
| 42 | * Full-frame scanning separate from the renderer, so a scanner can ship without it. |
| 43 | * SDKs: Swift package (`CKey`, scan-only `CKeyScanner`), npm `openckey` (WebAssembly), Maven `org.openckey:ckey` (+ `ckey-compose`, `ckey-camerax`), NuGet `CKey` (+ `CKey.Wpf`), CLI with Homebrew formula, CMake package. |
| 44 | * Optional aggregate telemetry (modes 0/1/2), never content or identifiers. |
| 45 | * **Fixes since the build.76 tag:** the .NET native library builds with MSVC (no `__int128` in the telemetry core) and exports only the C API on Linux; Debug and sanitizer builds link every test; the Windows struct-layout check ignores line endings; macOS jobs run on macos-15; the .NET SDK's C# compiles (it had not since build 67) and its 65 tests pass; the .NET native library is `ckeynative` (`ckeynative.dll`, `libckeynative.so`, `libckeynative.dylib`), so it no longer collides with the managed `CKey.dll` on Windows; style validation reads enum fields as raw integers (no undefined behaviour on out-of-range values); the Android host check tolerates missing optional jars; the npm package is `openckey` (the name `ckey` belongs to an unrelated package). |
| 46 | * **Known limits:** experimental. Formats are drafts and may change before 1.0. Decoding is verified on rendered and simulated captures only: real-camera robustness, latency and print compensation are not yet measured. No independent security review yet. |
| 47 | |
| 48 | |
| 49 | ### CKey 0.1.0-build.82 — 2026-11-06 |
| 50 | |
| 51 | * **Tag:** `v0.1.0-build.82` |
| 52 | * **Status:** superseded by CKey 0.1.0-build.83. Its release built and verified, but npm refused the package name `ckey` (owned by an unrelated package), so nothing was published from it. Use `v0.1.0-build.83`. |
| 53 | |
| 54 | |
| 55 | ### CKey 0.1.0-build.81 — 2026-11-06 |
| 56 | |
| 57 | * **Tag:** `v0.1.0-build.81` |
| 58 | * **Status:** superseded by CKey 0.1.0-build.82. Two CI checks (a sanitizer finding in style validation and a script error in the Android host check) stopped its release workflow, so no draft release was made from it. The .NET packages were built from this commit by hand; everything else should use `v0.1.0-build.83`. |
| 59 | |
| 60 | |
| 61 | ### CKey 0.1.0-build.76 — 2026-11-06 |
| 62 | |
| 63 | * **Tag:** `v0.1.0-build.76` |
| 64 | * **Status:** not released. Its release build failed (MSVC could not compile the telemetry core; the Linux .NET library exported C++ runtime symbols; a Debug test did not link), so nothing was built or published from it. The tag stays, as tags are never moved or deleted. Use `v0.1.0-build.83`. |