Skip to content

fix(openclaw): propagate custom gateway port - #3332

Merged
ericksoa merged 2 commits into
NVIDIA:mainfrom
yimoj:fix/3256-openclaw-gateway-port
May 13, 2026
Merged

fix(openclaw): propagate custom gateway port#3332
ericksoa merged 2 commits into
NVIDIA:mainfrom
yimoj:fix/3256-openclaw-gateway-port

Conversation

@yimoj

@yimoj yimoj commented May 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

Keeps the OpenClaw gateway server, generated OpenClaw config, runtime CLI environment, and OpenShell forward aligned when NemoClaw uses a non-default dashboard/gateway port.

Related Issue

Fixes #3256

Changes

  • Derive generated gateway.port from NEMOCLAW_DASHBOARD_PORT or CHAT_UI_URL, with port validation.
  • Export and persist OPENCLAW_GATEWAY_PORT, OPENCLAW_GATEWAY_URL, and the gateway token before auto-pair/OpenClaw CLI subprocesses run.
  • Avoid forcing gateway-token mutation for arbitrary explicit startup commands, preserving the no-new-privileges smoke path.
  • Add regression coverage for port 18790 across generated config and startup runtime env behavior.

Type of Change

  • 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

  • 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)

Targeted checks run:

  • env PATH=/home/yimoj/.local/node-v22.16.0-linux-x64/bin:$PATH ./node_modules/.bin/vitest run test/nemoclaw-start.test.ts test/generate-openclaw-config.test.ts (112 passed)
  • env PATH=/home/yimoj/.local/node-v22.16.0-linux-x64/bin:$PATH npm run typecheck:cli (passed)
  • python3 -m py_compile scripts/generate-openclaw-config.py (passed)
  • bash -n scripts/nemoclaw-start.sh && git diff --check (passed)
  • docker build --build-arg BASE_IMAGE=ghcr.io/nvidia/nemoclaw/sandbox-base:latest -t nemoclaw-production . (passed)
  • NEMOCLAW_TEST_IMAGE=nemoclaw-production bash test/e2e-non-root-smoke.sh (2 passed, reproduces/fixes the failed CI job)
  • docker run --rm -e NEMOCLAW_DASHBOARD_PORT=18790 nemoclaw-production openclaw --version (passed)
  • NEMOCLAW_TEST_IMAGE=nemoclaw-production bash test/e2e-port-overrides.sh (9 passed, expected image-module skips)
  • Live two-sandbox E2E with default 18789 occupied and second sandbox on 18790; generated config, /tmp/nemoclaw-proxy-env.sh, and openclaw agent all used the custom gateway port successfully.

Known local failures:

  • npx prek run --all-files fails in the Test (CLI) hook at test/fetch-guard-patch-regression.test.ts because this host has a root-owned global /usr/local/lib/node_modules/openclaw; the extracted Dockerfile block cannot remove it.
  • Full npm test previously hit the same host-global OpenClaw permission issue plus installer preflight assumptions for this linked git worktree.

Signed-off-by: Yimo Jiang yimoj@nvidia.com

Summary by CodeRabbit

  • New Features

    • Configure dashboard port via NEMOCLAW_DASHBOARD_PORT or auto-extract from CHAT_UI_URL; resolved port is applied consistently, may rewrite loopback CHAT_UI_URL, and is exported as OPENCLAW_GATEWAY_PORT / OPENCLAW_GATEWAY_URL. Runtime will generate a gateway auth token when required for gateway-related commands.
  • Bug Fixes

    • Enforce port bounds (1024–65535); ensure resolved port is used in generated config and allowed origins.
  • Tests

    • Added tests for port resolution, allowed-origin behavior, token generation/refusal for symlinked configs, conditional provisioning, and runtime env exports.
  • Documentation

    • Documented NEMOCLAW_DASHBOARD_PORT.

Review Change Stack

@yimoj yimoj self-assigned this May 11, 2026
@coderabbitai

coderabbitai Bot commented May 11, 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: 9110566a-141d-450b-b899-1d8e2a66b2d5

📥 Commits

Reviewing files that changed from the base of the PR and between 0642197 and 3fd55d1.

