Skip to content

docs(reference): add env-var index + document gateway lifecycle tunables (#3059)#3652

Open
latenighthackathon wants to merge 1 commit into
NVIDIA:mainfrom
latenighthackathon:docs/env-vars-comprehensive-reference
Open

docs(reference): add env-var index + document gateway lifecycle tunables (#3059)#3652
latenighthackathon wants to merge 1 commit into
NVIDIA:mainfrom
latenighthackathon:docs/env-vars-comprehensive-reference

Conversation

@latenighthackathon
Copy link
Copy Markdown
Contributor

@latenighthackathon latenighthackathon commented May 16, 2026

Summary

Closes #3059. NEMOCLAW_* environment variables are referenced across the docs portal in seven subsections of docs/reference/commands.mdx plus the credential-storage page, but the reference page had no single entry point for operators to scan and discover the right knob. The reporter (@oparoz) called this out as "scattered" and asked for a first-class consolidated table.

Two changes

  1. Add an "At a Glance" index table at the top of the Environment Variables section. Lists every documented NEMOCLAW_* variable grouped by category, with anchor links to the existing detailed subsections. The index is a discovery layer; per-variable defaults, formats, and effects remain in the per-section tables where they live today.

  2. Fill the largest gap: gateway and health-poll tunables that production operators reach for on slow links and remote-deployed hosts but were undocumented. Adds a new "Gateway Lifecycle Tunables" subsection covering seven variables, plus four onboarding toggles under the existing "Onboarding Behavior Flags" section.

Newly documented

Gateway Lifecycle Tunables (new subsection)

Variable Default
NEMOCLAW_GATEWAY_START_TIMEOUT 600s
NEMOCLAW_GATEWAY_RECOVERY_WAIT_SECONDS 30s
NEMOCLAW_GATEWAY_RECOVERY_POLL_INTERVAL_SECONDS 3s
NEMOCLAW_HEALTH_POLL_COUNT 12 (30 on arm64)
NEMOCLAW_HEALTH_POLL_INTERVAL 5s (10s on arm64)
NEMOCLAW_LOGS_PROBE_TIMEOUT_MS 5000
NEMOCLAW_DOCKER_GPU_SUPERVISOR_RECONNECT_TIMEOUT 900s

Onboarding Behavior Flags (additions)

  • NEMOCLAW_DISABLE_VM_DNS_MONKEYPATCH
  • NEMOCLAW_FORCE_VM_DNS_MONKEYPATCH
  • NEMOCLAW_DARWIN_VM_COMPAT
  • NEMOCLAW_DOCKER_GPU_PATCH_NETWORK

All defaults verified against the corresponding process.env.* reads in src/.

Files

  • docs/reference/commands.mdx (At a Glance index + new Gateway Lifecycle Tunables subsection + Onboarding Behavior Flags additions)
  • .agents/skills/nemoclaw-user-reference/references/commands.md (auto-generated mirror)

Test plan

  • prek run clean
  • Anchor links in the At a Glance table resolve to the correct in-page sections
  • Defaults cross-checked against current process.env.NEMOCLAW_* reads in src/

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

@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot Bot commented May 16, 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 16, 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

This PR expands CLI environment variables documentation by adding a quick-reference index table, documenting new VM/DNS and GPU-related toggles, and introducing a Gateway Lifecycle Tunables section with timing and polling controls, synchronized across two reference files.

Changes

Environment Variables Reference Documentation Expansion

Layer / File(s) Summary
Environment variables quick reference index
.agents/skills/nemoclaw-user-reference/references/commands.md, docs/reference/commands.mdx
New "At a Glance" summary table lists all documented NEMOCLAW_* variables grouped by functional category with links to detailed subsections.
VM/DNS and GPU configuration variables
.agents/skills/nemoclaw-user-reference/references/commands.md, docs/reference/commands.mdx
Documentation added for NEMOCLAW_DISABLE_VM_DNS_MONKEYPATCH, NEMOCLAW_FORCE_VM_DNS_MONKEYPATCH, NEMOCLAW_DARWIN_VM_COMPAT, and NEMOCLAW_DOCKER_GPU_PATCH_NETWORK controlling macOS VM DNS behavior and Linux Docker GPU patch network mode.
Gateway lifecycle timing and polling tunables
.agents/skills/nemoclaw-user-reference/references/commands.md, docs/reference/commands.mdx
New "Gateway Lifecycle Tunables" subsection documents gateway start timeout, recovery wait/poll intervals, health poll configuration, logs probe timeout, and GPU supervisor reconnect timeout, with example usage and default values.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • cv

Poem

🐰 Our docs grow whiskers, line by line,

Variables shine with reference fine,

Gateways and GPUs, all neatly arrayed,

A comprehensive guide, perfectly made! 📚✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically describes the main changes: adding an environment variable index and documenting gateway lifecycle tunables.
Linked Issues check ✅ Passed The PR fully addresses issue #3059 by creating a centralized, first-class reference with an 'At a Glance' index table listing all documented NEMOCLAW_* variables grouped by category with anchor links.
Out of Scope Changes check ✅ Passed All changes are directly aligned with consolidating environment variable documentation and adding gateway lifecycle tunables documentation; no unrelated or out-of-scope changes are present.
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 (6)
docs/reference/commands.md (3)

1096-1097: ⚡ Quick win

Use more formal technical language.

Line 1096: "discover the right knob" is informal. Consider "find the appropriate variable" or "locate the relevant configuration variable."

Line 1097: "jump to the subsection below" uses an imperative without addressing the reader. Reframe as "Review the subsection below for..." or "See the subsection below for..."

As per coding guidelines: documentation should maintain a professional tone and use second person when addressing the reader.

🤖 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.md` around lines 1096 - 1097, The phrasing in the
introduction to the environment variable table uses informal language ("discover
the right knob", "jump to the subsection below"); update the sentences that
start with "Every documented `NEMOCLAW_*` environment variable, grouped by
category." to use formal technical language and second-person where
appropriate—change "discover the right knob" to "find the appropriate variable"
or "locate the relevant configuration variable" and rephrase "jump to the
subsection below" to "See the subsection below for" or "Review the subsection
below for" so the text reads professionally and instructively.

1197-1197: ⚡ Quick win

Convert passive voice to active voice.

The phrase "the override exists for cross-platform reproduction" uses passive construction. Consider active voice: "Use this override for cross-platform reproduction" or "This override enables cross-platform reproduction."

As per coding guidelines: active voice is required in documentation.

🤖 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.md` at line 1197, Update the documentation line
describing the NEMOCLAW_FORCE_VM_DNS_MONKEYPATCH environment variable to use
active voice: replace the passive clause "the override exists for cross-platform
reproduction" with an active construction such as "Use this override for
cross-platform reproduction" or "This override enables cross-platform
reproduction" so the full description for `NEMOCLAW_FORCE_VM_DNS_MONKEYPATCH`
reads clearly and follows the active-voice guideline.

1234-1236: ⚡ Quick win

Convert passive voice to active voice.

Line 1235: "Defaults are sized for typical local development" uses passive construction. Consider active voice: "These defaults target typical local development" or "The default values support typical local development."

As per coding guidelines: active voice is required in documentation.

🤖 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.md` around lines 1234 - 1236, Rewrite the passive
sentence "Defaults are sized for typical local development" to active voice;
replace it with a phrasing such as "These defaults target typical local
development" or "The default values support typical local development" in the
docs section that currently reads "These variables tune the polling and timeout
budgets used by gateway-recovery and health-check paths. Defaults are sized for
typical local development; raise them on slow links, large image pulls, or
remote-deployed hosts where round-trip latency to the gateway is high." Ensure
the revised sentence reads smoothly with the surrounding guidance about raising
values for slow links, large image pulls, or high-latency remote hosts.
.agents/skills/nemoclaw-user-reference/references/commands.md (3)

1160-1160: ⚡ Quick win

Convert passive voice to active voice.

The phrase "the override exists for cross-platform reproduction" uses passive construction. Consider active voice: "Use this override for cross-platform reproduction" or "This override enables cross-platform reproduction."

As per coding guidelines: active voice is required in documentation.

🤖 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 1160,
Update the table row for the environment variable
NEMOCLAW_FORCE_VM_DNS_MONKEYPATCH to use active voice: replace the passive
clause "the override exists for cross-platform reproduction" with an active
phrasing such as "Use this override for cross-platform reproduction" or "This
override enables cross-platform reproduction" so the description reads actively
while preserving the rest of the entry.

1060-1061: ⚡ Quick win

Use more formal technical language.

Line 1060: "discover the right knob" is informal. Consider "find the appropriate variable" or "locate the relevant configuration variable."

Line 1061: "jump to the subsection below" uses an imperative without addressing the reader. Reframe as "Review the subsection below for..." or "See the subsection below for..."

As per coding guidelines: documentation should maintain a professional tone and use second person when addressing the reader.

🤖 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
1060 - 1061, Update the sentence that follows the "Every documented `NEMOCLAW_*`
environment variable, grouped by category." header to use formal technical
language: replace "discover the right knob" with "find the appropriate variable"
(or "locate the relevant configuration variable") and change the imperative
"jump to the subsection below" to a neutral phrasing such as "see the subsection
below for" or "review the subsection below for" so the text reads professionally
and uses second-person where addressing the reader; ensure the sentence still
references the table and the subsections for defaults, format, and effect and
keep mention of `NEMOCLAW_*` intact.

1197-1199: ⚡ Quick win

Convert passive voice to active voice.

Line 1198: "Defaults are sized for typical local development" uses passive construction. Consider active voice: "These defaults target typical local development" or "The default values support typical local development."

As per coding guidelines: active voice is required in documentation.

🤖 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
1197 - 1199, The sentence "Defaults are sized for typical local development"
uses passive voice; edit the documentation in commands.md near the paragraph
about polling and timeout budgets (the sentence following "These variables tune
the polling and timeout budgets used by gateway-recovery and health-check
paths.") to use active voice instead—e.g., replace it with "These default values
support typical local development" or "These defaults target typical local
development" so the paragraph reads actively.
🤖 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 1160: Update the table row for the environment variable
NEMOCLAW_FORCE_VM_DNS_MONKEYPATCH to use active voice: replace the passive
clause "the override exists for cross-platform reproduction" with an active
phrasing such as "Use this override for cross-platform reproduction" or "This
override enables cross-platform reproduction" so the description reads actively
while preserving the rest of the entry.
- Around line 1060-1061: Update the sentence that follows the "Every documented
`NEMOCLAW_*` environment variable, grouped by category." header to use formal
technical language: replace "discover the right knob" with "find the appropriate
variable" (or "locate the relevant configuration variable") and change the
imperative "jump to the subsection below" to a neutral phrasing such as "see the
subsection below for" or "review the subsection below for" so the text reads
professionally and uses second-person where addressing the reader; ensure the
sentence still references the table and the subsections for defaults, format,
and effect and keep mention of `NEMOCLAW_*` intact.
- Around line 1197-1199: The sentence "Defaults are sized for typical local
development" uses passive voice; edit the documentation in commands.md near the
paragraph about polling and timeout budgets (the sentence following "These
variables tune the polling and timeout budgets used by gateway-recovery and
health-check paths.") to use active voice instead—e.g., replace it with "These
default values support typical local development" or "These defaults target
typical local development" so the paragraph reads actively.

In `@docs/reference/commands.md`:
- Around line 1096-1097: The phrasing in the introduction to the environment
variable table uses informal language ("discover the right knob", "jump to the
subsection below"); update the sentences that start with "Every documented
`NEMOCLAW_*` environment variable, grouped by category." to use formal technical
language and second-person where appropriate—change "discover the right knob" to
"find the appropriate variable" or "locate the relevant configuration variable"
and rephrase "jump to the subsection below" to "See the subsection below for" or
"Review the subsection below for" so the text reads professionally and
instructively.
- Line 1197: Update the documentation line describing the
NEMOCLAW_FORCE_VM_DNS_MONKEYPATCH environment variable to use active voice:
replace the passive clause "the override exists for cross-platform reproduction"
with an active construction such as "Use this override for cross-platform
reproduction" or "This override enables cross-platform reproduction" so the full
description for `NEMOCLAW_FORCE_VM_DNS_MONKEYPATCH` reads clearly and follows
the active-voice guideline.
- Around line 1234-1236: Rewrite the passive sentence "Defaults are sized for
typical local development" to active voice; replace it with a phrasing such as
"These defaults target typical local development" or "The default values support
typical local development" in the docs section that currently reads "These
variables tune the polling and timeout budgets used by gateway-recovery and
health-check paths. Defaults are sized for typical local development; raise them
on slow links, large image pulls, or remote-deployed hosts where round-trip
latency to the gateway is high." Ensure the revised sentence reads smoothly with
the surrounding guidance about raising values for slow links, large image pulls,
or high-latency remote hosts.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: d32719b5-6c8b-4ade-89c9-313985e9c33c

📥 Commits

Reviewing files that changed from the base of the PR and between 17965a7 and 9ef3258.

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

@latenighthackathon latenighthackathon force-pushed the docs/env-vars-comprehensive-reference branch from 9ef3258 to 77c2f25 Compare May 17, 2026 00:19
@latenighthackathon latenighthackathon force-pushed the docs/env-vars-comprehensive-reference branch from 482fc91 to 34d6b4c Compare May 18, 2026 02:59
@wscurran wscurran added documentation Improvements or additions to documentation fix labels May 18, 2026
@wscurran
Copy link
Copy Markdown
Contributor

✨ Thanks for submitting this detailed PR to address the documentation gap for environment variables and gateway lifecycle tunables. This change aims to improve the discoverability of NEMOCLAW_* variables and provide a consolidated table for operators to reference.


Related open issues:

@miyoungc
Copy link
Copy Markdown
Contributor

miyoungc commented May 19, 2026

Docs migration heads-up: #3837 has merged the Fern MDX migration cleanup.

Legacy documentation source pages under docs/**/*.md have been removed, except for docs/CONTRIBUTING.md. Please update this PR so any documentation changes target the matching Fern MDX page under docs/**/*.mdx instead, for example docs/reference/commands.mdx or docs/inference/inference-options.mdx.

CI now validates the MDX sources directly, so deleted legacy Markdown pages should stay deleted.

@latenighthackathon latenighthackathon force-pushed the docs/env-vars-comprehensive-reference branch from 34d6b4c to f2ffee4 Compare May 20, 2026 02:03
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 (4)
docs/reference/commands.mdx (4)

1200-1200: ⚡ Quick win

Replace sentence fragment with complete sentence.

"Installer-only." is a fragment.

Consider: "For installer use only." or "Installer use only." or combine with the following sentence: "Installer use only; skips the DGX Spark..."

As per coding guidelines: Every sentence must end with a period (and be a complete sentence).

🤖 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 1200, The table cell contains the
fragment "Installer-only."; update that fragment to a complete sentence such as
"Installer use only." or merge with the next clause into a single sentence like
"Installer use only; skips the DGX Spark, DGX Station, and Windows WSL express
install prompt and continues with the normal interactive onboarding flow." Edit
the cell referencing `NEMOCLAW_NO_EXPRESS` so the entry ends with a proper
period and is a complete sentence.

1112-1112: ⚡ Quick win

Complete the sentence.

This line is a noun phrase without a main verb.

Suggested rewrites:

  • "This table lists every documented NEMOCLAW_* environment variable, grouped by category."
  • "The following table lists every documented NEMOCLAW_* environment variable, grouped by category."

As per coding guidelines: Every sentence must end with a period (and be a complete sentence).

🤖 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 1112, The fragment "Every documented
`NEMOCLAW_*` environment variable, grouped by category." is a noun phrase;
replace it with a complete sentence such as "This table lists every documented
`NEMOCLAW_*` environment variable, grouped by category." or "The following table
lists every documented `NEMOCLAW_*` environment variable, grouped by category."
and ensure the sentence ends with a period in the docs/reference/commands.mdx
content.

648-648: ⚡ Quick win

Use active voice.

The phrase "is the supported path" is passive.
As per coding guidelines, active voice is required in documentation.

Consider: "NemoClaw supports host-side removal because..." or "Use the host-side removal path because..."

As per coding guidelines: Active voice required. Flag passive constructions.

🤖 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 648, Replace the passive sentence
"Host-side removal is the supported path because agent channel config is baked
into the container image at build time (`/sandbox/.openclaw/openclaw.json` for
OpenClaw and `/sandbox/.hermes/.env` for Hermes); agent-specific channel
removals inside the sandbox would modify the running config but not persist
changes across rebuilds." with an active-voice version (e.g., "NemoClaw supports
host-side removal because the agent channel config is baked into the container
image at build time (`/sandbox/.openclaw/openclaw.json` for OpenClaw and
`/sandbox/.hermes/.env` for Hermes); removing channels inside the sandbox only
changes the running config and does not persist across rebuilds.") while
preserving the same file paths and technical details.

1190-1190: ⚡ Quick win

Break into multiple sentences for readability.

This single sentence exceeds 200 words and is difficult to parse.
While technically compliant with "one sentence per line," the cognitive load is high.

Consider breaking into 3-4 shorter sentences:

  • First sentence: what it does (pins the interpreter)
  • Second: behavior when set (strict, no fallback)
  • Third: what's rejected (relative paths)
  • Fourth: behavior when unset (probing sequence)
🤖 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 1190, Split the long single sentence
describing NEMOCLAW_MODEL_ROUTER_PYTHON into 3–4 shorter sentences: 1) state its
purpose (pins the host Python interpreter used to create the Model Router venv),
2) describe behavior when set (strict: NemoClaw probes only that absolute path
and aborts with the failure reason; no fallback), 3) note what's rejected
(relative command names such as python3.12 are rejected), and 4) describe
behavior when unset (probe sequence python3.13 → python3.12 → python3.11 →
python3.10 → python3, retain interpreters with versions in [3.10,3.14) whose
ensurepip, pyexpat, ssl, and venv import cleanly, and try python -m venv in
priority order until one succeeds). Use the environment variable name
NEMOCLAW_MODEL_ROUTER_PYTHON and mention the Homebrew python@3.14 pyexpat dlopen
mismatch example as a brief parenthetical.
🤖 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 1200: The table cell contains the fragment "Installer-only."; update that
fragment to a complete sentence such as "Installer use only." or merge with the
next clause into a single sentence like "Installer use only; skips the DGX
Spark, DGX Station, and Windows WSL express install prompt and continues with
the normal interactive onboarding flow." Edit the cell referencing
`NEMOCLAW_NO_EXPRESS` so the entry ends with a proper period and is a complete
sentence.
- Line 1112: The fragment "Every documented `NEMOCLAW_*` environment variable,
grouped by category." is a noun phrase; replace it with a complete sentence such
as "This table lists every documented `NEMOCLAW_*` environment variable, grouped
by category." or "The following table lists every documented `NEMOCLAW_*`
environment variable, grouped by category." and ensure the sentence ends with a
period in the docs/reference/commands.mdx content.
- Line 648: Replace the passive sentence "Host-side removal is the supported
path because agent channel config is baked into the container image at build
time (`/sandbox/.openclaw/openclaw.json` for OpenClaw and
`/sandbox/.hermes/.env` for Hermes); agent-specific channel removals inside the
sandbox would modify the running config but not persist changes across
rebuilds." with an active-voice version (e.g., "NemoClaw supports host-side
removal because the agent channel config is baked into the container image at
build time (`/sandbox/.openclaw/openclaw.json` for OpenClaw and
`/sandbox/.hermes/.env` for Hermes); removing channels inside the sandbox only
changes the running config and does not persist across rebuilds.") while
preserving the same file paths and technical details.
- Line 1190: Split the long single sentence describing
NEMOCLAW_MODEL_ROUTER_PYTHON into 3–4 shorter sentences: 1) state its purpose
(pins the host Python interpreter used to create the Model Router venv), 2)
describe behavior when set (strict: NemoClaw probes only that absolute path and
aborts with the failure reason; no fallback), 3) note what's rejected (relative
command names such as python3.12 are rejected), and 4) describe behavior when
unset (probe sequence python3.13 → python3.12 → python3.11 → python3.10 →
python3, retain interpreters with versions in [3.10,3.14) whose ensurepip,
pyexpat, ssl, and venv import cleanly, and try python -m venv in priority order
until one succeeds). Use the environment variable name
NEMOCLAW_MODEL_ROUTER_PYTHON and mention the Homebrew python@3.14 pyexpat dlopen
mismatch example as a brief parenthetical.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 9f94310b-4053-4c7e-a565-16cdc1fdd6bf

📥 Commits

Reviewing files that changed from the base of the PR and between 34d6b4c and f2ffee4.

📒 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

…les (NVIDIA#3059)

Closes NVIDIA#3059. `NEMOCLAW_*` environment variables are referenced across
the docs portal in seven subsections of `docs/reference/commands.md`
plus the credential-storage page, but the reference page has no single
entry point operators can scan to discover the right knob. The reporter
called this out as "scattered" and asked for a first-class consolidated
table.

Add an "At a Glance" index table at the top of the Environment
Variables section that lists every documented `NEMOCLAW_*` variable
grouped by category, with anchor links to the existing detailed
subsections. The index is a discovery layer; per-variable defaults,
formats, and effects remain in the per-section tables where they live
today.

Fill the largest documentation gap: gateway and health-poll tunables
that production operators actually reach for on slow links and
remote-deployed hosts but that were undocumented. Adds a new "Gateway
Lifecycle Tunables" subsection covering:

- `NEMOCLAW_GATEWAY_START_TIMEOUT` (default 600s)
- `NEMOCLAW_GATEWAY_RECOVERY_WAIT_SECONDS` (default 30s)
- `NEMOCLAW_GATEWAY_RECOVERY_POLL_INTERVAL_SECONDS` (default 3s)
- `NEMOCLAW_HEALTH_POLL_COUNT` (default 12; 30 on arm64)
- `NEMOCLAW_HEALTH_POLL_INTERVAL` (default 5s; 10s on arm64)
- `NEMOCLAW_LOGS_PROBE_TIMEOUT_MS` (default 5000)
- `NEMOCLAW_DOCKER_GPU_SUPERVISOR_RECONNECT_TIMEOUT` (default 900s)

Extends "Onboarding Behavior Flags" with four onboarding toggles that
were previously undocumented but are valid user-facing escape hatches:

- `NEMOCLAW_DISABLE_VM_DNS_MONKEYPATCH`
- `NEMOCLAW_FORCE_VM_DNS_MONKEYPATCH`
- `NEMOCLAW_DARWIN_VM_COMPAT` (build-time Dockerfile ARG)
- `NEMOCLAW_DOCKER_GPU_PATCH_NETWORK`

Internal-only sentinels (`NEMOCLAW_DISABLE_AUTO_DISPATCH`,
`NEMOCLAW_DISABLE_GATEWAY_DRIFT_PREFLIGHT`,
`NEMOCLAW_RESTORE_LATEST_BACKUP_ON_RECREATE`,
`NEMOCLAW_INVOKED_AS`, `NEMOCLAW_TEST_NO_SLEEP`, etc.) are intentionally
left in `ci/env-var-doc-allowlist.json` with their existing internal-use
reasons rather than promoted to user docs.

Both `docs/reference/commands.md` and the
`.agents/skills/nemoclaw-user-reference/references/commands.md` mirror
are updated in lockstep.

Verification:
- `npx tsx scripts/check-env-var-docs.ts` passes (no doc-drift)
- `markdownlint-cli2` passes on both files
- `Verify docs-to-skills output` passes (mirror in sync)
- Skill YAML + gitleaks + repository checks pass

Signed-off-by: latenighthackathon <latenighthackathon@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

3 participants