Skip to content

fix(onboard): prove native Linux ARM64 GPUs with denylisted names - #8425

Open
latenighthackathon wants to merge 14 commits into
mainfrom
fix/native-linux-arm64-gpu-proof
Open

fix(onboard): prove native Linux ARM64 GPUs with denylisted names#8425
latenighthackathon wants to merge 14 commits into
mainfrom
fix/native-linux-arm64-gpu-proof

Conversation

@latenighthackathon

@latenighthackathon latenighthackathon commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

Onboarding reported no NVIDIA GPU detected on native Linux ARM64 hosts whose GPU reports a denylisted JMJWOA-Generic-* name, even where docker run --gpus all runs a CUDA workload successfully, so setup fell through to the remote provider menu. Those hosts now run the same bounded Docker CUDA proof that Docker Desktop-backed WSL already runs, and keep GPU passthrough when it passes.

Related Issue

Fixes #8096

Changes

  • src/lib/onboard/wsl-docker-desktop-gpu.ts: createArm64WslDockerDesktopGpuProver previously returned null unless detectWslDockerDesktopStatus() reported docker-desktop. Because that helper returns not-docker-desktop for any non-WSL host, a native ARM64 Linux host collapsed into the same branch and had no way to prove its GPU. The prover now returns null only when the host is WSL that is not Docker Desktop-backed, so native ARM64 Linux gains the proof and Windows-on-ARM passthrough scope is unchanged.
  • Log wording is now runtime-neutral (Docker GPU proof), matching the terminology already used in src/lib/inference/gpu-trust.ts and src/lib/inference/nim.test.ts.
  • Corrected the comments in wsl-docker-desktop-gpu.ts, gpu-trust.ts, and nim.ts that described the prover as Docker Desktop-only, including the wslDockerDesktopGpuProofPassed note that assumed the proof implies Docker Desktop WSL.
  • docs/reference/troubleshooting.mdx and docs/reference/commands.mdx: documented which hosts run the bounded proof, that it may pull the CUDA sample image, its 3 minute bound and the NEMOCLAW_WSL_GPU_PROOF_TIMEOUT_MS override, and the CPU fallback on failure or timeout.

The bounded CUDA workload remains the trust boundary, not the container runtime. The Snapdragon nvidia-smi shim exposes no usable CUDA device, so it still fails closed wherever the proof runs, preserving the #3988/#4424 default. test/../wsl-docker-desktop-gpu.test.ts protects both directions: a native Linux host proves its GPU, and a WSL host without Docker Desktop stays unproven.

Type of Change

  • Code change with doc updates

Quality Gates

  • Tests added or updated for changed behavior
  • Docs updated for user-facing behavior changes
  • 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: Nine-category maintainer security review passed with no findings: fix(onboard): prove native Linux ARM64 GPUs with denylisted names #8425 (comment)

Documentation Writer Review

  • Documentation writer subagent reviewed the completed changes
  • Result: docs-updated
  • Evidence: Updated docs/reference/commands.mdx and docs/reference/troubleshooting.mdx, and refreshed the generated source citation in docs/reference/platform-support.mdx. The final independent review verified the primary memory-query scope, the failed-proof outcome, the ARM64-capable vectorAdd command, and all OpenClaw, Hermes, and Deep Agents variants. The review also verified the nvcr.io pull and cache disclosure, positive-millisecond timeout contract, and precise pass/fail effects. No actionable findings remain.
  • Agent: Codex Desktop

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
  • Targeted behavior tests pass for the current change set — command/result: the final branch revision passes 108 focused CLI tests across the GPU prover and public detection boundary. The CLI and plugin builds, CLI type-check, repository structural checks, test-size budget, project membership, test-title check, Biome, and documentation build also pass. The documentation build reports 0 errors and 2 pre-existing warnings.
  • Quality Gates section completed with required justifications or waivers
  • No secrets, API keys, or credentials committed

I do not have native ARM64 Linux hardware, so the end-to-end run is not something I can confirm. The proof command in this path is the same one the reporter recorded as passing on the affected host.


Signed-off-by: latenighthackathon latenighthackathon@users.noreply.github.com

