Repository navigation
v0.1.2 — compile-authority
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-worldBrickCompileOptions, allowlist-fences the IL (allowlist-v3), activates those bytes, and bindsgate-emitted-artifact/compile-options/il-import-fence/certifier-identityinto the signed record. Exporters writegate-emitted-brick.dll. - Consumer verify binds judged bytes — generate→certify mints
gate-emitted-artifact. Hot-swap and self-extend useCertificationVerifyOptions.Strict. When hot-swap is given a PE whose hash matches the certificate, the artifact-bytesVerifyoverload binds those bytes. HMAC-era records without that input are refused at those hosts. - Adversarial corpus at
tests/adversarial-corpus/replayed byAdversarialCorpusTests(cert-gate). - Stable public API promoted — unshipped symbols in the stable-tier
PublicAPI.*.txtfiles moved toShipped.txtfor the v0.1.2 promise.
Full notes: CHANGELOG.md section [0.1.2].
Tagged commit: 33a26f2ca08103aa38064f3b3ceeda23d6a82a1f (PR #499, after #494).