Skip to content

fix(onboard): record managed vLLM serving-profile provenance - #12764

Merged
rsliter merged 3 commits into
mainfrom
codex/adopt-pr-12346
Oct 8, 2026
Merged

rsliter merged 3 commits into
mainfrom
codex/adopt-pr-12346

Conversation

@rsliter

@rsliter rsliter commented Oct 7, 2026 •

Copy link
Copy Markdown
Collaborator

Outcome

Fresh onboarding with an explicit managed vLLM profile preserves its catalog provenance in the session, sandbox registry, and status report. Reusing an existing vLLM endpoint does not claim that NemoClaw installed its recipe or image.

Original author: @harjothkhara (Harjoth Khara). The original signed commit 1d9f58d3713ac2ea52e958ad59c46ea0e18b33dd is preserved unchanged. Rebecca Sliter supplied the managed-install guard and maintainer follow-up.

Reason

Provider selection previously erased valid profile provenance before sandbox registration. This same-repository replacement also enables the required reviewed OpenShell SDK CI path, which rejects fork PRs.

Related issues

Fixes #12289. Replaces #12346 with the contributor's history intact.

Changes

  • Carry catalog-derived provenance in the requested serving-profile model.
  • Return that provenance only after this invocation successfully installs and selects managed vLLM. The named gate keeps this rule out of the selection function's nested control flow.
  • Cover fresh installation through session, registry, and status, and reject new provenance for an existing endpoint. Retain resume and session-only denial coverage.
  • Clarify that reused vLLM endpoints do not record the requested profile provenance; preserve the status behavior for managed vLLM and llama.cpp installations.

Verification

Candidate: 032b321a4ee88141198fe41eedb767d4c5d49907.

  • npx vitest run --project cli src/lib/onboard/setup-nim-flow-serving-profile.test.ts src/lib/onboard/machine/handlers/provider-inference-managed-llama-resume.test.ts src/lib/inference/serving/requested-profile-model.test.ts src/lib/onboard/setup-nim-flow-vllm-resume.test.ts --no-file-parallelism: 4 files and 26 tests passed. The existing-endpoint regression failed before the guard.
  • CLI and plugin builds, normal commit hooks, publication validation, and the CLI TypeScript check passed. Canonical changed-path selection skipped plugin and JavaScript typechecks. The checked-in compiler runner uses an 8 GB Node heap.
  • npm run docs: passed with zero errors; OpenClaw, Hermes, and Deep Agents generated command references inspected. Fern reported the existing optional authenticated redirect check and light-theme contrast warnings.
  • All PR commits are GitHub Verified. The inspected diff contains no secrets, API keys, or credentials.

Review notes

The five changed code and test files are sensitive inference or onboarding paths. The additional command-reference clarification received independent local documentation review. The maintainer review on the original PR covers NVIDIA/NemoClaw commit 1b4c9c2c2c09f70488884370236bd3f826e4300f, records the provenance repair and regression evidence, and thanks the original contributor. The current candidate awaits its required CI, GPU qualification, and automated reviews.


Signed-off-by: harjoth harjoth.khara@gmail.com

Signed-off-by: Rebecca Sliter 571084+rsliter@users.noreply.github.com

Summary by CodeRabbit

  • Improvements
    • Managed vLLM setup retains the selected serving profile’s provenance through setup and sandbox status reporting. Profile details are recorded only when setup installs a managed server; reusing an already-running vLLM server does not assign managed-profile details.
    • Sandbox status displays serving-profile details for sandboxes created with managed vLLM or llama.cpp. JSON status includes the complete secret-free profile provenance record.

harjothkhara and others added 2 commits September 26, 2026 17:27
Preserve catalog-derived serving-profile provenance after a managed vLLM
profile is selected. Fresh onboard now carries the selected profile through
session, registry, and status.

Fixes #12289

Agent-Id: agent-c5819b3a-f2af-4bee-a591-193fc379dcf4
Signed-off-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com>
@copy-pr-bot

copy-pr-bot Bot commented Oct 7, 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.

@coderabbitai

coderabbitai Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: NVIDIA/NemoClaw/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Enterprise
  • Run ID: 61956e00-28a7-41da-93cb-37aa61573382
📥 Commits

Reviewing files that changed from the base of the PR and between 1b4c9c2 and 032b321.

📒 Files selected for processing (1)
  • docs/reference/commands.mdx

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 8 remain after this review.


📝 Walkthrough

Walkthrough

The requested serving-profile model now includes catalog provenance. Managed vLLM onboarding records that provenance in the session, registry entry, and sandbox status report. Reused running vLLM servers do not receive managed-profile provenance.