Summary by CodeRabbit

  • New Features

    • Improved GPU detection on ARM64 Linux and Docker Desktop-backed WSL environments.
    • Eligible systems now run a bounded CUDA verification with a configurable timeout.
    • Successful verification preserves GPU support; failures, timeouts, or unsupported WSL configurations safely fall back to CPU.
    • GPU verification now uses a pinned, immutable, multi-architecture CUDA image.
  • Documentation

    • Expanded troubleshooting guidance for ARM64 GPU detection, verification, configuration, and fallback behavior.
    • Updated GPU verification instructions to use the CUDA vector-add sample.

Onboarding reported "no NVIDIA GPU detected" on native Linux ARM64 hosts
whose GPU reports a denylisted JMJWOA-Generic-* name, even where
docker run --gpus all runs a CUDA workload successfully.

detectGpu() treats that name as untrusted unless firmware confirms a
Spark, Station, or Jetson host, and clears it only through the bounded
Docker CUDA proof. The prover returned null unless the host was Docker
Desktop-backed WSL, so a native Linux ARM64 host had no way to prove its
GPU and onboarding fell through to the remote provider menu.

Run the bounded proof on native ARM64 Linux as well. A WSL host that is
not Docker Desktop-backed still returns null, so Windows-on-ARM
passthrough scope is unchanged. The CUDA workload remains the trust
boundary, so the Snapdragon nvidia-smi shim still fails closed wherever
the proof runs.

Signed-off-by: latenighthackathon <latenighthackathon@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Aug 6, 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 ARM64 GPU prover now validates placeholder GPU names on native Linux and Docker Desktop-backed WSL. Tests cover success, failure, and unsupported WSL states. Reference and troubleshooting documentation describe the updated behavior.

Changes

ARM64 GPU proof

Layer / File(s) Summary
Expand ARM64 proof eligibility
src/lib/inference/gpu-trust.ts, src/lib/onboard/wsl-docker-desktop-gpu.ts, src/lib/inference/nim.ts
The bounded CUDA proof now applies to eligible native ARM64 Linux and Docker Desktop-backed WSL hosts. Other WSL hosts remain rejected. GPU trust and fallback handling remain fail-closed.
Validate proof outcomes
src/lib/onboard/wsl-docker-desktop-gpu.test.ts, src/lib/inference/nim.test.ts
Tests cover successful and failed native ARM64 proofs, immutable CUDA image selection, unsupported and unknown WSL statuses, and failed-proof GPU rejection.
Document proof behavior
docs/reference/commands.mdx, docs/reference/troubleshooting.mdx
Documentation describes eligible hosts, bounded CUDA validation, timeout configuration, fallback behavior, and the pinned CUDA sample image.

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

Sequence Diagram(s)

sequenceDiagram
  participant Onboarding
  participant ARM64GpuProver
  participant CudaVectorAddContainer
  Onboarding->>ARM64GpuProver: evaluate placeholder GPU and host eligibility
  ARM64GpuProver->>CudaVectorAddContainer: run bounded CUDA proof
  CudaVectorAddContainer-->>ARM64GpuProver: return proof outcome
  ARM64GpuProver-->>Onboarding: preserve GPU passthrough or fall back to CPU
Loading

Suggested labels: bug-fix

Suggested reviewers: apurvvkumaria

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 40.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The changes address issue #8096 by adding bounded CUDA proof for native Linux ARM64 hosts while preserving fail-closed behavior.
Out of Scope Changes check ✅ Passed The code, tests, comments, and documentation changes support the linked issue and stated objectives.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: proving native Linux ARM64 GPUs with denylisted names.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/native-linux-arm64-gpu-proof

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

@github-code-quality

github-code-quality Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in commit ca3fcc6 in the fix/native-linux-arm... branch remains at 96%, unchanged from commit b1a8c13 in the main branch.

TypeScript / code-coverage/cli

The overall coverage in commit ca3fcc6 in the fix/native-linux-arm... branch remains at 81%, unchanged from commit d8fbb6e in the main branch.

