Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/heimdall

CHANGELOG.md

Changelog

All notable changes to Heimdall are listed here, one section per release tag. Each entry names the commit on main it comes from. The format follows Keep a Changelog, and Heimdall uses Semantic Versioning: within a release line (0.2.x) the job API in docs/API.md changes by additions only; a new 0.x line lists its breaks under "Changed (breaking)".

Heimdall is a defensive sandbox. Each fixed vulnerability is listed under Security with its RUSTSEC, CVE or GHSA id where one exists. To report a vulnerability, see SECURITY.md.

[Unreleased] (next: 0.3.0)

Runtime enforcement of GENERATED seccomp profiles (lane genprof). Breaking for code built against 0.2 (struct literals), so the next line is 0.3.0.

Changed (lane prof: generated per-program profiles)

Changed (breaking)

Security

Added

[0.2.1] - unreleased

A patch release of nordisk-heimdall-container and nordisk-heimdall-plain, built from the branch release-0.2.x (from the 0.2.0 commit 3e35142e). Bug fixes and one additive security option; nothing that compiled against 0.2.0 breaks. Every other crate stays 0.2.0; container 0.2.1 needs plain 0.2.1. Main's generated-seccomp work (Policy gains seccomp, heimdall-seccomp-1, the wasm worker, the MIT-0 header, nordisk-heimdall-profiles) is breaking and waits for 0.3.0.

Security

Fixed

[0.2.0] - 2026-10-31

Built from main after bbfcc8ab (crates.io 0.1.0). Breaking for code built against 0.1 (see docs/API.md, "Upgrading from 0.1"): every crate is 0.2.0. Released: nordisk-heimdall-core, -plain, -wasm, -run, -cli and the new -container, -seccomp and -probe. Not released: heimdall-profiles (publish = false; the checked-in generated profiles, no published crate depends on it) and heimdall-broker (still being built).

Changed (breaking)

Added

Fuel guidance

Fuel is counted per instance (docs/GATLING-WASM.md): a decoder instance burns about 93 fuel per decoded byte (a full 8 MiB unit about 780 M, within the default 1e9 of Limits), the split verifier about 94 per content byte (the default covers bundles up to about 10 MB of content), the single-instance guest about 211. For bigger bundles set fuel to at least 128 x the bundle's content bytes and keep wall as the real bound; the defaults are unchanged.

Other changes on main

[0.1.0] on crates.io - 2026-10-31

The five crates nordisk-heimdall-{core,plain,wasm,run,cli} 0.1.0, built from bbfcc8ab by dwarves release-build (SLSA v1 provenance, attestations/heimdall-0.1.0.intoto.jsonl) and published byte-identical. Changes after tag v0.1.0, up to bbfcc8ab:

Added

Changed

[0.1.0] - 2026-10-30

Tag v0.1.0 at 386a67f. The first release: the stable job API that Holger builds against, and an interim plain container runner. Consumed by git tag (see docs/API.md); not on crates.io yet, and not SLSA-attested yet.

Added

Decided

Not in this release