Skip to content

fix(onboard): surface install-vllm when explicitly opted in via env#3790

Merged
jyaunches merged 3 commits into
mainfrom
fix/install-vllm-explicit-opt-in
May 19, 2026
Merged

fix(onboard): surface install-vllm when explicitly opted in via env#3790
jyaunches merged 3 commits into
mainfrom
fix/install-vllm-explicit-opt-in

Conversation

@laitingsheng

@laitingsheng laitingsheng commented May 19, 2026

Copy link
Copy Markdown
Contributor

Summary

NEMOCLAW_PROVIDER=install-vllm and NEMOCLAW_EXPERIMENTAL=1 used to disappear silently in two scenarios: (a) when a vLLM server was already running on localhost:8000 — the menu correctly picked the running entry but never told the user their env-var opt-in was redirected; and (b) when no vLLM profile matched the host — the menu dropped the install entry entirely and the dispatcher emitted the generic "Requested provider 'install-vllm' is not available in this environment." error that hid the real cause. Docs additionally claimed Local vLLM required both NEMOCLAW_EXPERIMENTAL=1 AND a server already running, which conflated the two paths.

Related Issues

Fixes #3765
Fixes #3684

Changes

  • New buildVllmMenuEntries helper at src/lib/onboard/vllm-menu.ts that builds the local-vLLM entries for the onboarding inference menu in one place: always emits the install entry when the user explicitly opted in via NEMOCLAW_PROVIDER=install-vllm (even when no profile matches), so the dispatcher can emit the precise "No vLLM install profile available for this host." error. When running vLLM takes precedence over the opt-in, the helper logs a note so the redirect is visible.
  • setupNim in src/lib/onboard.ts delegates the vLLM menu construction to the helper. Net diff on onboard.ts is -9 lines.
  • Provider-status table in ci/platform-matrix.json split into two rows — "Local vLLM (already running)" (no flag required) and "Local vLLM (managed install/start)" (requires NEMOCLAW_EXPERIMENTAL=1 or NEMOCLAW_PROVIDER=install-vllm). Regenerated docs/inference/inference-options.md and its .mdx mirror.
  • Unit tests for buildVllmMenuEntries covering every code path. Integration tests at test/onboard-selection.test.ts verify the dispatcher's precise error message and the running-vLLM override note.

Type of Change

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

Verification

  • npx prek run --all-files passes
  • npm test passes
  • Tests added or updated for new or changed behavior
  • No secrets, API keys, or credentials committed
  • Docs updated for user-facing behavior changes
  • make 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)

Signed-off-by: Tinson Lai tinsonl@nvidia.com

Summary by CodeRabbit

  • New Features

    • Local vLLM split into two options: "Local vLLM (already running)" (auto-detected on localhost:8000, no flag) and "Local vLLM (managed install/start)" (managed install/start flow, opt-in required).
  • Documentation

    • Updated quickstart, inference, and security docs to reflect the two vLLM options, gating, and host prerequisites.
  • Tests

    • Added tests covering detection, opt-in, install vs. running selection, and messaging for install-vllm flows.

Review Change Stack

Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented May 19, 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 May 19, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 50167f8e-960f-476e-9aff-9b1bc9614e2e

📥 Commits

Reviewing files that changed from the base of the PR and between 92b01bd and 1f509fb.

📒 Files selected for processing (5)
  • docs/get-started/quickstart.md
  • docs/get-started/quickstart.mdx
  • docs/inference/inference-options.md
  • docs/inference/inference-options.mdx
  • src/lib/onboard.ts
✅ Files skipped from review due to trivial changes (3)
  • docs/get-started/quickstart.md
  • docs/inference/inference-options.md
  • docs/get-started/quickstart.mdx
🚧 Files skipped from review as they are similar to previous changes (2)
  • docs/inference/inference-options.mdx
  • src/lib/onboard.ts

📝 Walkthrough

Walkthrough

Extracts vLLM menu construction into buildVllmMenuEntries, updates onboard.ts to call it, adds unit and integration tests for install-vllm edge cases, and updates platform/config/docs to distinguish "Local vLLM (already running)" from "Local vLLM (managed install/start)".

Changes

vLLM Onboarding Menu Refactor