Show a code coverage summary of the most impacted files.
File main d8fbb6e fix/native-linux-arm... ca3fcc6 +/-
src/lib/core/pr...mpt-activity.ts 92% 67% -25%
src/lib/onboard...-transaction.ts 93% 93% 0%
src/lib/credentials/store.ts 55% 56% +1%
src/lib/trace.ts 90% 94% +4%
src/lib/messagi...onfig-parser.ts 93% 97% +4%
src/lib/platform.ts 84% 89% +5%
src/lib/messagi...ate-resolver.ts 95% 100% +5%
src/lib/messagi...onfig-parser.ts 93% 100% +7%
src/lib/messagi...ink-base-url.ts 90% 100% +10%
src/lib/messagi...onfig-parser.ts 86% 100% +14%

Updated August 07, 2026 10:52 UTC

@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — Blocking findings reported

Advisor assessment: Blockers require maintainer review
Next action: Review the blockers below.
Findings: 1 blocker · 0 warnings · 0 suggestions
Status: Partial review preserved 1 canonical finding(s) and 3 terminology decision(s) before the advisor stopped.

Model lanes

  • GPT-5.6 Terra (primary): Failed after a partial review · low confidence · 1 blocker · 0 warnings · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Failed after a partial review · low confidence · 0 blockers · 1 warning · 0 suggestions

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

3 semantic terminology decisions

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

  • established — Docker GPU proof at src/lib/onboard/wsl-docker-desktop-gpu.ts:216: Keep `Docker GPU proof` for this bounded workload.
  • justified — Docker Desktop-backed WSL at docs/reference/commands.mdx:890: Keep the modifier because it identifies the WSL runtime condition for the proof path.
  • define — firmware-confirmed NVIDIA platform at docs/reference/troubleshooting.mdx:837: Define the recognized platform sources or categories at first use, or use an established repository term that identifies the same detection condition.

E2E guidance

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

Recommended E2E: cloud-onboard, inference-routing, network-policy, onboard-repair, onboard-resume

Blockers

PRA-1 Blocker — Do not derive GPU capacity from unproven nvidia-smi rows after a proof

  • Location: src/lib/inference/nim.ts:478
  • Category: correctness
  • Problem: After a Docker CUDA proof passes, detection retains every denylisted or plausibly named nvidia-smi row and sums their reported memory. The proof establishes usable CUDA on the host, but it does not establish that each reported row or capacity is genuine.
  • Impact: A spoofed or stale plausible row can inflate detected GPU count or VRAM after one valid workload succeeds. NemoClaw can then enable NIM or select a model that the proven GPU capacity cannot support.
  • Fix: When a denylisted name requires the Docker proof, reject a multi-row response unless each row has independent identity evidence, or retain only the specifically proven device with verified capacity.
  • Verification: Read `detectGpu()` with a two-row response containing `JMJWOA-Generic-GPU` and `NVIDIA GeForce RTX 4090 Laptop GPU`, then inject a passing prover and inspect the returned count and totalMemoryMB.
  • Test coverage: Add a `detectGpu()` regression with a passing prover and mixed denylisted/plausible rows. Assert that ambiguous rows do not increase count, totalMemoryMB, or NIM capability; alternatively assert that detection returns null.
  • Evidence: src/lib/inference/nim.ts:478-493 retains all denylisted or plausible rows after one proof and sums their memory. src/lib/inference/nim.test.ts:694-712 rejects a mixed placeholder/plausible response only when no proof passes. src/lib/inference/nim.test.ts:722-748 covers only a single placeholder row with a passing proof.

Workflow run details

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

@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 `@docs/reference/commands.mdx`:
- Line 799: Update the proof descriptions in docs/reference/commands.mdx (lines
799-799) and docs/reference/troubleshooting.mdx (lines 808-817) to scope them to
generic ARM64 hosts without firmware-confirmed NVIDIA platform metadata; in
commands.mdx replace the broad “every other host still fails closed” wording
with wording limited to other non-firmware-vouched hosts, and qualify the
troubleshooting proof instructions accordingly.

In `@src/lib/onboard/wsl-docker-desktop-gpu.test.ts`:
- Around line 88-105: Add a test through the public detectGpu() boundary for the
denylisted native ARM64 GPU case, asserting that a failed proof produces null
rather than exposing the failed result. Update the related tests around
createArm64WslDockerDesktopGpuProver() so helper-level assertions do not claim
public fail-closed detection, while preserving their proof behavior 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: 1cf5773e-d822-4713-b4fa-b2450cc66f08