Changes

Serving-profile provenance

Layer / File(s) Summary
Resolve profile provenance
src/lib/inference/serving/requested-profile-model.ts, src/lib/inference/serving/requested-profile-model.test.ts
The requested profile model includes provenance derived from the catalog and preset ID. The test checks the returned provenance.
Record provenance during managed onboarding
src/lib/onboard/setup-nim-flow.ts, src/lib/onboard/setup-nim-flow-serving-profile.test.ts, src/lib/onboard/machine/handlers/provider-inference-managed-llama-resume.test.ts, docs/reference/commands.mdx
Setup records requested-profile provenance only when vLLM selection creates a managed install. Tests check the session, registry entry, and status report, and check that a reused server has no provenance. The documentation describes the managed-install status details and running-server behavior.

Priority: ➖ Normal

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

Change: Bug fix · Severity of issue fixed: Medium

Sequence Diagram(s)

sequenceDiagram
  participant Setup as createSetupNim
  participant Model as servingProfileModel
  participant Session as Onboard session
  participant Registry as Sandbox registry
  participant Status as Sandbox status report
  Setup->>Model: Resolve requested profile and provenance
  Setup->>Session: Record provenance for managed vLLM install
  Session->>Registry: Supply provenance for registry entry
  Registry->>Status: Provide provenance for status report
Loading

Suggested reviewers: ericksoa, laitingsheng

Merge Risk: ⚪ Minimal · up to 032b3