📒 Files selected for processing (4)
  • scripts/generate-openclaw-config.py
  • scripts/nemoclaw-start.sh
  • test/generate-openclaw-config.test.ts
  • test/nemoclaw-start.test.ts
✅ Files skipped from review due to trivial changes (1)
  • test/generate-openclaw-config.test.ts
🚧 Files skipped from review as they are similar to previous changes (3)
  • scripts/generate-openclaw-config.py
  • scripts/nemoclaw-start.sh
  • test/nemoclaw-start.test.ts

📝 Walkthrough

Walkthrough

Resolve dashboard port from NEMOCLAW_DASHBOARD_PORT or CHAT_UI_URL, embed the resolved gateway.port and allowedOrigins in generated config, export OPENCLAW_GATEWAY_PORT/OPENCLAW_GATEWAY_URL to the runtime env, and ensure gateway auth token exists before export (guarded).

Changes

Gateway Port Configuration & Export

Layer / File(s) Summary
Port Constants & Validation Helpers
scripts/generate-openclaw-config.py
Add DEFAULT_DASHBOARD_PORT, MIN_DASHBOARD_PORT, MAX_DASHBOARD_PORT; implement _normalize_url_for_parse(), _validate_dashboard_port(), _chat_ui_url_port(), and _resolve_gateway_port() to produce a resolved gateway port.
Config Port Resolution & Output
scripts/generate-openclaw-config.py
In build_config(), derive chat_ui_url (or loopback default), resolve gateway_port, optionally rewrite chat_ui_url to loopback with resolved port, compute loopback_origin using gateway_port, deduplicate allowed origins, and set gateway.port in generated JSON.
Start Script Port & URL Exports
scripts/nemoclaw-start.sh
Add _chat_ui_url_port() helper, resolve dashboard port, export OPENCLAW_GATEWAY_PORT and OPENCLAW_GATEWAY_URL, and update write_runtime_shell_env() to emit these into /tmp/nemoclaw-proxy-env.sh.
Token Generation & Persistence
scripts/nemoclaw-start.sh
Add ensure_gateway_token() to generate a URL-safe gateway.auth.token when missing and atomically persist it with a 0600 temp-file replace, recomputing .config-hash and refusing symlinked config/hash paths.
Startup Path Integration
scripts/nemoclaw-start.sh
Add needs_gateway_token_for_current_command() and call ensure_gateway_token() (guarded) in both non-root and root startup flows immediately before export_gateway_token().
Config Generation Tests
test/generate-openclaw-config.test.ts
Add tests asserting gateway.port and controlUi.allowedOrigins reflect CHAT_UI_URL port or NEMOCLAW_DASHBOARD_PORT, and that invalid NEMOCLAW_DASHBOARD_PORT values fail with descriptive stderr.
Start Script Runtime Tests
test/nemoclaw-start.test.ts
Extend harness and tests to assert OPENCLAW_GATEWAY_PORT/OPENCLAW_GATEWAY_URL/OPENCLAW_GATEWAY_TOKEN in runtime env, adjust stubs to match production ordering, refactor harness to return post-run config/hash and symlink state, and verify token-generation and refusal cases.

Sequence Diagram(s)

sequenceDiagram
  participant ConfigGen as generate-openclaw-config.py
  participant StartScript as nemoclaw-start.sh
  participant OpenClawJSON as /sandbox/.openclaw/openclaw.json
  participant RuntimeEnv as /tmp/nemoclaw-proxy-env.sh
  ConfigGen->>ConfigGen: _resolve_gateway_port(NEMOCLAW_DASHBOARD_PORT, CHAT_UI_URL)
  ConfigGen->>ConfigGen: set gateway.port and controlUi.allowedOrigins
  StartScript->>OpenClawJSON: ensure_gateway_token() (read, maybe generate, atomic write)
  OpenClawJSON->>StartScript: gateway.auth.token (present or created)
  StartScript->>RuntimeEnv: write_runtime_shell_env() including OPENCLAW_GATEWAY_PORT/URL/TOKEN
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Suggested labels

E2E

Poem

