fix(e2e): repair Hermes GPU fallback coverage - #10398
Conversation
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
…or-image-changes # Conflicts: # test/platform/images/vllm-docker-storage.test.ts
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Outcome Hermes GPU creation retains NemoClaw policy authority when OpenShell applies the reviewed GPU baseline enrichment or changes the policy during the same verified create transaction. Completed sandboxes, external policy mutations, and arbitrary filesystem additions remain unable to refresh a receipt. ## Reason The fallback and compatibility-only Hermes GPU jobs reached the exact sandbox, then rejected policy ownership. The compatibility route did not recognize the reviewed GPU enrichment. A later product-owned container transition could also advance the policy identity after the first receipt was recorded. The broader seven-job report contains three distinct root causes. This PR claims only the product-owned GPU receipt-transition cause. PR #10398 owns a different fallback cleanup failure. PRs #10116 and #10119 own external-policy preservation. ### Related issues Part of #9833. Relates to #10155. ## Changes - Recognize the reviewed native and compatibility GPU enrichment shapes while preserving route-specific `/proc` requirements. - Refresh a managed receipt only through the in-progress verified create transaction after exact identity and stable policy verification pass again. - Update the durable pending checkpoint with compare-and-set against the prior checkpoint before later effects continue. - Reject receipt refresh for completed sandbox mutations, routes without GPU injection, and arbitrary added filesystem paths. - Preserve the Hermes portable native-policy verifier on the renamed shared enrichment predicate. ## Verification - `npx vitest run --project cli src/lib/onboard/sandbox-create/policy-creation-receipt.test.ts` — 29 tests passed. - Focused CLI suites for receipt verification, orchestration, GPU identity gates, GPU create, policy mutation authority, and registry transitions — 9 files and 288 tests passed. - `tsc -p tsconfig.cli.json` — passed. - `tsx scripts/checks/run.mts` — repository checks passed. - File-local formatting, Oxlint, whitespace, and ignored-file hooks — passed. - `git diff --check` — passed. - The diff contains no secrets, API keys, or credentials. ## Review notes E2E root cause: `sandbox create / GPU policy receipt verification / reviewed compatibility enrichment and verified create transition rejected` Source run: https://github.com/NVIDIA/NemoClaw/actions/runs/33111985611 (run 33111985611, attempt 1) Failed jobs: - Hermes GPU fallback: https://github.com/NVIDIA/NemoClaw/actions/runs/33111985611/job/98657665722 - Hermes GPU compatibility-only: https://github.com/NVIDIA/NemoClaw/actions/runs/33111985611/job/98657665787 Signatures: - The live base policy does not match the policy supplied by the create transaction. - The creation receipt no longer matches the live sandbox policy before the runtime patch. Scope: one root cause. Security boundary: refresh requires the active verified create boundary, exact sandbox lifecycle identity, stable sandbox-scoped policy, an allowlisted GPU enrichment, and checkpoint compare-and-set. External mutations and completed-sandbox policy drift remain denied. Independent sensitive-path review remains required. --- Signed-off-by: Aaron Erickson <aerickson@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Bug Fixes** - Improved GPU policy validation across native and compatibility routes, including supported proxy-only access. - Strengthened post-creation checks for sandbox identity, reservations, checkpoints, and policy consistency. - Prevented unexpected policy registration changes during active sandbox creation. - Ensured mismatched managed policy registrations are rejected with clearer error handling. - **Tests** - Expanded coverage for GPU enrichment, proxy-only access, and policy registration revalidation. - Added coverage confirming mismatched managed registrations are rejected rather than refreshed. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
|
@sandl99 is https://github.com/NVIDIA/NemoClaw/actions/runs/33135982202/attempts/1#summary-98736002680 something to worry about? |
Signed-off-by: San Dang <sdang@nvidia.com>
|
PR Review Advisor finished for commit |
|
@cv Thanks for flagging this. Yes, the earlier Advisor run found an unreachable I removed the receipt type, authorization branch, and receipt-only tests in commit b3108fd. The existing fail-closed cleanup handoff remains covered. This repair removes 103 lines and adds 2. The complete PR is net -153 lines. Evidence for
|
Summary
Repair the Hermes managed-image GPU fallback E2E path after a focused rerun reproduced the failure on a different GPU runner. The live cell now exercises the supported pre-create rejection boundary while production cleanup remains fail-closed after managed state exists.
Related Issue
Addresses the Hermes GPU fallback failure in #10155.
Draft pending #10113.
Changes
--gpucreate before build or sandbox progress, then delegate one compatibility create and GPU proof. This keeps the managed-runner consumer executable without fabricating a post-create NVML failure that cannot be cleaned up by exact identity.Type of Change
Quality Gates
DGX Station Hardware Evidence
Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run validate:prpassed after refreshingorigin/mainwhen hooks were skipped or unavailableb3108fd15338e9d4b681a6cef9d987d11f2c23a0.b3108fd15338e9d4b681a6cef9d987d11f2c23a0in trusted run 33138120657: native, fallback, and compatibility-only passed. The dispatch receipt binds PR fix(e2e): repair Hermes GPU fallback coverage #10398,NVIDIA/NemoClaw, base and workflow SHA4e0e663a9a4cf6bac8df8972ea23dfc26ce3c309, and workflow attempt 1.npm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes — command/result:npm run docsbuilds without warnings (doc changes only)Signed-off-by: San Dang sdang@nvidia.com
Summary by CodeRabbit
Bug Fixes
Tests