Skip to content

fix(installer): restore GPU qualification and align PR E2E - #8748

Merged
prekshivyas merged 12 commits into
NVIDIA:mainfrom
prekshivyas:agent/fix-8681-exact-pr-e2e-contract
Aug 11, 2026
Merged

fix(installer): restore GPU qualification and align PR E2E#8748
prekshivyas merged 12 commits into
NVIDIA:mainfrom
prekshivyas:agent/fix-8681-exact-pr-e2e-contract

Conversation

@prekshivyas

@prekshivyas prekshivyas commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

Non-interactive installation now continues to onboarding when NemoClaw can repair a supported Docker storage configuration. NVIDIA driver detection now accepts valid two-part versions such as 595.84, so newer GPU hosts satisfy the declarative driver floor. PR E2E guidance now preserves the broad trusted Advisor inventory while the manual PR controller remains limited to its two safe explicit selectors, and installer/readiness changes select the generic NVIDIA GPU qualification job.

Together, these changes remove two infrastructure blockers that prevented the GPU lane from reaching model startup. Tomorrow's Lightning 3.5 integration can therefore use the installer and GPU qualification path without misclassifying a repairable storage setup or a valid NVIDIA driver as a host failure.

Related Issue

Fixes #8681

Changes

  • Allow the outer installer preflight to defer supported storage remediation to the authoritative onboarding gate. That gate still rejects externally supervised gateways and unsupported runtimes.
  • Print canonical, fallback-finding, and required-capability diagnostics when readiness admission fails.
  • Accept two-part and three-part numeric NVIDIA driver versions while rejecting malformed or inconsistent multi-GPU values.
  • Restore automatic Advisor planning for every trusted E2E job except the self-hosted Jetson lane, while keeping the manual PR controller's explicit selector allowlist limited to inference-routing and managed-image-protected-runtime.
  • Export the manual-controller selector contract, give it a dedicated eligibility function, and bind the workflow boundary to it so its two safe selectors cannot drift without failing validation.
  • Preserve manual-only selector provenance through Advisor normalization and render it separately from E2E that can run for the commit under review.
  • Select the generic NVIDIA GPU E2E job when installer, readiness, or onboarding-preflight paths change.
  • Register the managed-image activation test glob with the reviewed base-image path parser so current-main growth checks accept their own workflow input.
  • Add regression coverage for managed storage admission, readiness diagnostics, NVIDIA driver parsing, exact E2E classification, the reviewed activation glob, and the GPU workflow selector.

Type of Change

  • Code change (feature, bug fix, or refactor)
  • Code change with doc updates
  • Doc only (prose changes, no code sample modifications)
  • Doc only (includes code sample changes)

Quality Gates

  • Tests added or updated for changed behavior
  • Existing tests cover changed behavior — justification:
  • Tests not applicable — justification:
  • Docs updated for user-facing behavior changes
  • Docs not applicable — justification:
  • Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging)
  • Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: Codex Desktop reviewed the trust boundary. The outer preflight permits only the existing managed-storage remediation path; authoritative onboarding rechecks gateway ownership, and unsupported runtimes remain fail-closed. Driver parsing remains restricted to two or three numeric dotted segments and requires one consistent value across GPUs.
  • Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue:

Documentation Writer Review

  • Documentation writer subagent reviewed the completed changes
  • Result: docs-updated
  • Evidence: test/e2e/README.md
  • Agent: Codex Desktop

DGX Station Hardware Evidence

  • Tested on DGX Station
  • Tested commit:
  • Station profile/scenario:
  • Result:
  • Supporting evidence:

Verification

  • PR description includes a Signed-off-by: line and every commit appears as Verified in GitHub
  • Normal pre-commit, commit-msg, and pre-push hooks passed, or npm run validate:pr passed after refreshing origin/main when hooks were skipped or unavailable
  • Targeted behavior tests pass for the current change set, or tests are marked not applicable above — 13 driver/selection tests, 274 focused Advisor/controller/publication tests, 407 changed tests plus 4 growth-contract tests, and 3 installer-contract tests.
  • Applicable broad gate passed — npm test for broad runtime/test-harness changes; npm run check for repo-wide validation/coverage changes — command/result:
  • Quality Gates section completed with required justifications or waivers
  • No secrets, API keys, or credentials committed
  • npm run docs builds without warnings (doc changes only)
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

Additional validation:

  • npm run typecheck:cli
  • npm run checks:repository
  • npm run test:e2e-phases:check
  • npm run test-size:check
  • npm run test:changed
  • git diff --check

Live NVIDIA GPU E2E passed for final head d62bb82e8: generic NVIDIA GPU job.


Signed-off-by: Prekshi Vyas 34834085+prekshivyas@users.noreply.github.com

Summary by CodeRabbit

  • New Features

    • Added inference-routing as a supported manual E2E validation target.
    • PR E2E guidance now distinguishes PR-eligible jobs from trusted-main, manual-only jobs.
    • Installer onboarding now supports approved storage remediation.
    • Installer failures provide actionable readiness summaries and capability details.
    • Self-hosted GPU E2E checks now run for relevant installer and onboarding changes.
  • Bug Fixes

    • Improved E2E target validation and recommendation accuracy.
    • Broadened NVIDIA driver version detection to support additional valid formats.

