Skip to content

v0.1.2 — compile-authority

Choose a tag to compare

@cursor cursor released this 04 Sep 11:23
33a26f2

Ashlar v0.1.2 — compile-authority. A certificate names the bytes the certifier compiled and fenced.

Disk certify and generate→certify mint gate-emitted-artifact. Production hot-swap and self-extend admission use CertificationVerifyOptions.Strict; hot-swap binds judged PE when the supplied image matches that input.

This tag starts release.yml (GHCR + nuget.org). ci/published-version stays 0.1.1 until that publish finishes. Do not pin 0.1.2 from nuget.org until the workflow Summary shows the push succeeded.

The 2-arg Verify(record, source) helper remains HMAC-era for callers that opt into it. Strict without artifact bytes still checks input kinds, not fence/identity hashes.

Install (after release.yml publishes)

dotnet add package Ashlar.Hosting.Bundle --version 0.1.2
dotnet tool install -g Ashlar.CLI --version 0.1.2

Or run the node image: ghcr.io/ianfrelinger/nexo-cli:0.1.2 (multi-arch; see deploy/node.yml). Start with docs/GettingStarted.md and consumer-template/CONSUMING.md.

Since v0.1.1

  • Compile-authority fences — the certifier compiles the candidate itself (GateEmittedArtifactCompiler) under closed-world BrickCompileOptions, allowlist-fences the IL (allowlist-v3), activates those bytes, and binds gate-emitted-artifact / compile-options / il-import-fence / certifier-identity into the signed record. Exporters write gate-emitted-brick.dll.
  • Consumer verify binds judged bytes — generate→certify mints gate-emitted-artifact. Hot-swap and self-extend use CertificationVerifyOptions.Strict. When hot-swap is given a PE whose hash matches the certificate, the artifact-bytes Verify overload binds those bytes. HMAC-era records without that input are refused at those hosts.
  • Adversarial corpus at tests/adversarial-corpus/ replayed by AdversarialCorpusTests (cert-gate).
  • Stable public API promoted — unshipped symbols in the stable-tier PublicAPI.*.txt files moved to Shipped.txt for the v0.1.2 promise.

Full notes: CHANGELOG.md section [0.1.2].

Tagged commit: 33a26f2ca08103aa38064f3b3ceeda23d6a82a1f (PR #499, after #494).