📥 Commits

Reviewing files that changed from the base of the PR and between 35b15d5 and 9b81b72.

📒 Files selected for processing (6)
  • docs/reference/commands.mdx
  • docs/reference/troubleshooting.mdx
  • src/lib/inference/gpu-trust.ts
  • src/lib/inference/nim.ts
  • src/lib/onboard/wsl-docker-desktop-gpu.test.ts
  • src/lib/onboard/wsl-docker-desktop-gpu.ts

Comment thread docs/reference/commands.mdx Outdated
Comment thread src/lib/onboard/wsl-docker-desktop-gpu.test.ts
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@apurvvkumaria

Copy link
Copy Markdown
Collaborator

Maintainer CI classification: the non-required managed runtime lane failed during OpenClaw managed bootstrap because the runtime-reported normalized Docker replacement spec changed in AttachStderr, AttachStdout, and PortBindings. That boundary is outside this PR’s ARM64 GPU proof and documentation changes. The separate managed startup lanes for OpenClaw, Hermes, and Deep Agents Code all passed, as did the required main-branch contexts (checks, commit-lint, dco-check, and check-hash; changes completed as a neutral no-op for these paths). I am classifying this as external managed-runtime drift rather than a PR regression; no PR code change is indicated.

@apurvvkumaria

Copy link
Copy Markdown
Collaborator

Maintainer CI classification: the required CLI shard failure is a transient runner-timing failure, not a PR regression. After roughly 9.6 minutes of shard execution, the only error was the synchronous beforeEach at src/lib/shields/policy-transition.test.ts:40 exceeding the 10-second hook limit. This PR does not change that file or the shields implementation. On the current branch revision, the complete file passes locally: 1 file, 29 tests, 2.40 seconds. I started one rerun of the failed shard; its dependent cli-tests and checks rollups will follow that result.

@apurvvkumaria

Copy link
Copy Markdown
Collaborator

Follow-up: the single CLI shard rerun passed. Its dependent cli-tests rollup passed, and the required checks context is green again. This confirms the earlier hook timeout was transient; no PR change was needed.

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
@apurvvkumaria

Copy link
Copy Markdown
Collaborator

Maintainer follow-up for the current branch revision (16192638a):

  • Refreshed the branch from current main without rewriting contributor history.
  • The earlier managed-runtime activation failure is not linked to the ARM64 GPU proof change. It ran on an x64 hosted runner, reached OpenClaw onboarding, and then rejected runtime/container inspection drift in AttachStdout, AttachStderr, and PortBindings. The safety guard was not weakened; fresh CI on this branch revision is authoritative.
  • Independent documentation-writer review passes after clarifying that the automatic proof can pull the CUDA sample from nvcr.io and retain it in the local image cache, that the timeout override accepts a positive millisecond value, and that only a passing workload qualifies the detected GPU. No other user-facing documentation or routing change is required.
  • Local validation passes: 108 focused GPU prover and public detection-boundary tests, plugin and CLI builds, CLI type checking, repository hooks, and diff checks. Documentation routes and all agent variants pass with 0 errors and 2 existing Fern warnings.

Nine-category security review: PASS, no findings. (1) no secrets or credentials added; (2) the CUDA proof uses a repository-controlled fixed argv without a shell, and GPU names are not interpolated into the command; (3) no authentication or authorization changes; (4) no dependency changes; (5) diagnostics remain bounded and contain no credential data; (6) no cryptographic changes; (7) no security-header or policy configuration changes; (8) tests cover eligible native ARM64, Docker Desktop-backed WSL, excluded WSL runtimes, successful, failed, timed-out, and public fail-closed detection paths; (9) the holistic trust boundary remains the successful bounded CUDA workload—non-ARM64 hosts, the names-only fallback, unqualified WSL runtimes, and failed proofs do not gain GPU trust.

No CI waiver or merge bypass is requested. Merge remains contingent on the fresh required checks and an independent approval.

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
@apurvvkumaria

Copy link
Copy Markdown
Collaborator