🐰 I hopped through ports and urls with care,
Pulled a port from CHAT_UI and put it there.
I stitched the config and set the env bright,
Ensured a token so websocket stays light.
Now agents find gateways and hop on through the air.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 16.67% 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 title 'fix(openclaw): propagate custom gateway port' directly and concisely describes the main objective of the PR—ensuring the custom gateway port is properly propagated throughout the system.
Linked Issues check ✅ Passed The PR addresses all primary coding objectives from #3256: deriving gateway.port from NEMOCLAW_DASHBOARD_PORT or CHAT_UI_URL with validation, exporting OPENCLAW_GATEWAY_PORT and OPENCLAW_GATEWAY_URL, ensuring the agent targets the correct in-sandbox endpoint, and adding regression test coverage.
Out of Scope Changes check ✅ Passed All changes in generate-openclaw-config.py, nemoclaw-start.sh, and test files are directly aligned with the PR objective to propagate custom gateway port and resolve #3256.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@yimoj yimoj added v0.0.39 and removed v0.0.39 labels May 11, 2026
@yimoj
yimoj force-pushed the fix/3256-openclaw-gateway-port branch from e165da0 to 42af970 Compare May 11, 2026 06:52

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

🧹 Nitpick comments (1)
test/nemoclaw-start.test.ts (1)

434-437: 💤 Low value

Test harness doesn't replace hash file path.

