Repository navigation
Add NVX phase 0 feasibility workflow - #8718
Merged
Merged
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 6b7bb21d-a74b-4061-b1d0-ae2a18df7a8c
Comment on lines
+128
to
+149
| elif printf '%s %s\n' "$NVX_ARCHIVE_SHA256" "$RELEASE_DIR/$NVX_ARCHIVE" \ | ||
| | sha256sum --check --status; then | ||
| record release-download PASS "Pinned archive SHA-256 matched" | ||
| else | ||
| record release-download FAIL "Pinned archive SHA-256 mismatched" | ||
| fi | ||
|
|
||
| if [ "$download_exit" -eq 0 ]; then | ||
| tar -xzf "$RELEASE_DIR/$NVX_ARCHIVE" -C "$RELEASE_DIR" \ | ||
| > "$DATA_DIR/logs/release-extract.log" 2>&1 | ||
| extract_exit=$? | ||
| else | ||
| extract_exit=1 | ||
| fi | ||
| PACKAGE_DIR="$RELEASE_DIR/nvx-0.1.0-linux-kvm" | ||
| if [ "$extract_exit" -eq 0 ] && ( | ||
| cd "$PACKAGE_DIR" && sha256sum --check SHA256SUMS | ||
| ) > "$DATA_DIR/logs/package-checksums.log" 2>&1; then | ||
| record package-integrity PASS "All packaged NVX artifact checksums matched" | ||
| else | ||
| record package-integrity FAIL "NVX package extraction or internal checksum verification failed" | ||
| fi |
Contributor
✅ Coverage Check PassedOverall Coverage
📁 Per-file Coverage Changes (1 files)
Coverage comparison generated by |
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Critical token-exposure and artifact-integrity findings, along with workflow gating and cleanup issues, must be resolved before approval.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite (auto)
Findings: 2
Note
Copilot is running an experiment and ran this review at Lite.
Open (6)
Unset the GitHub token before executing downloaded NVX code · New Do not extract after an archive checksum failure · New Refresh host evidence after changing KVM permissions · New Use strict parsing for the package checksum manifest · New Do not launch probes after a failed preflight · New Add an explicit cleanup and residue check · New
What changed in this PR
Adds a manually triggered gh-aw workflow to evaluate pinned NVX Linux/KVM feasibility and publish evidence in a superseding GitHub issue.
Changes:
- Pins and verifies NVX release artifacts and source.
- Runs host, security, lifecycle, filesystem, networking, and benchmark probes.
- Generates structured evidence and a compiled workflow for issue reporting.
| File | Summary and review findings |
|---|---|
.github/workflows/nvx-phase-0-feasibility.md |
Defines NVX probes and reporting. Findings include critical token exposure (3 votes), critical checksum-gating failure (1 vote), moderate checksum strictness (3 votes), moderate scenario gating (3 votes), moderate stale host evidence (2 votes), moderate cleanup gaps (2 votes), moderate shell error handling (1 vote), moderate KVM device validation (1 vote), and a nit regarding missing evidence artifact upload (1 vote). |
.github/workflows/nvx-phase-0-feasibility.lock.yml |
Generated workflow lock. A moderate finding (1 vote) requires running the postprocessor so the workflow uses the required local AWF build form. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| --pattern "$NVX_ARCHIVE" \ | ||
| --dir "$RELEASE_DIR" \ | ||
| > "$DATA_DIR/logs/release-download.log" 2>&1 | ||
| download_exit=$? |
Comment on lines
+126
to
+141
| if [ "$download_exit" -ne 0 ]; then | ||
| record release-download FAIL "Pinned Linux KVM archive download failed" | ||
| elif printf '%s %s\n' "$NVX_ARCHIVE_SHA256" "$RELEASE_DIR/$NVX_ARCHIVE" \ | ||
| | sha256sum --check --status; then | ||
| record release-download PASS "Pinned archive SHA-256 matched" | ||
| else | ||
| record release-download FAIL "Pinned archive SHA-256 mismatched" | ||
| fi | ||
|
|
||
| if [ "$download_exit" -eq 0 ]; then | ||
| tar -xzf "$RELEASE_DIR/$NVX_ARCHIVE" -C "$RELEASE_DIR" \ | ||
| > "$DATA_DIR/logs/release-extract.log" 2>&1 | ||
| extract_exit=$? | ||
| else | ||
| extract_exit=1 | ||
| fi |
Comment on lines
+97
to
+104
| if [ "$kvm_readable" != true ] || [ "$kvm_writable" != true ]; then | ||
| sudo setfacl -m "u:$(id -u):rw" /dev/kvm 2>&1 \ | ||
| | tee "$DATA_DIR/logs/kvm-acl.log" >/dev/null | ||
| acl_exit=${PIPESTATUS[0]} | ||
| if [ "$acl_exit" -ne 0 ]; then | ||
| record host-preflight BLOCKED "Unable to grant the runner user scoped access to /dev/kvm" | ||
| else | ||
| record host-preflight PASS "Linux x86_64 KVM host is available" |
| fi | ||
| PACKAGE_DIR="$RELEASE_DIR/nvx-0.1.0-linux-kvm" | ||
| if [ "$extract_exit" -eq 0 ] && ( | ||
| cd "$PACKAGE_DIR" && sha256sum --check SHA256SUMS |
Comment on lines
+162
to
+163
| if [ -x "$PACKAGE_DIR/bin/openvmm" ] && [ -d "$SOURCE_DIR/scripts" ]; then | ||
| mkdir -p "$SOURCE_DIR/build" "$SOURCE_DIR/openvmm/target/release" |
Comment on lines
+181
to
+185
| for scenario in "${scenarios[@]}"; do | ||
| started=$(date +%s) | ||
| ( | ||
| cd "$SOURCE_DIR" && | ||
| timeout 180s python3 scripts/nvx.py test-microvm \ |
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.


Summary
Adds a manually triggered gh-aw workflow that executes the first feasibility stage for evaluating Microsoft NVX as an AWF primary-agent sandbox backend.
The workflow pins NVX prerelease
v0.1.0-dev.441f45568e65and commit441f45568e65f66eced419ff9d289e2627a58f0f, verifies the Linux/KVM archive and packaged checksums, runs selected upstream KVM/security scenarios independently, captures a cold-start benchmark, and publishes one superseding evidence-based feasibility issue.Delivery plan
nvxas an external microVM backend behind mandatory--nvx-preview, add configuration and CLI surfaces, and cover it with unit and live-KVM tests without changing existing runtimes.Phase 0 exit policy
The generated report may recommend proceeding to Phase 1 only when every deterministic scenario passes and all remaining AWF-specific gaps have bounded follow-up experiments. Host, integrity, KVM, network-denial, filesystem-denial, managed-lifecycle, workload-identity, or cleanup failures classify the evaluation as blocked.
Passing upstream tests is explicitly not treated as proof of AWF topology security. Squid/API-proxy routing, release provenance, host OpenVMM confinement, Cloud Hypervisor comparison, and a representative agent workload remain named evidence gaps until directly measured.
Workflow behavior
workflow_dispatch/tmp/gh-aw/agent/nvx-phase-0/[NVX Phase 0]issue, replacing the previous open reportcreate-issueValidation
gh aw compile nvx-phase-0-feasibility --strict --validate --actionlint --shellcheck