Addressed PRA-1 in validated commit 4c6944a68.

  • Changed the GPU proof image from the mutable tag to the immutable NVIDIA registry multi-platform manifest sha256:7c7540bdf1f942d4fb6db97069fd6c289471b54ac29e3c7fcdf914cf77af7d41.
  • Verified the manifest through the NVIDIA registry: it resolves to Linux AMD64 and Linux ARM64 images, preserving both supported host paths.
  • Strengthened the focused test to require the full approved manifest reference and reject the previous mutable tag.
  • Updated both user-facing command examples. The documentation writer review found the implementation and published guidance consistent, with no additional changes required.

Validation on the current branch revision:

  • 108 focused GPU-prover and detection tests passed.
  • CLI type-check passed.
  • Documentation build passed with 0 errors and the 2 previously recorded warnings.
  • Documentation variant synchronization, Biome, repository checks, secret scan, commit lint, and signed pre-push hooks passed.

Refreshed nine-category security review: PASS — no findings.

  1. Input validation: unchanged; proof eligibility and timeout validation remain fail-closed.
  2. Authentication and authorization: unchanged.
  3. Secrets and credentials: no secret-bearing data added; secret scan passed.
  4. Command execution and injection: fixed argv remains internal; no user-controlled shell interpolation.
  5. Network and SSRF: registry destination is fixed and the executable content is now immutable.
  6. Filesystem and path handling: unchanged.
  7. Sandbox and privilege boundaries: proof success remains required before GPU passthrough is trusted.
  8. Dependency and supply chain: verified multi-platform manifest replaces the mutable image tag.
  9. Logging and information exposure: unchanged; no sensitive values are logged.

GitHub Actions replacement runs may remain queued while Actions availability is degraded; I will monitor them without issuing repeated reruns.

@github-actions github-actions Bot added v0.0.105 Release target and removed v0.0.104 labels Aug 7, 2026
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
@apurvvkumaria

Copy link
Copy Markdown
Collaborator

CI failure follow-up for the current branch revision:

  • CLI shard 3 — branch-related: the Windows-on-ARM platform row still cited line 188 after this PR moved the denylist guard to line 214. I updated ci/platform-matrix.json and regenerated docs/reference/platform-support.mdx. The platform documentation test now passes all 22 cases.
  • CLI shard 3 — transient: the unchanged DGX Spark setup test timed out at the runner's 5-second limit. The isolated test passes locally in 341 ms after using the generated serving catalog, so there is no branch-related failure to fix in that test.
  • Reviewed npm audit — repository-wide regression: the verifier incorrectly required development-only @types/node after installing the production graph with development dependencies omitted. fix(ci): align locked graph verification with production install #8531 corrected that verifier and is now on main; this branch has been refreshed with the fix. Its regression suite passes all 21 cases locally.

Additional validation passes: CLI type checking, documentation build (0 errors; 2 pre-existing warnings), diff whitespace checks, DCO, and GitHub commit verification. Fresh CI is now running, and I will continue monitoring it.

@apurvvkumaria

Copy link
Copy Markdown
Collaborator

Fresh validation completed: 56 checks pass with no pending or failing check, including the live all-agent managed-runtime activation gate. Documentation and security reviews pass, the final documentation receipt is current, all review threads are resolved, and DCO plus GitHub verification pass. The PR is mergeable; independent approval is the only remaining gate.

cv
cv previously requested changes Aug 7, 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.

Please refresh this branch onto the current main commit and rerun the required checks. The current base SHA is df56c02b, while main is bfc2bafd; repository policy does not permit approval of a stale branch. I reviewed the native ARM64 candidate gate, immutable CUDA image, bounded proof, WSL exclusion, failure fallback, tests, and documentation and found no additional correctness or security defect.

@cv
cv dismissed their stale review August 7, 2026 10:33

The stale-base request was addressed. A current review records the remaining diagnostic-safety findings separately.

@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.

Two current findings remain. Escape or safely format GPU names from nvidia-smi before writing them to terminal output, and add an ANSI/control-character regression so a malformed denylisted suffix cannot alter logs. Also document the authoritative identity signal and removal condition that would retire the native ARM64 proof exception.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[N1X Linux][NemoClaw] GPU not detected during express install on native Linux ARM64 — detectNvidiaPlatform() falls through to "linux" path

3 participants