Skip to content

test(windows): define GB300 MXC qualification contract (NVBug 6643699) - #3471

Open
prekshivyas wants to merge 1 commit into
NVIDIA:windowsfrom
prekshivyas:nvbug/6643699-gb300-woa-mxc-contract
Open

prekshivyas wants to merge 1 commit into
NVIDIA:windowsfrom
prekshivyas:nvbug/6643699-gb300-woa-mxc-contract

Conversation

@prekshivyas

@prekshivyas prekshivyas commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

NVBug

NVBug 6643699 — [GB300 WoA][Test Plan Blocker] OpenShell MXC test scope needs clarification

Root cause

origin/windows had capable MXC developer tests and example harnesses, but no repository-owned qualification contract for GB300 Windows ARM64. The real-MXC and Tier-3 E2E lanes were intentionally skip-safe, so a hardware-free run could exit 0; ownership, model/app scope, architecture credit, prerequisites, pass/fail criteria, and retained artifacts were not machine-enforced.

Scope and fix

  • Adds a schema-validated matrix covering required, optional, unsupported, and architecture-constrained rows, with named ownership, prerequisites, pass criteria, skip policy, and artifact roles.
  • Requires native GB300 Windows ARM64 ProcessContainer coverage for source provenance, ARM64 check/build/tests, unsupported-driver boundaries, strict real MXC, 4/0/0 policy E2E, and OpenClaw dynamic forwarding.
  • Makes local-inference models and additional agent apps explicitly application/product-owned optional evidence.
  • Separates native-x64 NemoClaw, the x64 Node/OpenClaw installer helper, and Windows x64 lanes; none can receive GB300 ARM64 credit.
  • Records WSL, non-MXC Windows drivers, MXC process policy, GPU passthrough, and interactive exec/connect as unsupported; isolation_session, provider credentials, and ETW/OCSF are hardware/configuration-dependent optional rows.
  • Adds a strict ARM64 real-MXC action, a full PowerShell evidence collector, SHA256-bound evidence validation, negative regressions, and narrowly scoped docs.

Base

Freshly fetched origin/windows: fb2980e077288b61ef03a2e6187e162d158526aa

Head: a131f93886a3b29087b1d127e2aaadaa322de534

Before / reproduction

On the unmodified base, a missing-contract assertion exited 1 in 0.173 s:

MISSING crates/openshell-driver-mxc/qualification/gb300-woa.json
MISSING crates/openshell-driver-mxc/qualification/validate.py
MISSING crates/openshell-driver-mxc/qualification/run-gb300-woa.ps1
MISSING python/gb300_mxc_qualification_test.py
MISSING_CONTRACT_FILES=4
E2E_SKIP_IS_FAILURE=False
exit=1

The existing E2E verdict failed only on harness errors or FAIL; SKIP did not fail the lane.

After / verification

uv run python crates/openshell-driver-mxc/qualification/validate.py contract
PASS: nvbug-6643699-gb300-woa-mxc contract is valid

uv run pytest python/gb300_mxc_qualification_test.py -q
8 passed in 0.28s

mise run markdown:lint
139 Markdown files + 185 Mermaid-scanned files, 0 errors

cargo fmt --all --check        PASS
git diff --check              PASS
PowerShell parser (2 scripts) PASS
Ruff check + format check     PASS
TOML + JSON parse             PASS

Negative evidence proven by regression tests: a required skip, native-x64/NemoClaw substitution, missing NemoClaw exclusion, mislabeled optional x64 evidence, and a tampered artifact hash all fail validation. Direct x64 invocation on the ARM64 host also exits 1 before running tests.

On final head a131f938, the committed collector verified the exact origin/windows base and clean worktree, ARM64 PE inputs, explicit GB300 attestation, contract integrity, SHA256 capture, and live host verdicts processcontainer=live / dryRun=ok; it correctly recorded isolation_session as optional/unavailable. With an authenticated read-only GitHub rate-limit input (not retained in evidence), arm64-msvc-check then completed successfully, including the pinned Z3 download and Windows dependency-tree assertion.

A complete passing hardware evidence bundle is still not available. The subsequent arm64-release-build failed closed once with os error 112. In a controlled retry, the host began with 12.17 GB free, again passed arm64-msvc-check, and entered the release build; two other OpenShell Cargo jobs then started on the shared host and drove C: to 0.10 GB. This task's run was stopped to protect the host before it could emit evidence.json, and its generated target was cleaned. There is no alternate data volume mounted. The failed/partial credential-redacted logs remain under task-specific evidence directories and are not represented as passing evidence.

Earlier live exploratory execution passed all seven required dry-run cases plus the in-policy ProcessContainer write; the HTTPS case was stopped after an MXC proxy preflight stall. Read-only prior Windows-tip context showed the same source tests at 12/12 and E2E at PASS=4 FAIL=0 SKIP=0, but the collector intentionally refuses to reuse that as current evidence.

Security impact

No production runtime behavior or permissions change. Qualification becomes stricter: required skips, wrong architecture, stale/missing/out-of-root artifacts, and hash mismatches fail closed. The runner stages tracked fixtures plus freshly built ARM64 binaries, records hashes, keeps evidence outside the checkout, and does not accept credentials in retained required evidence.

Residual risk / platform limitations

  • Complete retained evidence still requires an elevated physical GB300 Windows ARM64 host, live ProcessContainer backend, ARM64 wxc-exec.exe, ARM64 Node.js, versioned OpenClaw input, outbound fixture access, sufficient build disk, and an isolated qualification window without competing Cargo builds.
  • isolation_session remains optional and OS/MXC-build dependent.
  • NemoClaw and Windows x64 results are separate native-x64 gates and never satisfy this contract.
  • WSL, GPU passthrough, interactive exec/connect, portable MXC process policy, and non-MXC Windows drivers remain excluded as documented.

@copy-pr-bot

copy-pr-bot Bot commented Sep 18, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
@prekshivyas
prekshivyas force-pushed the nvbug/6643699-gb300-woa-mxc-contract branch from 6f19ff8 to a131f93 Compare September 18, 2026 19:36
@prekshivyas

Copy link
Copy Markdown
Contributor Author

Qualification before/after summary

NVBug: 6643699 — GB300 Windows-on-Arm MXC qualification scope is undefined

Before: The repository had no GB300 WoA qualification contract, collector, validator, or contract tests. Required real-MXC/E2E rows could skip while the lane still exited successfully, and x64/NemoClaw evidence could be mistaken for native ARM64 coverage.

After: The contract validates successfully and its regression suite passes 8/8, including negative cases for required skips, wrong-architecture substitution, missing exclusions, and artifact hash tampering. The collector verifies source/base identity, ARM64 PE inputs, host attestation, artifact hashes, and live host capability verdicts.

Qualification status: Contract PASS; end-to-end qualification NOT YET PASS. The final-head collector failed closed at arm64-msvc-check after concurrent work exhausted the C: drive (os error 112). Partial exploratory results are not counted. A clean full collector run with retained evidence is still required after /ok to test enables hosted CI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant