Conversation
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The unresolved driver path, image pinning, and version consistency findings block approval.
Review effort: Lite
Findings: 1
Open (2)
What changed in this PR
Adds seven Hyperlight Unikraft runtimes across KVM/MSHV, including guest images, lifecycle handling, CI integration, and dashboard support.
Changes:
- Adds HLUK handlers, features, lifecycle strategies, and a dummy driver.
- Fetches rootfs images and builds KVM/MSHV server variants.
- Expands benchmark configuration, CI, local execution, and tests.
- Updates catalog metadata, documentation, and dashboard presentation.
Outstanding findings in scripts/build-harness.ts:
- Critical (2 votes): The dummy driver is installed under
/usr/local/bin, but the loader requires/usr/bin/hl_dummydriver. - Moderate (2 votes): Mutable manifest tags do not provide reproducible image pinning.
- Moderate (1 vote):
HLUK_VERSIONcan diverge from the pinned host crate and driver version.
| File | Description |
|---|---|
tool-versions.sh |
Pins the HLUK release. |
src/style.css |
Adds hexagonal runtime markers. |
src/mock-data.ts |
Extends synthetic measurements. |
src/main.ts |
Adds HLUK dashboard grouping and colors. |
shared/catalog.ts |
Registers HLUK runtimes and platform flavors. |
scripts/publication.test.ts |
Updates configuration counts. |
scripts/configure-ci.ts |
Selects platform-specific server flavors. |
scripts/build-harness.ts |
Fetches images, builds servers, and packages drivers. |
scripts/benchmark.ts |
Uses the selected server flavor. |
scripts/benchmark-local.ts |
Supports HLUK runtime selection. |
README.md |
Documents HLUK benchmarks. |
docs/README.md |
Updates runtime and CI documentation. |
crates/server/src/main.rs |
Adds HLUK dispatch and response validation. |
crates/server/src/handlers/mod.rs |
Registers conditional handlers. |
crates/server/src/handlers/hluk.rs |
Implements HLUK lifecycle handling. |
crates/server/src/handlers/config.rs |
Defines HLUK artifact paths. |
crates/server/Cargo.toml |
Adds HLUK features and dependencies. |
crates/observer/Cargo.toml |
Adjusts hypervisor features. |
crates/hluk-dummy/hl_fc.h |
Adds FlatBuffer call parsing. |
crates/hluk-dummy/hl_dummydriver.c |
Implements the dummy guest driver. |
crates/hluk-dummy/hl_driver.h |
Adds shared driver support. |
Cargo.lock |
Locks HLUK dependencies. |
.github/workflows/benchmark.yml |
Publishes HLUK rootfs artifacts. |
Files not reviewed (1)
- src/style.css: Generated file
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
The documented just run-server path does not select HLUK server artifacts, and the change requires human review.
Review effort: Lite
Findings: None
Resolved since last review (2)
Files not reviewed (1)
- src/style.css: Generated file
danbugs
force-pushed
the
hluk-runtimes
branch
from
September 27, 2026 07:31
5e836c1 to
14e1d94
Compare
hluk-dummy, hluk-quickjs, hluk-node, hluk-python, hluk-dotnet-jit, hluk-wasmtime-dummy and hluk-wasmtime-qjs serve the handler as a guest function call in a Unikraft guest, pinned to hyperlight-unikraft 0.16.0. One base snapshot per process: Renew starts a sandbox from it, Restore defines the handler, calls it and restores, Reuse defines it once. The hluk and hluk-mshv features build the KVM and MSHV servers; the observer drops mshv3 so a KVM-only build keeps hyperlight's lazy scratch reset. The response check falls back to parsing JSON, since runtimes space it differently. Signed-off-by: danbugs <danilochiarlone@gmail.com>
build-harness fetches the hluk rootfs images, pinned by manifest digest in tool-versions.sh next to HLUK_VERSION (which must match the server's crate), builds the dummy driver's as a musl static-pie, as hyperlight-unikraft builds its own drivers, and builds the hluk-kvm and hluk-mshv servers. The catalog, CI, the just recipes and local runs take the new runtimes, as does the mock data; benchmark-local takes a comma-separated list. Signed-off-by: danbugs <danilochiarlone@gmail.com>
The prepare job builds each platform's servers and uploads them with build-info.json and oha; measurement jobs download them instead of setting up Rust and compiling their own flavor. Fifty release builds on the self-hosted runners were the slowest and heaviest part of a measurement job, and runners were dropping mid-build. Signed-off-by: danbugs <danilochiarlone@gmail.com>
A Hyperlight Unikraft group with its own marker; the default selection keeps distinct colours. Signed-off-by: danbugs <danilochiarlone@gmail.com>
danbugs
force-pushed
the
hluk-runtimes
branch
from
September 28, 2026 23:26
14e1d94 to
de13f2d
Compare
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Adds seven hyperlight-unikraft (hluk) runtimes to the benchmark — hluk-dummy, -quickjs, -node, -python, -dotnet-jit, -wasmtime-dummy and -wasmtime-qjs — on KVM and MSHV, pinned to hyperlight-unikraft 0.16.0 and its published rootfs images. Each serves the handler as a guest function call in a Unikraft guest; Renew, Restore and Reuse work from one base snapshot per server process.
hluk/hluk-mshvfeatures, a dummy driver, a response check that tolerates JSON spacing; a KVM-only build keeps hyperlight's lazy scratch reset.preparejob builds the servers once and measurement jobs download them, instead of fifty jobs compiling their own.