炼 — Ephemeral Build Substrate
v0.1.0 | Beta | BuildKit + NATSProvider-Pluggable OCI Builds
Standalone Rust binary driving ephemeral BuildKit sessions. Callers supply BuildDirectives in NCL; lian-build controls the endpoint, drives buildctl, pushes OCI, and emits NATS lifecycle events. No provider knowledge — compute and registry are plug-in slots.
Adapter Kinds
BuildDirectives.adapter.kind is a closed enum — the only three values that exist.
Runs a pre-flight against BuildSpec resource floor before any buildkitd traffic. Fails fast if the host is under-spec.
Externally-supplied buildkitd endpoint plus a SOPS-encrypted TLS bundle. What runs the endpoint is opaque to lian-build.
Emits a NATS claim against a fleet_ref, receives a per-claim X25519 age TLS grant, builds, releases the claim. Resolves to 'remote internally.
The tetra-build Ecosystem
Four standalone projects connected by NCL directives, NATS subjects, and OCI artifacts — never by library linkage.
Fleet control plane — claim arbitration daemon + node agent. Provides the ephemeral buildkitd capacity where builds run.
Build driver — resolves endpoint, drives buildctl, emits lifecycle events. No provider knowledge.
Build-layer catalog — toolchain images and cargo-chef pre-cooked dep caches. A caller that supplies BuildDirectives.
Runtime-image catalog — deployable service containers. A caller that builds its images via lian-build.
Hard Constraints
Both rules are grep-checked by ontoref adr validate on every commit.
Cargo.toml and src/ must not import platform-config, provisioning, or stratum-* crates. The lift-out boundary is structural.
src/ must not match provisioning_workspace, vapora_, or woodpecker_. Caller-specific logic stays in caller-supplied directives, not in core.