fix(cli): hide NIM status line for cloud-only providers#2622
Conversation
## Summary `nemoclaw <name> status` and the post-onboard dashboard printed "NIM: not running" even when the sandbox was provisioned against a Cloud API provider (e.g. nvidia-prod), where no local NIM container is ever expected. The line implied a fault when none existed and confused users on otherwise healthy cloud-API setups. The output now suppresses the NIM line when the sandbox has no nimContainer registered and no orphan NIM container is running. A still-running container with no registered binding is surfaced intentionally so an unexpectedly alive NIM is not silently hidden. ## Related issues Closes #2605 ## Changes - src/lib/nim.ts: add `shouldShowNimLine(nimContainer, nimRunning)` predicate alongside the other NIM helpers; returns true iff the sandbox is bound to a NIM container or one is unexpectedly alive. - src/nemoclaw.ts: gate the status-block NIM print on the new helper. - src/lib/onboard.ts: gate the post-onboard dashboard NIM print on the same helper for consistent UX across both surfaces. - src/lib/nim.test.ts: truth-table coverage for the helper — cloud-only (null/undefined/empty), bound, and orphan cases. Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughA new exported helper function Changes
Estimated Code Review Effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
## Summary Refreshes the 0.0.29 documentation for user-facing changes merged in the past 24 hours. Version metadata stays on `0.0.29`. ## Changes - `docs/get-started/quickstart.md`, `docs/reference/commands.md`, and `docs/reference/troubleshooting.md`: Document dashboard port auto-allocation, `--control-ui-port`, and `nemoclaw list` dashboard URL output from [#2411](#2411). - `docs/inference/inference-options.md` and `docs/inference/switch-inference-providers.md`: Document local Ollama and local vLLM credential isolation from `OPENAI_API_KEY` from [#2580](#2580). - `docs/inference/inference-options.md`: Document Local NVIDIA NIM validation behavior from [#2505](#2505). - `docs/reference/commands.md`: Document the cloud-only NIM status display behavior from [#2622](#2622). - `docs/deployment/deploy-to-remote-gpu.md`: Clarify runtime propagation for `NEMOCLAW_PROXY_HOST` and `NEMOCLAW_PROXY_PORT` from [#2581](#2581). - `docs/workspace/backup-restore.md`: Document snapshot restore symlink handling for sandbox data paths from [#2488](#2488). - `docs/reference/commands.md`: Document `skill install --help` and OpenClaw plugin-shaped directory guidance from [#2585](#2585). ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [ ] Code change with doc updates - [x] Doc only (prose changes, no code sample modifications) - [ ] Doc only (includes code sample changes) ## Verification - [x] `npx prek run --all-files` passes - [ ] `npm test` passes - [ ] Tests added or updated for new or changed behavior - [x] No secrets, API keys, or credentials committed - [x] Docs updated for user-facing behavior changes - [x] `make docs` builds without warnings (doc changes only) - [x] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [ ] New doc pages include SPDX header and frontmatter (new pages only) ## AI Disclosure - [x] AI-assisted — tool: Codex --- Signed-off-by: Miyoung Choi <miyoungc@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added `--control-ui-port` flag for explicit dashboard port control * Implemented automatic port selection (18789–18799) when the default port is occupied * Clarified that local inference routes (Ollama, local vLLM) don't require `OPENAI_API_KEY` * Improved dashboard URL display in list and status commands * Enhanced symlink handling in workspace backup restoration * Updated multi-sandbox quickstart and troubleshooting guidance <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary `nemoclaw <name> status` and the post-onboard dashboard printed `NIM: not running` even when the sandbox was provisioned against a Cloud API provider (e.g. `nvidia-prod`), where no local NIM container is ever expected. The line implied a fault when none existed and confused users on otherwise healthy cloud-API setups. The output now suppresses the NIM line when the sandbox has no `nimContainer` registered and no orphan NIM container is running. A still-running container with no registered binding is surfaced intentionally so an unexpectedly alive NIM is not silently hidden. ## Related Issue Closes NVIDIA#2605 ## Changes - `src/lib/nim.ts`: add `shouldShowNimLine(nimContainer, nimRunning)` predicate alongside the other NIM helpers; returns true iff the sandbox is bound to a NIM container or one is unexpectedly alive. - `src/nemoclaw.ts`: gate the status-block NIM print on the new helper. The `nimStatus` lookup itself is preserved so orphan detection still fires. - `src/lib/onboard.ts`: gate the post-onboard dashboard NIM print on the same helper, so the same UX problem doesn't reappear right after `nemoclaw onboard`. - `src/lib/nim.test.ts`: truth-table coverage for the helper — cloud-only (`null` / `undefined` / `""`), bound, and orphan-running cases. Verification before/after on a Cloud API sandbox: - Before: `Provider: nvidia-prod ... NIM: not running` (misleading) - After: NIM line absent; OpenClaw / Sandbox status unchanged ## Type of Change - [x] 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) ## Verification - [x] `npx prek run --all-files` passes - [x] `npm test` passes (3 new tests in `nim.test.ts`) - [x] Tests added or updated for new or changed behavior - [x] 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) ## AI Disclosure - [x] AI-assisted — tools: Claude Code, Codex --- Signed-off-by: Tinson Lai <tinsonl@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * NIM status information now displays conditionally in dashboard output. The status line appears only when a NIM container is present or when an unexpected running container is detected, reducing unnecessary clutter. * **Tests** * Added comprehensive test coverage for the new conditional display behavior across multiple deployment scenarios. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Signed-off-by: Tinson Lai <tinsonl@nvidia.com>
## Summary Refreshes the 0.0.29 documentation for user-facing changes merged in the past 24 hours. Version metadata stays on `0.0.29`. ## Changes - `docs/get-started/quickstart.md`, `docs/reference/commands.md`, and `docs/reference/troubleshooting.md`: Document dashboard port auto-allocation, `--control-ui-port`, and `nemoclaw list` dashboard URL output from [NVIDIA#2411](NVIDIA#2411). - `docs/inference/inference-options.md` and `docs/inference/switch-inference-providers.md`: Document local Ollama and local vLLM credential isolation from `OPENAI_API_KEY` from [NVIDIA#2580](NVIDIA#2580). - `docs/inference/inference-options.md`: Document Local NVIDIA NIM validation behavior from [NVIDIA#2505](NVIDIA#2505). - `docs/reference/commands.md`: Document the cloud-only NIM status display behavior from [NVIDIA#2622](NVIDIA#2622). - `docs/deployment/deploy-to-remote-gpu.md`: Clarify runtime propagation for `NEMOCLAW_PROXY_HOST` and `NEMOCLAW_PROXY_PORT` from [NVIDIA#2581](NVIDIA#2581). - `docs/workspace/backup-restore.md`: Document snapshot restore symlink handling for sandbox data paths from [NVIDIA#2488](NVIDIA#2488). - `docs/reference/commands.md`: Document `skill install --help` and OpenClaw plugin-shaped directory guidance from [NVIDIA#2585](NVIDIA#2585). ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [ ] Code change with doc updates - [x] Doc only (prose changes, no code sample modifications) - [ ] Doc only (includes code sample changes) ## Verification - [x] `npx prek run --all-files` passes - [ ] `npm test` passes - [ ] Tests added or updated for new or changed behavior - [x] No secrets, API keys, or credentials committed - [x] Docs updated for user-facing behavior changes - [x] `make docs` builds without warnings (doc changes only) - [x] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [ ] New doc pages include SPDX header and frontmatter (new pages only) ## AI Disclosure - [x] AI-assisted — tool: Codex --- Signed-off-by: Miyoung Choi <miyoungc@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added `--control-ui-port` flag for explicit dashboard port control * Implemented automatic port selection (18789–18799) when the default port is occupied * Clarified that local inference routes (Ollama, local vLLM) don't require `OPENAI_API_KEY` * Improved dashboard URL display in list and status commands * Enhanced symlink handling in workspace backup restoration * Updated multi-sandbox quickstart and troubleshooting guidance <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Summary
nemoclaw <name> statusand the post-onboard dashboard printedNIM: not runningeven when the sandbox was provisioned against a Cloud API provider (e.g.nvidia-prod), where no local NIM container is ever expected. The line implied a fault when none existed and confused users on otherwise healthy cloud-API setups.The output now suppresses the NIM line when the sandbox has no
nimContainerregistered and no orphan NIM container is running. A still-running container with no registered binding is surfaced intentionally so an unexpectedly alive NIM is not silently hidden.Related Issue
Closes #2605
Changes
src/lib/nim.ts: addshouldShowNimLine(nimContainer, nimRunning)predicate alongside the other NIM helpers; returns true iff the sandbox is bound to a NIM container or one is unexpectedly alive.src/nemoclaw.ts: gate the status-block NIM print on the new helper. ThenimStatuslookup itself is preserved so orphan detection still fires.src/lib/onboard.ts: gate the post-onboard dashboard NIM print on the same helper, so the same UX problem doesn't reappear right afternemoclaw onboard.src/lib/nim.test.ts: truth-table coverage for the helper — cloud-only (null/undefined/""), bound, and orphan-running cases.Verification before/after on a Cloud API sandbox:
Provider: nvidia-prod ... NIM: not running(misleading)Type of Change
Verification
npx prek run --all-filespassesnpm testpasses (3 new tests innim.test.ts)make docsbuilds without warnings (doc changes only)AI Disclosure
Signed-off-by: Tinson Lai tinsonl@nvidia.com
Summary by CodeRabbit
New Features
Tests