No confirmed implementation issue blocks merging; the unresolved human-status documentation detail should be checked separately.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 5 files. (1 skipped: 1… 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 satisfy #12289. servingProfileModel now carries catalog provenance. createSetupNim records it only after a successful managed vLLM installation. The provider-to-session handoff persist…
Out of Scope Changes check ✅ Passed The changed model, onboarding flow, persistence tests, endpoint regression test, and command documentation support #12289. The llama.cpp coverage verifies that the shared provenance and status behavio…
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: recording serving-profile provenance for managed vLLM onboarding.
Full details: Docstring Coverage

Explanation

Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 5 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@github-code-quality

github-code-quality Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall line coverage in commit 032b321 in the codex/adopt-pr-12346 branch is 97%. The line coverage in commit 63002cd in the main branch is 96%.

Show a line coverage summary of the most impacted files.
File main 63002cd codex/adopt-pr-12346 032b321 +/-
nemoclaw/src/onboard/config.ts 98% 96% -2%
nemoclaw/src/index.ts 94% 93% -1%
nemoclaw/src/bl...t-management.ts 100% 100% 0%
nemoclaw/src/co.../config-show.ts 100% 100% 0%
nemoclaw/src/commands/slash.ts 100% 100% 0%
nemoclaw/src/on...native-route.ts 0% 100% +100%

TypeScript / code-coverage/cli

The overall line coverage in commit 032b321 in the codex/adopt-pr-12346 branch is 85%. The line coverage in commit 63002cd in the main branch is 84%.

Show a line coverage summary of the most impacted files.
File main 63002cd codex/adopt-pr-12346 032b321 +/-
src/lib/actions.../status-text.ts 84% 46% -38%
src/lib/state/sandbox.ts 92% 83% -9%
src/lib/onboard...al-inference.ts 84% 90% +6%
src/lib/policy/index.ts 71% 80% +9%
src/lib/state/p...l-retirement.ts 79% 92% +13%
src/lib/onboard.../application.ts 55% 72% +17%
src/lib/inferen...nvidia/index.ts 0% 85% +85%
src/lib/adapter...gnostics-cli.ts 0% 87% +87%
src/lib/onboard...ternal-image.ts 0% 91% +91%
src/lib/securit...ig-structure.ts 0% 98% +98%

Updated October 07, 2026 22:18 UTC

@rsliter
rsliter marked this pull request as ready for review October 7, 2026 17:15
@rsliter

rsliter commented Oct 7, 2026

Copy link
Copy Markdown
Collaborator Author

/ok to test 1b4c9c2

Signed-off-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com>
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

@rsliter

rsliter commented Oct 7, 2026

Copy link
Copy Markdown
Collaborator Author

/ok to test 032b321

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor finished for commit 032b321. Include the Advisor findings in the complete PR feedback collection. Verify and group valid findings before repair.

Request review only when Require no Advisor blockers is green.

All previous runs

@rsliter
rsliter requested a review from deepujain October 7, 2026 22:42

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

LGTM.

Catalog provenance reaches durable sandbox state only after this invocation installs and validates managed vLLM. The earlier Advisor warning about reused-server status is fixed in the documentation; no inline comments follow.

Advisor feedback: 1 of 1 addressed.
Recommended E2E: inference-routing, network-policy, onboard-repair, and onboard-resume have not run on this commit.
Tested: the session-to-registry regression reproduces on the base and passes here; endpoint reuse, vLLM resume, direct caller and catalog tests, CLI/plugin builds, and docs pass. Three local status/resume cases, PR validation, and CLI typechecking were environment-blocked. Same-commit CI and the trusted checker pass.

@rsliter
rsliter merged commit abc9aa1 into main Oct 8, 2026
127 of 131 checks passed
@rsliter
rsliter deleted the codex/adopt-pr-12346 branch October 8, 2026 12:21
rsliter added a commit that referenced this pull request Oct 8, 2026
## Outcome

CLI shards and the Advisor runtime now install pinned Pi search tools
from one Ubuntu-only APT transaction. CLI metadata refresh has up to
three 120-second attempts, repeated only after an outer timeout; CLI
install has a 180-second limit. Advisor retains a single five-minute
limit per command. Failures report the operation, attempt, exit status,
and at most 8 KiB from the last 60 diagnostic lines. The CLI package and
executable version checks remain in place.

## Reason

Five CLI shards in the October 7 runs for #12763 and #12764 timed out in
the quiet pinned-tool step before tests. Those logs do not show whether
update or install stalled. Main scopes update to `ubuntu.sources` but
leaves install able to use ambient package lists. The closed, unmerged
#11319 helper addressed source and list isolation for the September
repository failure; it did not bound or identify a stalled APT command.

### Related issues

Fixes #11320.

## Changes

- Place the installer at
`.github/actions/ci-install-pinned-ubuntu-packages.sh` as a shared CI
helper. The CLI shard and Advisor runtime call it; the trusted CLI shard
sparse checkout includes it.
- Use only `/etc/apt/sources.list.d/ubuntu.sources` and a fresh
package-list directory for both update and install. Reject a missing
source and unpinned package specifications before APT.
- Preserve #12713's CLI transport retries and 120-second update and
180-second install limits. Retry the idempotent metadata update only
after an outer timeout, up to three attempts; fail closed on other
statuses. Restore the runner temporary directory mode on exit.
- Run `sudo timeout` so it directly supervises `apt-get`, including
forced termination. Execute both workflow callers with fake APT commands
to cover source isolation, update and install failures, both timeout
paths, and fail-closed input checks.
- Cover both workflow callers on the successful path, restore the runner
temporary-directory mode in the fixture, and label exit status 137 as a
possible force-killed timeout.

## Verification

- `npx vitest run
test/automation/pull-requests/pr-workflow-contract.test.ts
test/automation/pull-requests/growth-guardrails.test.ts
--coverage.enabled false` passed: 74 tests on the latest repair,
including recovered, exhausted, and non-timeout CLI update paths and
forced-kill supervision.
- `npm run checks:repository` passed: 18 checks. Commit and pre-push
hooks passed on the latest repair, including ShellCheck, source-shape,
growth, secret scan, commitlint, publication validation, and CLI
TypeScript checking.
- The repository project-membership check passed: 2706 candidates across
7 projects.
- `bash -n
.github/actions/ci-cli-coverage-shard/install-pinned-ubuntu-packages.sh`
and Oxfmt checks passed.
- A local sparse checkout using the CLI shard action and shared-helper
paths included the executable helper.
- GitHub-hosted CLI shard execution remains required to prove affected
shards complete their tests. PR CI uses the base branch's trusted action
until this fix merges.
- The diff contains no secrets, API keys, or credentials.

## Review notes

This changes sensitive `.github/**` paths. The local candidate received
self-review and the focused checks above; no independent pre-publication
review exists. The September #11319 PR is closed and unmerged. This PR
is the separate October repair and does not change #12763 or #12764.

---

Signed-off-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Chores**
* Standardized pinned system package installation across automated
checks, with bounded timeouts and retries for transient update failures.
* Updated pull request checks to include the shared package installer
when validating the revised CI action.

* **Tests**
* Expanded automated coverage for package installation failures,
timeouts, and input validation, helping detect build environment issues
earlier.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com>
Co-authored-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com>
@wscurran wscurran added area: providers Inference provider integrations and provider behavior bug-fix PR fixes a bug or regression provider: vllm vLLM local or hosted provider behavior labels Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: providers Inference provider integrations and provider behavior bug-fix PR fixes a bug or regression provider: vllm vLLM local or hosted provider behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[DGX Spark][Sandbox] serving profile provenance is never recorded, so status cannot report it before or after rebuild

4 participants