fix(inference): strip thinking for Nemotron-3 models#7485
Conversation
|
Note Reviews pausedIt 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 Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThe request sanitizer now matches the ChangesInference provider marker propagation
Managed Nemotron request sanitization
Regression coverage
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant OpenClaw
participant globalThis.fetch
participant RouteDetection
participant patchJsonBody
participant InferenceEndpoint
OpenClaw->>globalThis.fetch: send chat-completions request
globalThis.fetch->>RouteDetection: inspect host and upstream provider
RouteDetection-->>globalThis.fetch: return managed-route status
globalThis.fetch->>patchJsonBody: pass body and status
patchJsonBody->>InferenceEndpoint: forward rewritten request
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in commit 16f8167 in the TypeScript / code-coverage/cliThe overall coverage in commit 16f8167 in the Show a code coverage summary of the most impacted files.
Updated |
PR Review Advisor — InformationalAdvisor assessment: Informational / high confidence Model lanes
Nemotron output stays in workflow artifacts and does not change the assessment above. E2E guidanceAdvisory only. E2E / PR Gate selects and runs jobs independently. Recommended E2E: 1 optional E2E recommendation
1 warning · 0 suggestionsWarningsWarnings do not block.
|
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
prekshivyas
left a comment
There was a problem hiding this comment.
Requesting changes for one provider-boundary blocker. The implementation otherwise looks focused, and the 7 targeted tests pass, but the tests do not model NemoClaw's real managed routing: every supported upstream uses inference.local. As written, this silently strips thinking for matching Nemotron-3 models on custom and local backends too, outside the accepted NVIDIA Build scope.
After fixing the provider discriminator, please add regression coverage using inference.local with the actual upstream-provider marker and refresh the Documentation Writer Review receipt. Its current evidence incorrectly says local NIM/custom payloads are preserved, and its recorded head predates the reviewed commit.
Security review: secrets, dependencies, authorization, logging, cryptography, and workflow configuration pass; provider/input validation, realistic regression coverage, and overall posture remain blocking until this boundary is corrected.
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
prekshivyas
left a comment
There was a problem hiding this comment.
Re-reviewed exact head c036ef8. The NVIDIA Build rewrite now follows the current runtime provider across supported inference-set switches: OpenClaw carries a non-secret provider marker, the preload consumes and removes it before forwarding, and the image-baked environment remains only the untouched-config fallback. Both switch directions and non-Build preservation are covered. Focused suites pass 41/41, test:changed passes 147/147, and CLI build/typecheck/check:diff pass. Security review: no credential, authorization, dependency, logging, cryptography, or workflow regression found.
There was a problem hiding this comment.
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 `@src/lib/actions/inference-set.ts`:
- Line 910: Update the marker reconciliation in the retry/rebuild path so it
compares both registry state and the marker currently present in the loaded
OpenClaw config being patched, rather than relying only on entry.provider ===
provider. Ensure a same-provider retry restores the correct marker after a prior
config-write failure and converges registry and config to one authoritative
runtime state. Add a regression covering a failed first config write followed by
a retry for the same provider.
🪄 Autofix (Beta)
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: 15a3026d-2b08-40ba-9706-2a5ff4e06b63
📒 Files selected for processing (7)
nemoclaw-blueprint/scripts/nemotron-inference-fix.jssrc/lib/actions/inference-set-compatible-provider.test.tssrc/lib/actions/inference-set-openclaw-gateway-restart.test.tssrc/lib/actions/inference-set-openclaw-run.test.tssrc/lib/actions/inference-set-patch-openclaw.test.tssrc/lib/actions/inference-set.tstest/nemotron-inference-fix.test.ts
🚧 Files skipped from review as they are similar to previous changes (2)
- nemoclaw-blueprint/scripts/nemotron-inference-fix.js
- test/nemotron-inference-fix.test.ts
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Summary Adds the canonical pre-tag `## v0.0.95` release entry to `docs/changelog/2026-07-24.mdx`, before the existing v0.0.94 entry. The entry summarizes approved user-visible changes merged since v0.0.94 and excludes internal-only prerequisites. ## Changes - Adds the v0.0.95 summary and detailed bullets for gateway lifecycle, recovery, state transfer, inference compatibility, sandbox security, Discord policy, and E2E evidence. - Links each user-facing theme to the most specific published documentation. - Records the release entry in the shared native changelog used by the OpenClaw, Hermes, and Deep Agents guides. Source summary: - [#7246](#7246), [#7228](#7228), [#7267](#7267), [#7489](#7489), [#7509](#7509), [#7351](#7351), and [#7290](#7290) -> `docs/changelog/2026-07-24.mdx`: Gateway authority, forward teardown and retry, managed recovery, Hermes restart recovery, scoped uninstall, and orphan-aware backup behavior. - [#7344](#7344) and [#7416](#7416) -> `docs/changelog/2026-07-24.mdx`: Atomic SQLite restore and host download verification. - [#7476](#7476), [#7347](#7347), [#7281](#7281), [#7485](#7485), [#7491](#7491), and [#7422](#7422) -> `docs/changelog/2026-07-24.mdx`: Windows Ollama reuse, CDI fallback, bounded OpenRouter connection setup, Nemotron-3 request compatibility, and managed Deep Agents retry and provider-error behavior. - [#6884](#6884), [#7481](#7481), [#6878](#6878), [#7467](#7467), [#7502](#7502), [#7503](#7503), [#7504](#7504), and [#7486](#7486) -> `docs/changelog/2026-07-24.mdx`: Trusted base-image overrides, local rebuild images, runtime validation, config preservation, reviewed package updates, and fewer final-image payload layers. - [#7303](#7303) -> `docs/changelog/2026-07-24.mdx`: Scoped Discord application-command management. - [#7488](#7488), [#7465](#7465), [#7497](#7497), [#7464](#7464), [#7501](#7501), [#7494](#7494), and [#7493](#7493) -> `docs/changelog/2026-07-24.mdx`: Selected-test risk signals, retry cleanup, full root-image validation, direct-main Hermes setup, executed PR-gate evidence, nightly history, and runner wait reporting. - [#7447](#7447) is an internal pinned-runtime prerequisite and is intentionally excluded from canonical supported-integration documentation. - [#7370](#7370) adds maintainer-only advisory reconciliation tooling and does not change supported user behavior. - [#7495](#7495) updates existing documentation and does not add a new v0.0.95 behavior claim. ## 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) ## Quality Gates - [ ] Tests added or updated for changed behavior - [x] Existing tests cover changed behavior — justification: `test/changelog-docs.test.ts` validates the dated changelog structure, heading uniqueness, and published links. - [ ] Tests not applicable — justification: - [x] 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: - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Documentation Writer Review - [x] Documentation writer subagent reviewed the completed changes - Result: `docs-updated` - Evidence: `docs/changelog/2026-07-24.mdx`; writing rules, documentation style, factual release meaning, and published links reviewed at exact head `58b02f2bf`. - Agent: Codex documentation writer reviewer <!-- docs-review-head-sha: 58b02f2 --> <!-- docs-review-agents-blob-sha: 9c9b36d --> ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: - Station profile/scenario: - Result: - Supporting evidence: ## Verification - [x] PR description includes a `Signed-off-by:` line and every commit appears as `Verified` in GitHub - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or `npm run check:diff` passed when hooks were skipped or unavailable - [x] Targeted behavior tests pass for the current change set, or tests are marked not applicable above — command/result or justification: `npx vitest run test/changelog-docs.test.ts` passed 6 tests. - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — command/result: - [x] Quality Gates section completed with required justifications or waivers - [x] No secrets, API keys, or credentials committed - [ ] `npm run docs` builds without warnings (doc changes only) — the build passed with 0 errors and 2 Fern warnings. - [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) --- Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added a new v0.0.95 changelog entry above v0.0.94. * Documented improved externally supervised gateway lifecycle ownership. * Improved snapshot restore reliability and SQLite state handling. * Tightened CLI `backup-all` behavior and host artifact verification. * Updated Windows onboarding guidance (including Ollama service reuse and CDI directory fallback). * Noted inference compatibility fixes, deeper agent failure classification, stricter base-image validation, updated Discord bot command permissions, and refined E2E release automation evidence handling. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
Summary
NemoClaw now removes the unsupported top-level
thinkingfield for allnvidia/nemotron-3-models on the managed NVIDIA Build route. Previously, only Nemotron-3 Ultra received this compatibility rewrite, so reasoning-enabled Super and Nano requests failed with HTTP 400.Related Issue
Fixes #6913
Changes
STRIP_TOP_LEVEL_THINKING_REfrom one Ultra model ID to the Nemotron-3 family.thinkingfor unrelated models, includingopenai/gpt-oss-120b.inference setchanges providers at runtime; the preload removes that marker before forwarding.Type of Change
Quality Gates
Documentation Writer Review
no-docs-needed16f81679cagainst base SHA8fcd69c5. OpenClaw now refreshes the non-secret provider marker on everyinference set, including a retry after a failed config write. The preload removes the marker before forwarding requests. No user command, user-managed configuration, setup step, or migration changed. Six focused suites passed 49/49 tests;git diff --checkpassed.DGX Station Hardware Evidence
scripts/prepare-dgx-station-host.sh.Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run check:diffpassed when hooks were skipped or unavailablegit diff --checkpassed.npm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes — command/result:npm run docsbuilds without warnings (doc changes only)Signed-off-by: Julie Yaunches jyaunches@nvidia.com
Summary by CodeRabbit
Bug Fixes
X-NemoClaw-Upstream-Providerheader during provider switches and routing changes.Tests