The ensureGatewayToken extraction replaces the openclaw.json path but not /sandbox/.openclaw/.config-hash. This causes hash recomputation to be skipped in tests (the path doesn't exist, so the -f "$hash_file" check fails).

This is acceptable for the current tests since they verify token generation, not hash management. However, for more complete coverage, consider also replacing the hash file path and verifying hash recomputation.

💡 Optional: Add hash file path replacement for completeness
 const ensureGatewayToken = extractShellFunctionFromSource(src, "ensure_gateway_token").replaceAll(
   "/sandbox/.openclaw/openclaw.json",
   path.join(openclawDir, "openclaw.json"),
+).replaceAll(
+  "/sandbox/.openclaw/.config-hash",
+  path.join(openclawDir, ".config-hash"),
 );

Then create an empty hash file in the harness and verify it's updated after token generation.

🤖 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/nemoclaw-start.test.ts` around lines 434 - 437, The ensureGatewayToken
extraction currently replaces the openclaw.json path but not the hash file path,
causing the test harness to skip hash-file checks; update the extraction step
around extractShellFunctionFromSource("ensure_gateway_token") to also replace
"/sandbox/.openclaw/.config-hash" with path.join(openclawDir, ".config-hash"),
then in the test harness create an empty hash file at that replaced location
before invoking the extracted ensure_gateway_token and add an assertion that the
file's contents change (or mtime updates) after token generation to verify hash
recomputation.
🤖 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.

Nitpick comments:
In `@test/nemoclaw-start.test.ts`:
- Around line 434-437: The ensureGatewayToken extraction currently replaces the
openclaw.json path but not the hash file path, causing the test harness to skip
hash-file checks; update the extraction step around
extractShellFunctionFromSource("ensure_gateway_token") to also replace
"/sandbox/.openclaw/.config-hash" with path.join(openclawDir, ".config-hash"),
then in the test harness create an empty hash file at that replaced location
before invoking the extracted ensure_gateway_token and add an assertion that the
file's contents change (or mtime updates) after token generation to verify hash
recomputation.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: e04249c6-a167-45f4-8795-308562aff795

📥 Commits

Reviewing files that changed from the base of the PR and between e165da0 and 42af970.

📒 Files selected for processing (4)
  • scripts/generate-openclaw-config.py
  • scripts/nemoclaw-start.sh
  • test/generate-openclaw-config.test.ts
  • test/nemoclaw-start.test.ts
🚧 Files skipped from review as they are similar to previous changes (2)
  • test/generate-openclaw-config.test.ts
  • scripts/generate-openclaw-config.py

@yimoj
yimoj force-pushed the fix/3256-openclaw-gateway-port branch 2 times, most recently from d40d513 to a09dfdc Compare May 11, 2026 07:11

@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: 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 `@test/nemoclaw-start.test.ts`:
- Around line 527-543: The test "generates a gateway token before writing the
runtime shell env" (using runGatewayTokenHarness) seeds a stale token but only
asserts that an OPENCLAW_GATEWAY_TOKEN export exists; update the assertions so
the exported token in envFile is compared to the regenerated runtime token
(configAfter.gateway.auth.token) and/or asserted to not equal the seeded
"stale-token". Concretely, after obtaining envFile and configAfter from
runGatewayTokenHarness, assert that envFile contains the exact value of
configAfter.gateway.auth.token (or assert envFile does not include
"stale-token") to ensure export_gateway_token actually replaced the stale value.
🪄 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: 24b30488-ff3a-46c9-a652-8100f7a46ee6

📥 Commits

Reviewing files that changed from the base of the PR and between d40d513 and a09dfdc.

📒 Files selected for processing (4)
  • scripts/generate-openclaw-config.py
  • scripts/nemoclaw-start.sh
  • test/generate-openclaw-config.test.ts
  • test/nemoclaw-start.test.ts
✅ Files skipped from review due to trivial changes (1)
  • test/generate-openclaw-config.test.ts
🚧 Files skipped from review as they are similar to previous changes (2)
  • scripts/nemoclaw-start.sh
  • scripts/generate-openclaw-config.py

Comment thread test/nemoclaw-start.test.ts
@yimoj
yimoj force-pushed the fix/3256-openclaw-gateway-port branch from a09dfdc to a0d9606 Compare May 11, 2026 07:19
@yimoj

yimoj commented May 11, 2026

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@yimoj

yimoj commented May 11, 2026

Copy link
Copy Markdown
Collaborator Author

@coderabbitai resume

@coderabbitai

coderabbitai Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Reviews resumed.

@wscurran

Copy link
Copy Markdown
Contributor

@wscurran wscurran added the integration: openclaw OpenClaw integration behavior label May 11, 2026
@yimoj
yimoj force-pushed the fix/3256-openclaw-gateway-port branch 2 times, most recently from 22ed52c to 95c0afb Compare May 12, 2026 02:45

@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: 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 `@scripts/nemoclaw-start.sh`:
- Around line 876-921: ensure_gateway_token currently writes to openclaw.json
without verifying it is not a symlink when running as non-root; add an explicit
symlink guard early in ensure_gateway_token similar to
prepare_openclaw_config_for_write so the function refuses to operate if
/sandbox/.openclaw/openclaw.json is a symlink (or otherwise unsafe). Locate
ensure_gateway_token and add the same check logic used by
prepare_openclaw_config_for_write (reference apply_model_override and
apply_cors_override which use that pattern) before attempting any read/write or
invoking the Python block, and return a non-zero error if the check fails.
🪄 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: a45ab770-5c61-411c-9e21-aac593838938

📥 Commits

Reviewing files that changed from the base of the PR and between 22ed52c and 95c0afb.

📒 Files selected for processing (4)
  • scripts/generate-openclaw-config.py
  • scripts/nemoclaw-start.sh
  • test/generate-openclaw-config.test.ts
  • test/nemoclaw-start.test.ts
🚧 Files skipped from review as they are similar to previous changes (3)
  • test/generate-openclaw-config.test.ts
  • scripts/generate-openclaw-config.py
  • test/nemoclaw-start.test.ts

Comment thread scripts/nemoclaw-start.sh
@yimoj
yimoj force-pushed the fix/3256-openclaw-gateway-port branch from 95c0afb to 6cf440e Compare May 12, 2026 02:55

@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: 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 `@scripts/nemoclaw-start.sh`:
- Around line 199-200: When NEMOCLAW_DASHBOARD_PORT is unset the script should
derive the fallback port from CHAT_UI_URL before assigning _DASHBOARD_PORT and
exporting related vars; update the logic that currently hard-defaults
_DASHBOARD_PORT to 18789 to first parse CHAT_UI_URL for a valid port (extract
numeric port from the URL, validate it) and use that value if present, otherwise
fall back to 18789; then set PUBLIC_PORT, OPENCLAW_GATEWAY_PORT,
OPENCLAW_GATEWAY_URL and the port passed to the gateway run --port invocation
from the resolved _DASHBOARD_PORT so the exported values and gateway process
match the baked CHAT_UI_URL.
🪄 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: b84499a2-7543-4b39-a847-6ad82765995b

📥 Commits

Reviewing files that changed from the base of the PR and between 95c0afb and 6cf440e.

📒 Files selected for processing (4)
  • scripts/generate-openclaw-config.py
  • scripts/nemoclaw-start.sh
  • test/generate-openclaw-config.test.ts
  • test/nemoclaw-start.test.ts
🚧 Files skipped from review as they are similar to previous changes (2)
  • test/generate-openclaw-config.test.ts
  • scripts/generate-openclaw-config.py

Comment thread scripts/nemoclaw-start.sh
@yimoj
yimoj force-pushed the fix/3256-openclaw-gateway-port branch from 6cf440e to 51204ce Compare May 12, 2026 03:04
@yimoj yimoj added the v0.0.40 label May 12, 2026

@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: 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 `@scripts/nemoclaw-start.sh`:
- Around line 901-947: The Python block in ensure_gateway_token uses a
predictable tmp filename f'{path}.tmp' which a local attacker can symlink to
cause a root write; replace that logic in the python snippet inside
ensure_gateway_token so it creates the temporary file securely in the target
directory using a safe atomic tempfile (e.g. os.mkstemp or
tempfile.NamedTemporaryFile with dir=os.path.dirname(path) and flags to avoid
following symlinks), write the JSON to that file descriptor, fsync the data and
directory, set file mode to 0o600, close the descriptor, and then
os.replace(tmp_path, path); ensure any exceptions still print the SECURITY error
and exit non‑zero. Reference the python block invoked from ensure_gateway_token
and the variables path/tmp_path when making the change.
🪄 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: 18197792-14df-4458-a483-a62a64eaa884

📥 Commits

Reviewing files that changed from the base of the PR and between 6cf440e and 51204ce.

📒 Files selected for processing (4)
  • scripts/generate-openclaw-config.py
  • scripts/nemoclaw-start.sh
  • test/generate-openclaw-config.test.ts
  • test/nemoclaw-start.test.ts
✅ Files skipped from review due to trivial changes (1)
  • test/generate-openclaw-config.test.ts
🚧 Files skipped from review as they are similar to previous changes (2)
  • test/nemoclaw-start.test.ts
  • scripts/generate-openclaw-config.py

Comment thread scripts/nemoclaw-start.sh
Signed-off-by: Yimo Jiang <yimoj@nvidia.com>
@yimoj
yimoj force-pushed the fix/3256-openclaw-gateway-port branch from 51204ce to 0642197 Compare May 12, 2026 03:13
@yimoj

yimoj commented May 12, 2026

Copy link
Copy Markdown
Collaborator Author

@coderabbitai resume

@yimoj

yimoj commented May 12, 2026

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented May 12, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Reviews resumed.

@coderabbitai

coderabbitai Bot commented May 12, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

…eway-port

# Conflicts:
#	scripts/nemoclaw-start.sh
#	test/nemoclaw-start.test.ts

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

Approved after reviewing the current head, resolving the main conflict, validating the targeted tests, and confirming CodeRabbit's security threads are resolved.

@ericksoa
ericksoa merged commit 17325de into NVIDIA:main May 13, 2026
59 of 61 checks passed
@wscurran wscurran added area: cli Command line interface, flags, terminal UX, or output area: integrations Third-party service integration behavior bug-fix PR fixes a bug or regression feature PR adds or expands user-visible functionality and removed NemoClaw CLI feature PR adds or expands user-visible functionality labels Jun 3, 2026
@wscurran wscurran added NV QA Bugs found by the NVIDIA QA Team UAT Issues flagged for User Acceptance Testing. labels Jun 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: cli Command line interface, flags, terminal UX, or output area: integrations Third-party service integration behavior bug-fix PR fixes a bug or regression integration: openclaw OpenClaw integration behavior NV QA Bugs found by the NVIDIA QA Team UAT Issues flagged for User Acceptance Testing.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[DGX Station][Agent&Skills] openclaw agent in NemoClaw vLLM sandbox cannot reach local gateway, falls back to embedded

3 participants