Skip to content

docs(reference): add env-var index + lifecycle + v0.0.50 runtime (#3059)#4170

Open
latenighthackathon wants to merge 1 commit into
NVIDIA:mainfrom
latenighthackathon:docs/3652-env-var-index-v2
Open

docs(reference): add env-var index + lifecycle + v0.0.50 runtime (#3059)#4170
latenighthackathon wants to merge 1 commit into
NVIDIA:mainfrom
latenighthackathon:docs/3652-env-var-index-v2

Conversation

@latenighthackathon
Copy link
Copy Markdown
Contributor

@latenighthackathon latenighthackathon commented May 25, 2026

Summary

Three documentation additions to the ## Environment Variables section of docs/reference/commands.mdx, plus a v0.0.49/v0.0.50 refresh of the user-facing env-var surface. This is a fresh recreation of the closed #3652 rebuilt on top of current upstream/main (8be998680) with the v0.0.49/v0.0.50 env-var additions folded into the categorized index. Single signed commit.

Related Issue

Closes #3059.

Changes

  • ### At a Glance, new categorized index. Every documented NEMOCLAW_* env var is grouped under eight categories (Service Ports, Onboarding Configuration, Onboarding Behavior Flags, Probe Timeouts, Onboard Timeouts, Gateway Lifecycle Tunables, Sandbox Runtime, Lifecycle Behavior Flags). Each category links into the existing detail subsection. The category rows now include the v0.0.49/v0.0.50 user-tunable additions: NEMOCLAW_MODEL_ROUTER_PYTHON, NEMOCLAW_HERMES_TOOL_GATEWAYS, NEMOCLAW_HERMES_TOOL_GATEWAY_PRESETS, NEMOCLAW_DEFER_OPENSHELL_INSTALL, AWS_BEARER_TOKEN_BEDROCK, COMPATIBLE_ANTHROPIC_API_KEY.
  • ### Gateway Lifecycle Tunables, new subsection. Documents seven knobs that tune the polling and timeout budgets used by gateway-recovery and health-check paths: NEMOCLAW_GATEWAY_START_TIMEOUT, NEMOCLAW_GATEWAY_RECOVERY_WAIT_SECONDS, NEMOCLAW_GATEWAY_RECOVERY_POLL_INTERVAL_SECONDS, NEMOCLAW_HEALTH_POLL_COUNT, NEMOCLAW_HEALTH_POLL_INTERVAL, NEMOCLAW_LOGS_PROBE_TIMEOUT_MS, NEMOCLAW_DOCKER_GPU_SUPERVISOR_RECONNECT_TIMEOUT. Defaults target typical local development; each entry explains when to raise them.
  • ### Sandbox Runtime (v0.0.50), new subsection. Documents four user-tunable env vars introduced in v0.0.49 and v0.0.50: NEMOCLAW_TOOL_CATALOG (rollback for the build-time OpenClaw compact tool-catalog patch, perf(nemotron): reduce sandbox tool-catalog latency #3808), NEMOCLAW_OPENCLAW_MANAGED_PROXY (controls emission of the top-level OpenClaw proxy block, fix(openclaw): remove Discord loopback helper #4005), NEMOCLAW_SANDBOX_BASE_VERSION_TAG (pins the sandbox base image to a specific version tag, fix(images): prefer versioned sandbox base images #4082), and NEMOCLAW_HERMES_TOOL_GATEWAY_REFRESH_TOKEN (Nous OAuth refresh token for the Hermes managed-tool gateway broker, feat(hermes): add managed tool gateway broker #3742). Test seams and internal-only timeouts are intentionally excluded. NEMOCLAW_BEDROCK_RUNTIME_ADAPTER_PORT is correctly left in the env-var-doc allowlist per the maintainer reasoning that users should configure Bedrock through the existing custom Anthropic endpoint flow instead.
  • Four new entries in the Onboarding Behavior Flags table for existing-but-undocumented macOS VM-driver and Docker-driver GPU patch knobs: NEMOCLAW_DISABLE_VM_DNS_MONKEYPATCH, NEMOCLAW_FORCE_VM_DNS_MONKEYPATCH, NEMOCLAW_DARWIN_VM_COMPAT, NEMOCLAW_DOCKER_GPU_PATCH_NETWORK.
  • Regenerated the mirror at .agents/skills/nemoclaw-user-reference/references/commands.md via scripts/docs-to-skills.py.

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

Ran: python3 scripts/docs-to-skills.py docs/ .agents/skills/ --prefix nemoclaw-user --doc-platform fern-mdx --dry-run clean; env-var-docs hook clean (verified NEMOCLAW_BEDROCK_RUNTIME_ADAPTER_PORT is not mentioned in commands.mdx so the allowlist entry stays valid); markdownlint-cli2 clean; pre-commit hooks all pass except the pre-existing tsc-plugin infra failure that also fails on stock upstream/main.


Signed-off-by: latenighthackathon latenighthackathon@users.noreply.github.com

Summary by CodeRabbit

  • Documentation
    • Clarified that nemoclaw tunnel start only starts Cloudflared/dashboard exposure and does not start messaging bridges (Telegram/Discord/Slack); those are configured via onboarding.
    • Added an “At a Glance” env‑var index, VM‑DNS monkeypatch and Docker GPU networking knobs, gateway lifecycle tunables, and Sandbox Runtime (v0.0.50) overrides.
    • Clarified nemoclaw resources/status and expanded messaging-channel docs (wechat, experimental whatsapp).

Review Change Stack

@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot Bot commented May 25, 2026

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
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 25, 2026

Note

Reviews paused

It 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 reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Clarifies that nemoclaw tunnel start only starts Cloudflared/dashboard exposure (does not start messaging bridges), adds an Environment Variables "At a Glance" index, and documents onboarding VM-DNS flags, gateway lifecycle tunables, and Sandbox Runtime (v0.0.50) override variables.

Changes

NemoClaw Command Reference and Environment Variables Documentation

Layer / File(s) Summary
CLI tunnel behavior clarification
.agents/skills/nemoclaw-user-reference/references/commands.md, docs/reference/commands.mdx
Clarifies nemoclaw tunnel start starts cloudflared/dashboard exposure only and does not start messaging bridges (Telegram/Discord/Slack), which are configured during nemoclaw onboard.
Environment variables — At a Glance index
.agents/skills/nemoclaw-user-reference/references/commands.md, docs/reference/commands.mdx
Adds an "At a Glance" index table listing all documented NEMOCLAW_* variables grouped by category with anchors to detailed subsections.
Env var details: onboarding, gateway, sandbox tunables
.agents/skills/nemoclaw-user-reference/references/commands.md, docs/reference/commands.mdx
Adds VM-DNS monkeypatch controls and Darwin compatibility flag, Linux Docker GPU patch network-mode selector, Gateway Lifecycle Tunables (start/recovery/health/logs timing), and Sandbox Runtime (v0.0.50) overrides (NEMOCLAW_TOOL_CATALOG, NEMOCLAW_OPENCLAW_MANAGED_PROXY, NEMOCLAW_SANDBOX_BASE_VERSION_TAG, NEMOCLAW_HERMES_TOOL_GATEWAY_REFRESH_TOKEN).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • NVIDIA/NemoClaw#4078: Overlapping CLI docs updates for channels, policy presets, and sandbox/restore semantics.

Suggested reviewers

  • ericksoa
  • cv

Poem

🐰 A docs carrot fresh and bright,
Commands and knobs all set aright.
Env vars gathered in a neat row,
Tunnel notes so users know.
Hop on, read, and let knowledge grow.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'docs(reference): add env-var index + lifecycle + v0.0.50 runtime' accurately summarizes the main documentation changes: adding an environment variable index table, Gateway Lifecycle Tunables section, and v0.0.50 runtime overrides.
Linked Issues check ✅ Passed The PR fully implements all coding requirements from linked issues #3059 and #3652: consolidates env-var documentation into an indexed table grouped by category, documents Gateway Lifecycle Tunables with seven variables, adds four onboarding behavior flags, and regenerates the auto-generated mirror.
Out of Scope Changes check ✅ Passed All changes are in-scope: documentation updates to commands.mdx and the auto-generated mirror align with objectives to create a consolidated env-var reference with categorized index and new lifecycle tunables sections.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ 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.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
.agents/skills/nemoclaw-user-reference/references/commands.md (2)

976-976: 💤 Low value

Prefer active voice.

The sentence uses passive constructions "is not started" and "is configured." Rewrite using active voice.

Suggested revision: "Channel messaging (Telegram, Discord, Slack) does not start here; nemoclaw onboard configures it and OpenShell-managed constructs run it."

As per coding guidelines, active voice is required and passive constructions should be flagged.

🤖 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 @.agents/skills/nemoclaw-user-reference/references/commands.md at line 976,
Rewrite the passive sentence in the commands.md entry to active voice: replace
"Channel messaging (Telegram, Discord, Slack) is not started here; it is
configured during `nemoclaw onboard` and runs through OpenShell-managed
constructs." with an active-voice variant such as "Channel messaging (Telegram,
Discord, Slack) does not start here; `nemoclaw onboard` configures it and
OpenShell-managed constructs run it." Update the sentence where the original
passive occurs so the subject performs the actions (use `nemoclaw onboard` and
OpenShell-managed constructs as the actors).

984-985: ⚡ Quick win

Split into one sentence per line.

Lines 984-985 contain two sentences on the same line. The source should have one sentence per line to make diffs readable.

Split like this:

-The named tunnel hostname and `localhost:<dashboard-port>` route must already be configured in the Cloudflare dashboard.
-NemoClaw passes the token to `cloudflared` through the `TUNNEL_TOKEN` environment variable, so the token does not appear in the `cloudflared` command-line arguments.
+The named tunnel hostname and `localhost:<dashboard-port>` route must already be configured in the Cloudflare dashboard.
+NemoClaw passes the token to `cloudflared` through the `TUNNEL_TOKEN` environment variable, so the token does not appear in the `cloudflared` command-line arguments.

As per coding guidelines, one sentence per line in source makes diffs readable.

🤖 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 @.agents/skills/nemoclaw-user-reference/references/commands.md around lines
984 - 985, Split the two sentences currently on the same line into separate
lines so each sentence is on its own line: place "The named tunnel hostname and
`localhost:<dashboard-port>` route must already be configured in the Cloudflare
dashboard." on one line and "NemoClaw passes the token to `cloudflared` through
the `TUNNEL_TOKEN` environment variable, so the token does not appear in the
`cloudflared` command-line arguments." on the next line to follow the
one-sentence-per-line guideline.
🤖 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 @.agents/skills/nemoclaw-user-reference/references/commands.md:
- Line 976: Rewrite the passive sentence in the commands.md entry to active
voice: replace "Channel messaging (Telegram, Discord, Slack) is not started
here; it is configured during `nemoclaw onboard` and runs through
OpenShell-managed constructs." with an active-voice variant such as "Channel
messaging (Telegram, Discord, Slack) does not start here; `nemoclaw onboard`
configures it and OpenShell-managed constructs run it." Update the sentence
where the original passive occurs so the subject performs the actions (use
`nemoclaw onboard` and OpenShell-managed constructs as the actors).
- Around line 984-985: Split the two sentences currently on the same line into
separate lines so each sentence is on its own line: place "The named tunnel
hostname and `localhost:<dashboard-port>` route must already be configured in
the Cloudflare dashboard." on one line and "NemoClaw passes the token to
`cloudflared` through the `TUNNEL_TOKEN` environment variable, so the token does
not appear in the `cloudflared` command-line arguments." on the next line to
follow the one-sentence-per-line guideline.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 6dfccec4-6598-4a68-b4f4-f69e052f102b

📥 Commits

Reviewing files that changed from the base of the PR and between 50c208b and b0215ab.

📒 Files selected for processing (2)
  • .agents/skills/nemoclaw-user-reference/references/commands.md
  • docs/reference/commands.mdx

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
.agents/skills/nemoclaw-user-reference/references/commands.md (1)

1201-1201: ⚡ Quick win

Minor anchor link inconsistency in the At a Glance table.

The "Service Ports" category links to #environment-variables, which is the parent section heading (line 1188). All other categories link to their specific subsection anchors (e.g., #onboarding-configuration, #gateway-lifecycle-tunables).

Consider adding a "### Service Ports" heading before line 1210 so this category can link to a dedicated anchor like the others, improving navigation consistency.

🤖 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 @.agents/skills/nemoclaw-user-reference/references/commands.md at line 1201,
The At a Glance table links "Service Ports" to the parent section anchor
(`#environment-variables`) instead of a dedicated subsection; add a new subsection
heading "### Service Ports" (which will generate the anchor `#service-ports`)
before the block starting around line 1210 and then update the table entry to
link to `#service-ports` so the table points to the specific subsection; ensure
the heading text matches the table label exactly ("Service Ports") so the
generated anchor is consistent.
🤖 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 @.agents/skills/nemoclaw-user-reference/references/commands.md:
- Line 1201: The At a Glance table links "Service Ports" to the parent section
anchor (`#environment-variables`) instead of a dedicated subsection; add a new
subsection heading "### Service Ports" (which will generate the anchor
`#service-ports`) before the block starting around line 1210 and then update the
table entry to link to `#service-ports` so the table points to the specific
subsection; ensure the heading text matches the table label exactly ("Service
Ports") so the generated anchor is consistent.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: bba7bf80-ae0f-496f-ae92-a3dbe6a7ff53

📥 Commits

Reviewing files that changed from the base of the PR and between b0215ab and 0964291.

📒 Files selected for processing (2)
  • .agents/skills/nemoclaw-user-reference/references/commands.md
  • docs/reference/commands.mdx
✅ Files skipped from review due to trivial changes (1)
  • docs/reference/commands.mdx

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
docs/reference/commands.mdx (1)

1220-1220: ⚡ Quick win

Split this into one sentence per source line.

Line 1220 contains two sentences on the same line, which breaks the docs source-line rule.

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/reference/commands.mdx` at line 1220, The line that currently contains
both "These variables override the TCP ports NemoClaw uses for its core
services." and "Each value must be a non-privileged integer between 1024 and
65535." should be split into two source lines so each sentence stands alone;
edit the paragraph containing that sentence pair (the sentence starting "These
variables override the TCP ports NemoClaw uses for its core services.") and
place the first sentence on its own line and the second sentence ("Each value
must be a non-privileged integer between 1024 and 65535.") on the next line to
comply with the one-sentence-per-source-line rule.
🤖 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 `@docs/reference/commands.mdx`:
- Line 1220: The line that currently contains both "These variables override the
TCP ports NemoClaw uses for its core services." and "Each value must be a
non-privileged integer between 1024 and 65535." should be split into two source
lines so each sentence stands alone; edit the paragraph containing that sentence
pair (the sentence starting "These variables override the TCP ports NemoClaw
uses for its core services.") and place the first sentence on its own line and
the second sentence ("Each value must be a non-privileged integer between 1024
and 65535.") on the next line to comply with the one-sentence-per-source-line
rule.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: d342e8ac-1a81-4507-a947-562e3fb821a5

📥 Commits

Reviewing files that changed from the base of the PR and between 0964291 and 463408d.

📒 Files selected for processing (2)
  • .agents/skills/nemoclaw-user-reference/references/commands.md
  • docs/reference/commands.mdx
✅ Files skipped from review due to trivial changes (1)
  • .agents/skills/nemoclaw-user-reference/references/commands.md

@wscurran wscurran added CI/CD Use this label to identify issues with NemoClaw CI/CD pipeline or GitHub Actions. documentation Improvements or additions to documentation fix labels May 26, 2026
@wscurran
Copy link
Copy Markdown
Contributor

✨ Thanks for submitting this detailed PR about adding an env-var index and lifecycle documentation. This proposes a way to improve the documentation by adding a categorized index and refreshing the user-facing env-var surface, and it closes issue #3059.


Related open PRs:


Related open issues:

@latenighthackathon latenighthackathon force-pushed the docs/3652-env-var-index-v2 branch 2 times, most recently from dc9ee29 to b2746ac Compare May 28, 2026 06:06
…0.0.50 runtime (NVIDIA#3059)

Adds a categorized At-a-Glance index of documented NEMOCLAW_* env vars to
docs/reference/commands.mdx, plus a Service Ports H3, gateway lifecycle
tunables, and v0.0.50 sandbox-runtime env vars. Regenerates the
nemoclaw-user-reference skill mirror.

Signed-off-by: latenighthackathon <latenighthackathon@users.noreply.github.com>
@latenighthackathon latenighthackathon force-pushed the docs/3652-env-var-index-v2 branch from b2746ac to 5a273cd Compare May 28, 2026 06:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI/CD Use this label to identify issues with NemoClaw CI/CD pipeline or GitHub Actions. documentation Improvements or additions to documentation fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Missing proper reference of ALL environment variables

2 participants