Layer / File(s) Summary
Configuration and documentation updates
ci/platform-matrix.json, docs/get-started/quickstart.md, docs/get-started/quickstart.mdx, docs/inference/inference-options.md, docs/inference/inference-options.mdx, docs/security/best-practices.md, docs/security/best-practices.mdx
Platform matrix and docs split "Local vLLM" into two options: detected running server on localhost:8000 (caveated, no flag) and managed install/start (experimental or explicit NEMOCLAW_PROVIDER=install-vllm).
vLLM menu builder: types & implementation
src/lib/onboard/vllm-menu.ts
Adds buildVllmMenuEntries(opts) and supporting types; reads NEMOCLAW_PROVIDER (injectable), detects explicit opt-in, prefers running vLLM when present (with optional log), otherwise returns an install-vllm entry labeled "Start" or "Install" based on cached image and profile.
Unit tests for vLLM menu builder
src/lib/onboard/vllm-menu.test.ts
Vitest coverage for all builder behaviors: no entries, running entry, install/start entry with profile+experimental or explicit provider, cached-image "Start" labeling, and override logging when running vLLM suppresses explicit install request.
Onboard integration: call builder
src/lib/onboard.ts
Imports and uses buildVllmMenuEntries (passing vllmRunning, vllmProfile, EXPERIMENTAL, hasVllmImage) replacing prior inline menu construction; minor import-type reorder.
Onboard selection integration tests
test/onboard-selection.test.ts
Adds tests asserting NEMOCLAW_PROVIDER=install-vllm without a profile errors with a precise message and that install-vllm is overridden by a running vLLM with an emitted override log.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • NVIDIA/NemoClaw#3417: Similar onboarding/provider-menu updates splitting running vLLM detection and managed install/start.
  • NVIDIA/NemoClaw#3643: Related onboarding provider selection logic changes addressing NEMOCLAW_PROVIDER behavior.
  • NVIDIA/NemoClaw#1772: Earlier changes touching NEMOCLAW_PROVIDER validation and onboarding selection logic.

Suggested labels

Local Models, enhancement: inference, documentation, v0.0.45

Suggested reviewers

  • ericksoa
  • cv
  • jyaunches

Poem