@copy-pr-bot

copy-pr-bot Bot commented Aug 10, 2026

Copy link
Copy Markdown

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.

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The PR aligns trusted E2E selector validation with advisor recommendations. It adds inference-routing, classifies manual-only jobs, updates installer preflight remediation and diagnostics, expands generic GPU workflow triggers, and broadens NVIDIA driver-version parsing.

Changes

PR E2E alignment

Layer / File(s) Summary
Trusted selector contract and boundary coverage
.github/workflows/e2e.yaml, tools/e2e/*.mts, test/e2e/support/*, test/e2e/README.md
Trusted manual PR paths accept inference-routing. Tests cover accepted selectors, rejected secret-backed selectors, controller matrices, planner matrices, and evidence rules.
Trusted inventory and risk-plan classification
tools/advisors/e2e-recommendations.mts, tools/advisors/risk-plan.mts, test/pr-risk-plan.test.ts
The trusted inventory separates planning-eligible and manual-only jobs. The risk plan uses an explicit allowlist for PR planning.
Advisor recommendation rendering and regression coverage
tools/pr-review-advisor/*.mts, test/pr-review-advisor-normalization.test.ts
The advisor preserves manual-only selectors and renders them separately from commit-under-review recommendations. Tests verify selector classification, wording, and category separation.

Installer preflight coverage

Layer / File(s) Summary
Installer admission remediation and diagnostics
scripts/install.sh, test/package-contract/installer-host-preflight.test.ts
Installer host admission enables managed storage remediation and reports readiness findings and unavailable capability IDs on failure. Package-contract tests cover successful remediation and blocking unsupported runtimes.
Self-hosted GPU workflow selection
.github/workflows/pr-self-hosted.yaml, test/e2e/support/pr-self-hosted-llama-selector.test.ts
The generic GPU E2E job now runs for installer, readiness, and onboarding preflight changes. Tests validate selection and rejection of unrelated documentation changes.

NVIDIA driver detection

Layer / File(s) Summary
Driver-version parsing and validation
src/lib/inference/nim.ts, src/lib/inference/nim-driver-version.test.ts, src/lib/inference/llama-cpp/managed-selection.test.ts
Driver detection accepts formats such as 535.1 and 535.1.2. Tests cover valid, malformed, inconsistent, and updated fixture versions.

Estimated code review effort: 3 (Moderate) | ~30 minutes

Sequence Diagram(s)

sequenceDiagram
  participant PRReviewAdvisor
  participant TrustedInventory
  participant RiskPlan
  participant E2EController
  PRReviewAdvisor->>TrustedInventory: Load trusted E2E job IDs
  TrustedInventory->>RiskPlan: Classify planning and manual-only jobs
  RiskPlan-->>TrustedInventory: Return selector categories
  TrustedInventory-->>PRReviewAdvisor: Provide validated recommendations
  PRReviewAdvisor->>E2EController: Dispatch supported exact-revision selectors
Loading

Possibly related PRs

  • NVIDIA/NemoClaw#8477: Both modify E2E selector validation and trusted manual-dispatch boundaries.
  • NVIDIA/NemoClaw#8768: Both modify installer host-preflight storage remediation and regression tests.

Suggested labels: area: e2e, platform: container

Suggested reviewers: cv

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning Installer storage admission, NVIDIA driver parsing, and self-hosted GPU workflow changes are unrelated to linked issue #8681. Split the installer, driver, and GPU workflow changes into a separate pull request, or link issues that explicitly require them.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The changes share and test the E2E selector contract, enable inference-routing, and classify network-policy as manual-only for issue #8681.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the two primary changes: restoring installer GPU qualification and aligning PR E2E behavior.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

Comment thread tools/advisors/e2e-recommendations.mts Fixed
@github-actions

github-actions Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — No blocking findings reported

Advisor assessment: No blocking advisor findings reported
Next action: No advisor follow-up needed.
Findings: 0 blockers · 0 warnings · 0 suggestions

Model lanes

  • GPT-5.6 Terra (primary): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Model comparison: normalized findings match; normalized terminology decisions differ; normalized E2E selections match; severity counts match.
4 terminology differences from the second opinion

Advisory only. These are normalized differences from the primary terminology receipt.

  • inference-routing at .github/workflows/e2e.yaml:182: selected only by the second-opinion lane as established.
  • storage remediation at test/package-contract/installer-host-preflight.test.ts:130: selected only by the second-opinion lane as established.
  • commit under review at test/e2e/support/e2e-operations-workflow-boundary.test.ts:231: selected only by the second-opinion lane as established.
  • manual-only at test/pr-review-advisor-comment-cli.test.ts:135: selected only by the second-opinion lane as define.

Second-opinion terminology and E2E selections are advisory. Live E2E does not run automatically for pull requests.

2 semantic terminology decisions

Terminology decisions are advisory. They affect the assessment only when a separate finding identifies concrete semantic impact.

  • justified — manual-only E2E at tools/pr-review-advisor/comment.mts:708: Keep this label with the adjacent statement that identifies its reviewed-main execution boundary.
  • established — credential-free at test/e2e/README.md:872: Use credential-free with its controlled meaning when describing controller-accepted E2E selectors.

E2E guidance

Advisory only. A maintainer can dispatch the default E2E suite against this exact revision.

Recommended E2E: cloud-inference, cloud-onboard, managed-image-multiarch-startup, security-posture, inference-routing, network-policy

Workflow run details

This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge.

@prekshivyas
prekshivyas force-pushed the agent/fix-8681-exact-pr-e2e-contract branch from c7aec2d to 948717d Compare August 10, 2026 18:10
Signed-off-by: Prekshi Vyas <34834085+prekshivyas@users.noreply.github.com>
@wscurran wscurran added area: ci CI workflows, checks, release automation, or GitHub Actions bug-fix PR fixes a bug or regression labels Aug 10, 2026

@cv cv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's no "inexact-revision". Please review WRITING.md and follow it across all communications and docs.

Signed-off-by: Prekshi Vyas <34834085+prekshivyas@users.noreply.github.com>
@prekshivyas prekshivyas changed the title fix(ci): align Advisor with exact-revision E2E fix(ci): align Advisor with E2E for the commit under review Aug 10, 2026
@prekshivyas
prekshivyas marked this pull request as ready for review August 10, 2026 18:49

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@test/pr-review-advisor-normalization.test.ts`:
- Around line 216-239: Strengthen the test for buildComment so it verifies that
the manual-only network-policy test is absent from the recommended E2E section,
not merely present in the manual-only section. Add an assertion against the
recommended-section content or otherwise validate that network-policy does not
appear there while preserving the existing inference-routing and manual-only
checks.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 05f79eb3-684c-405e-848b-6a6ec259a5f7

📥 Commits

Reviewing files that changed from the base of the PR and between 286d3a1 and 45e75b1.

📒 Files selected for processing (9)
  • .github/workflows/e2e.yaml
  • test/e2e/README.md
  • test/e2e/support/e2e-operations-workflow-boundary.test.ts
  • test/pr-review-advisor-normalization.test.ts
  • tools/advisors/e2e-recommendations.mts
  • tools/advisors/risk-plan.mts
  • tools/e2e/operations-workflow-boundary.mts
  • tools/e2e/workflow-boundary.mts
  • tools/pr-review-advisor/comment.mts

Comment thread test/pr-review-advisor-normalization.test.ts
Signed-off-by: Prekshi Vyas <34834085+prekshivyas@users.noreply.github.com>
@prekshivyas
prekshivyas requested a review from cv August 10, 2026 19:05
@prekshivyas prekshivyas self-assigned this Aug 10, 2026
@prekshivyas prekshivyas changed the title fix(ci): align Advisor with E2E for the commit under review fix(installer): preserve remediation and align PR E2E Aug 11, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@test/package-contract/installer-host-preflight.test.ts`:
- Around line 80-92: Extend the installer preflight rejection tests around the
onboard admission fixture to return an unknown finding ID and a nonempty
capability ID, then assert both identifiers appear in the installer output.
Ensure the assertions validate fallback diagnostics directly without relying on
finding-summary mappings, covering the finding-ID and required-capability output
paths in the admission rejection flow.

In `@tools/advisors/risk-plan.mts`:
- Line 32: Replace the duplicated PR planning selector lists used by
PR_E2E_PLANNING_JOB_IDS and the e2e workflow with one machine-readable canonical
contract consumed by both layers; if direct workflow consumption is unavailable,
add a deterministic parity test that compares them and fails on any difference.
Preserve the shared contract between the Advisor and trusted-main controller,
including the current selectors.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 8c8ee41b-321d-4278-b372-10cdf250d409

📥 Commits

Reviewing files that changed from the base of the PR and between 15f552a and 6539c11.

📒 Files selected for processing (11)
  • .github/workflows/pr-self-hosted.yaml
  • scripts/install.sh
  • test/e2e/README.md
  • test/e2e/support/pr-self-hosted-llama-selector.test.ts
  • test/package-contract/installer-host-preflight.test.ts
  • test/pr-review-advisor-normalization.test.ts
  • test/pr-risk-plan.test.ts
  • tools/advisors/e2e-recommendations.mts
  • tools/advisors/risk-plan.mts
  • tools/pr-review-advisor/analyze.mts
  • tools/pr-review-advisor/comment.mts
🚧 Files skipped from review as they are similar to previous changes (3)
  • test/pr-review-advisor-normalization.test.ts
  • test/e2e/README.md
  • tools/pr-review-advisor/comment.mts

Comment thread test/package-contract/installer-host-preflight.test.ts
Comment thread tools/advisors/risk-plan.mts Outdated
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
@prekshivyas prekshivyas changed the title fix(installer): preserve remediation and align PR E2E fix(installer): restore GPU qualification and align PR E2E Aug 11, 2026
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ci CI workflows, checks, release automation, or GitHub Actions bug-fix PR fixes a bug or regression

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PR Advisor can recommend E2E jobs that exact-revision dispatch rejects

4 participants