🐰 I split the vLLM, two ways to play,
One's already running, the other's an install-way.
Docs hop along and tests do cheer,
The menu now picks the right path clear.
thump 🌿

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
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 (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title 'fix(onboard): surface install-vllm when explicitly opted in via env' directly and specifically describes the main code change—enabling the install-vllm provider menu entry when NEMOCLAW_PROVIDER=install-vllm is set, fixing the issue where it was silently ignored.
Linked Issues check ✅ Passed All coding objectives from issues #3765 and #3684 are met: new buildVllmMenuEntries helper surfaces install-vllm when explicitly opted in [#3765], logs override notes when vLLM is running [#3765], emits precise error messages for missing profiles [#3765], and docs distinguish already-running vs managed vLLM paths [#3684].
Out of Scope Changes check ✅ Passed All changes are directly scoped to the linked issues: configuration schema and provider menu logic (ci/platform-matrix.json, src/lib/onboard files), corresponding documentation updates, and supporting test coverage.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/install-vllm-explicit-opt-in

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint skipped: no ESLint configuration detected in root package.json. To enable, add eslint to devDependencies.


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

@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented May 19, 2026

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: cloud-e2e
Optional E2E: docs-validation-e2e, gpu-e2e, onboard-inference-smoke-e2e

Dispatch hint: cloud-e2e

Auto-dispatched E2E: cloud-e2e via nightly-e2e.yaml at 1f509fbdae4354f4b2fb663b4f8b36265087bf93nightly run

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • cloud-e2e (high): Runs the core real user journey install → onboard → sandbox creation → live inference through inference.local. This PR changes onboarding provider-selection code imported by the main onboard path, so a full cloud onboarding smoke is the best existing merge-blocking E2E guard against breaking default onboarding while refactoring the vLLM menu.

Optional E2E

  • docs-validation-e2e (low): Useful because multiple quickstart, inference, and security docs changed. This validates documentation/link consistency after the provider matrix and vLLM guidance updates, but it is not merge-blocking for the runtime menu change.
  • gpu-e2e (high): Adjacent confidence for local inference onboarding on a GPU host. It exercises the local-inference onboarding path on the GPU runner, but it targets Ollama rather than vLLM, so it should be optional rather than required for this PR.
  • onboard-inference-smoke-e2e (low): Covers the broader onboard inference-route validation contract. The PR does not modify setupInference directly, but it does alter provider selection feeding inference setup, so this is useful adjacent coverage if extra confidence is desired.

New E2E recommendations

  • local-inference-vllm (high): There is no existing E2E that starts or mocks a vLLM-compatible server on localhost:8000 and verifies that onboard offers/selects the already-running Local vLLM path without NEMOCLAW_EXPERIMENTAL.
    • Suggested test: local-vllm-running-onboard-e2e
  • managed-vllm-install-start (high): There is no existing E2E for NEMOCLAW_PROVIDER=install-vllm that verifies the explicit opt-in path, no-profile diagnostic, supported GPU profile detection, and managed install/start handoff.
    • Suggested test: managed-vllm-install-start-e2e

Dispatch hint

  • Workflow: .github/workflows/nightly-e2e.yaml
  • jobs input: cloud-e2e

…naged

Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
@laitingsheng laitingsheng marked this pull request as ready for review May 19, 2026 07:50

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
ci/platform-matrix.json (1)

1-1: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Missing SPDX license header.

The coding guidelines require every source file (including JSON) to include an SPDX license header. This file does not have one.

📄 Add SPDX header

Add the following at the top of the file:

+// SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+// SPDX-License-Identifier: Apache-2.0
 {
   "$comment": "Single source of truth for tested platforms and providers. Scripts read this to generate README and docs tables. QA/CI update this file; docs are derived.",

As per coding guidelines, "Every source file must include an SPDX license header for copyright and Apache-2.0 license."

🤖 Prompt for 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.

In `@ci/platform-matrix.json` at line 1, This JSON file is missing the required
SPDX license header; add an SPDX short-form header for Apache-2.0 at the very
top of the file before the opening "{" so every source file has the copyright
and license declaration, ensuring the header appears as the first line of the
file.
🧹 Nitpick comments (6)
test/onboard-selection.test.ts (1)

505-505: ⚡ Quick win

Prefix unused catch binding with underscore.

The error variable e is bound but never used in the catch block. As per coding guidelines, unused variables should be prefixed with underscore. Either use catch (_e) or omit the binding entirely with catch { }.

♻️ Proposed fix
-  } catch (e) {
+  } catch {
     // Downstream paths (model probe, gateway, etc.) are not mocked here; we
     // only care about the menu-build log emitted before any failure.
   }

As per coding guidelines: Unused variables should be prefixed with underscore (_) following Biome conventions.

🤖 Prompt for 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.

In `@test/onboard-selection.test.ts` at line 505, In the catch block in
test/onboard-selection.test.ts where the code currently uses "catch (e)" (near
the end of the test), rename the unused error binding to "_e" or remove the
binding entirely (use "catch { }") to comply with Biome conventions for unused
variables; update the catch clause around the failing try/catch in that test so
the unused exception variable is either prefixed with an underscore or omitted.
docs/get-started/quickstart.md (1)

258-260: ⚡ Quick win

Multiple sentences on the same line.

The documentation style guide requires one sentence per line to make diffs readable. Lines 258, 259, and 260 each contain multiple sentences.

📝 Split into one sentence per line
-- **Local NVIDIA NIM** appears when `NEMOCLAW_EXPERIMENTAL=1` is set and the host has a NIM-capable GPU. NemoClaw pulls and manages a NIM container.
-- **Local vLLM (already running)** appears whenever NemoClaw detects a vLLM server on `localhost:8000`. No flag is required for the menu entry. NemoClaw auto-detects the loaded model.
-- **Local vLLM (managed install/start)** requires `NEMOCLAW_EXPERIMENTAL=1` or `NEMOCLAW_PROVIDER=install-vllm`. NemoClaw pulls and starts a vLLM container on supported DGX Spark, DGX Station, and Linux NVIDIA GPU hosts.
+- **Local NVIDIA NIM** appears when `NEMOCLAW_EXPERIMENTAL=1` is set and the host has a NIM-capable GPU.
+  NemoClaw pulls and manages a NIM container.
+- **Local vLLM (already running)** appears whenever NemoClaw detects a vLLM server on `localhost:8000`.
+  No flag is required for the menu entry.
+  NemoClaw auto-detects the loaded model.
+- **Local vLLM (managed install/start)** requires `NEMOCLAW_EXPERIMENTAL=1` or `NEMOCLAW_PROVIDER=install-vllm`.
+  NemoClaw pulls and starts a vLLM container on supported DGX Spark, DGX Station, and Linux NVIDIA GPU hosts.

As per coding guidelines, "One sentence per line in source (makes diffs readable). Flag paragraphs where multiple sentences appear on the same line."

🤖 Prompt for 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.

In `@docs/get-started/quickstart.md` around lines 258 - 260, The three bullet
entries for "**Local NVIDIA NIM**", "**Local vLLM (already running)**", and
"**Local vLLM (managed install/start)**" contain multiple sentences on the same
line; edit the quickstart.md bullets so each sentence is on its own line (e.g.,
break the NIM bullet into one line for the condition and a second line for the
behavior, and do the same for both vLLM bullets), keeping the exact wording but
ensuring one sentence per source line to satisfy the "one sentence per line" doc
style.
docs/security/best-practices.md (1)

501-501: ⚡ Quick win

Multiple sentences on the same line.

The documentation style guide requires one sentence per line to make diffs readable. Line 501 contains two sentences.

📝 Split into one sentence per line
-The `NEMOCLAW_EXPERIMENTAL=1` environment variable gates local NVIDIA NIM and the managed vLLM install/start path. An already-running vLLM server on `localhost:8000` is offered in the menu without a flag, because selecting it is an explicit user action.
+The `NEMOCLAW_EXPERIMENTAL=1` environment variable gates local NVIDIA NIM and the managed vLLM install/start path.
+An already-running vLLM server on `localhost:8000` is offered in the menu without a flag, because selecting it is an explicit user action.

As per coding guidelines, "One sentence per line in source (makes diffs readable). Flag paragraphs where multiple sentences appear on the same line."

🤖 Prompt for 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.

In `@docs/security/best-practices.md` at line 501, The sentence pair describing
NEMOCLAW_EXPERIMENTAL and the vLLM server on localhost:8000 must be split so
each sentence is on its own line; edit the paragraph containing "The
`NEMOCLAW_EXPERIMENTAL=1` environment variable..." and place the first sentence
on one line and the second sentence ("An already-running vLLM server on
`localhost:8000` is offered...") on the following line so the file follows the
one-sentence-per-line docstyle.
docs/security/best-practices.mdx (2)

464-464: ⚡ Quick win

Multiple sentences on the same line.

The documentation style guide requires one sentence per line to make diffs readable. Line 464 contains two sentences.

📝 Split into one sentence per line
-The `NEMOCLAW_EXPERIMENTAL=1` environment variable gates local NVIDIA NIM and the managed vLLM install/start path. An already-running vLLM server on `localhost:8000` is offered in the menu without a flag, because selecting it is an explicit user action.
+The `NEMOCLAW_EXPERIMENTAL=1` environment variable gates local NVIDIA NIM and the managed vLLM install/start path.
+An already-running vLLM server on `localhost:8000` is offered in the menu without a flag, because selecting it is an explicit user action.

As per coding guidelines, "One sentence per line in source (makes diffs readable). Flag paragraphs where multiple sentences appear on the same line."

🤖 Prompt for 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.

In `@docs/security/best-practices.mdx` at line 464, The line containing the text
about NEMOCLAW_EXPERIMENTAL and the vLLM server (mentions
NEMOCLAW_EXPERIMENTAL=1 and localhost:8000) has multiple sentences on one line;
split that line into separate lines so each sentence occupies its own line
(e.g., one line for "The `NEMOCLAW_EXPERIMENTAL=1` environment variable gates
local NVIDIA NIM and the managed vLLM install/start path." and a separate line
for "An already-running vLLM server on `localhost:8000` is offered in the menu
without a flag, because selecting it is an explicit user action."). Ensure the
surrounding paragraph formatting remains unchanged and follow the
one-sentence-per-line rule used across the docs.

4-4: ⚡ Quick win

Colon in title.

The documentation style guide prohibits colons in section titles. The title uses a colon to separate the main heading from the subtitle.

📝 Remove colon from title

Consider one of these alternatives:

-title: "NemoClaw Security Best Practices: Controls, Risks, and Posture Profiles"
+title: "NemoClaw Security Best Practices for Controls, Risks, and Posture Profiles"

Or:

-title: "NemoClaw Security Best Practices: Controls, Risks, and Posture Profiles"
+title: "NemoClaw Security Best Practices – Controls, Risks, and Posture Profiles"

As per coding guidelines, "No colons in titles. Flag 'Inference: Cloud and Local' — should be 'Cloud and Local Inference.'"

🤖 Prompt for 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.

In `@docs/security/best-practices.mdx` at line 4, Change the page title string
"NemoClaw Security Best Practices: Controls, Risks, and Posture Profiles" to
remove the colon per the style guide—e.g., "NemoClaw Security Best Practices —
Controls, Risks and Posture Profiles" or split into a main title and subtitle
such as "NemoClaw Security Best Practices" with a subtitle "Controls, Risks and
Posture Profiles"; update the title value in the document header (the title
string shown in the diff) and ensure any references or TOC entries use the new
punctuation-free form (also fix similar instances like "Inference: Cloud and
Local" to "Cloud and Local Inference").
docs/get-started/quickstart.mdx (1)

236-238: ⚡ Quick win

Multiple sentences on the same line.

The documentation style guide requires one sentence per line to make diffs readable. Lines 236, 237, and 238 each contain multiple sentences.

📝 Split into one sentence per line
-- **Local NVIDIA NIM** appears when `NEMOCLAW_EXPERIMENTAL=1` is set and the host has a NIM-capable GPU. NemoClaw pulls and manages a NIM container.
-- **Local vLLM (already running)** appears whenever NemoClaw detects a vLLM server on `localhost:8000`. No flag is required for the menu entry. NemoClaw auto-detects the loaded model.
-- **Local vLLM (managed install/start)** requires `NEMOCLAW_EXPERIMENTAL=1` or `NEMOCLAW_PROVIDER=install-vllm`. NemoClaw pulls and starts a vLLM container on supported DGX Spark, DGX Station, and Linux NVIDIA GPU hosts.
+- **Local NVIDIA NIM** appears when `NEMOCLAW_EXPERIMENTAL=1` is set and the host has a NIM-capable GPU.
+  NemoClaw pulls and manages a NIM container.
+- **Local vLLM (already running)** appears whenever NemoClaw detects a vLLM server on `localhost:8000`.
+  No flag is required for the menu entry.
+  NemoClaw auto-detects the loaded model.
+- **Local vLLM (managed install/start)** requires `NEMOCLAW_EXPERIMENTAL=1` or `NEMOCLAW_PROVIDER=install-vllm`.
+  NemoClaw pulls and starts a vLLM container on supported DGX Spark, DGX Station, and Linux NVIDIA GPU hosts.

As per coding guidelines, "One sentence per line in source (makes diffs readable). Flag paragraphs where multiple sentences appear on the same line."

🤖 Prompt for 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.

In `@docs/get-started/quickstart.mdx` around lines 236 - 238, The three bullet
lines for "**Local NVIDIA NIM**", "**Local vLLM (already running)**", and
"**Local vLLM (managed install/start)**" contain multiple sentences on the same
line; split each sentence onto its own line in docs/get-started/quickstart.mdx
so each sentence becomes a separate line (e.g., break the bullet sentences after
the period), preserving the exact wording and bullet structure and ensuring no
other text is changed.
🤖 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.

Outside diff comments:
In `@ci/platform-matrix.json`:
- Line 1: This JSON file is missing the required SPDX license header; add an
SPDX short-form header for Apache-2.0 at the very top of the file before the
opening "{" so every source file has the copyright and license declaration,
ensuring the header appears as the first line of the file.

---

Nitpick comments:
In `@docs/get-started/quickstart.md`:
- Around line 258-260: The three bullet entries for "**Local NVIDIA NIM**",
"**Local vLLM (already running)**", and "**Local vLLM (managed install/start)**"
contain multiple sentences on the same line; edit the quickstart.md bullets so
each sentence is on its own line (e.g., break the NIM bullet into one line for
the condition and a second line for the behavior, and do the same for both vLLM
bullets), keeping the exact wording but ensuring one sentence per source line to
satisfy the "one sentence per line" doc style.

In `@docs/get-started/quickstart.mdx`:
- Around line 236-238: The three bullet lines for "**Local NVIDIA NIM**",
"**Local vLLM (already running)**", and "**Local vLLM (managed install/start)**"
contain multiple sentences on the same line; split each sentence onto its own
line in docs/get-started/quickstart.mdx so each sentence becomes a separate line
(e.g., break the bullet sentences after the period), preserving the exact
wording and bullet structure and ensuring no other text is changed.

In `@docs/security/best-practices.md`:
- Line 501: The sentence pair describing NEMOCLAW_EXPERIMENTAL and the vLLM
server on localhost:8000 must be split so each sentence is on its own line; edit
the paragraph containing "The `NEMOCLAW_EXPERIMENTAL=1` environment variable..."
and place the first sentence on one line and the second sentence ("An
already-running vLLM server on `localhost:8000` is offered...") on the following
line so the file follows the one-sentence-per-line docstyle.

In `@docs/security/best-practices.mdx`:
- Line 464: The line containing the text about NEMOCLAW_EXPERIMENTAL and the
vLLM server (mentions NEMOCLAW_EXPERIMENTAL=1 and localhost:8000) has multiple
sentences on one line; split that line into separate lines so each sentence
occupies its own line (e.g., one line for "The `NEMOCLAW_EXPERIMENTAL=1`
environment variable gates local NVIDIA NIM and the managed vLLM install/start
path." and a separate line for "An already-running vLLM server on
`localhost:8000` is offered in the menu without a flag, because selecting it is
an explicit user action."). Ensure the surrounding paragraph formatting remains
unchanged and follow the one-sentence-per-line rule used across the docs.
- Line 4: Change the page title string "NemoClaw Security Best Practices:
Controls, Risks, and Posture Profiles" to remove the colon per the style
guide—e.g., "NemoClaw Security Best Practices — Controls, Risks and Posture
Profiles" or split into a main title and subtitle such as "NemoClaw Security
Best Practices" with a subtitle "Controls, Risks and Posture Profiles"; update
the title value in the document header (the title string shown in the diff) and
ensure any references or TOC entries use the new punctuation-free form (also fix
similar instances like "Inference: Cloud and Local" to "Cloud and Local
Inference").

In `@test/onboard-selection.test.ts`:
- Line 505: In the catch block in test/onboard-selection.test.ts where the code
currently uses "catch (e)" (near the end of the test), rename the unused error
binding to "_e" or remove the binding entirely (use "catch { }") to comply with
Biome conventions for unused variables; update the catch clause around the
failing try/catch in that test so the unused exception variable is either
prefixed with an underscore or omitted.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 6ef1cc3a-e2ff-4354-a4fa-8abd972b24dc

📥 Commits

Reviewing files that changed from the base of the PR and between 907e410 and 92b01bd.

📒 Files selected for processing (11)
  • ci/platform-matrix.json
  • docs/get-started/quickstart.md
  • docs/get-started/quickstart.mdx
  • docs/inference/inference-options.md
  • docs/inference/inference-options.mdx
  • docs/security/best-practices.md
  • docs/security/best-practices.mdx
  • src/lib/onboard.ts
  • src/lib/onboard/vllm-menu.test.ts
  • src/lib/onboard/vllm-menu.ts
  • test/onboard-selection.test.ts

@laitingsheng laitingsheng added the v0.0.46 Release target label May 19, 2026
@jyaunches jyaunches self-requested a review May 19, 2026 16:34
@github-actions

Copy link
Copy Markdown
Contributor

Selective E2E Results — ✅ All requested jobs passed

Run: 26119326630
Target ref: 1f509fbdae4354f4b2fb663b4f8b36265087bf93
Workflow ref: main
Requested jobs: cloud-e2e
Summary: 1 passed, 0 failed, 0 skipped

Job Result
cloud-e2e ✅ success

@jyaunches jyaunches merged commit a3aceab into main May 19, 2026
30 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Selective E2E Results — ⚠️ No requested jobs ran

Run: 26120854035
Target ref: 846034adf3e7ae2a08d77c4f9b13d9364a5d513f
Workflow ref: main
Requested jobs: cloud-e2e,cloud-onboard-e2e,gpu-e2e
Summary: 0 passed, 0 failed, 1 skipped

Job Result
cloud-e2e ⚠️ cancelled
cloud-onboard-e2e ⚠️ cancelled
gpu-e2e ⏭️ skipped

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

Labels

bug-fix PR fixes a bug or regression v0.0.46 Release target

Projects

None yet

3 participants