docs: refresh release notes for v0.0.49#4078
Conversation
|
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)
✅ Files skipped from review due to trivial changes (4)
📝 WalkthroughWalkthroughThis PR updates NemoClaw documentation for v0.0.49: adds release notes and version metadata, changes deployment topology to a Docker-driver model, expands CLI docs (exec, snapshot restore --to, channels, logs/status), and improves setup/troubleshooting and messaging-channel/snapshot restore guidance. Changesv0.0.49 Release Documentation & Version
Architecture & CLI Documentation
Setup, Prerequisites & Troubleshooting
Backup/Snapshot & Messaging Channel Operations
Estimated code review effort: Possibly Related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
ESLint skipped: no ESLint configuration detected in root package.json. To enable, add Comment |
|
🌿 Preview your docs: https://nvidia-preview-pr-4078.docs.buildwithfern.com/nemoclaw |
E2E Advisor RecommendationRequired E2E: None Full advisor summaryE2E Recommendation AdvisorBase: Required E2E
Optional E2E
New E2E recommendations
|
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (3)
docs/about/release-notes.mdx (2)
19-20: ⚡ Quick winTone is drifting into marketing language (LLM pattern detected).
Phrases like “more stable,” “more resilient,” “more robust,” and “clearer” read as superlative/marketing claims; state concrete behavior without promotional qualifiers.
As per coding guidelines, "Superlatives and marketing language ('powerful,' 'robust,' 'seamless,' 'cutting-edge'). Say what it does, not how great it is."
Also applies to: 26-27
🤖 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/about/release-notes.mdx` around lines 19 - 20, Reword the two release-note bullets to remove marketing superlatives and state concrete, testable behavior: replace "Gateway upgrade and fallback paths are more stable" with a description of what changed (e.g., which fallback coverage was hardened, which checks were added or improved such as "hardened older gateway fallback coverage, added OpenShell gateway upgrade checks, improved crash-loop detection tests, and expanded Brev GPU bridge gateway traffic coverage"), and replace "OpenClaw compatibility is more resilient" with specific compatibility changes (e.g., "normalized Kimi mixed tool calls, tolerated OpenClaw JSON envelope variations in tests, improved runtime dependency handling across filesystem boundaries, and added classification for OpenClaw patch drift during image builds"); use the exact phrases shown in the diff ("Gateway upgrade and fallback paths are more stable" and "OpenClaw compatibility is more resilient") to locate the bullets and substitute concrete behavior details without superlative adjectives.
18-27: ⚡ Quick winSplit sentences onto separate source lines.
Line 18 through Line 27 place multiple sentences on single lines; the docs style requires one sentence per line for diff readability.
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/about/release-notes.mdx` around lines 18 - 27, The release-notes bullet lines contain multiple sentences per source line; edit the relevant bullet paragraphs (e.g., the line starting "Gateway failures now fail faster..." and subsequent lines in this block) so each sentence is on its own source line (one sentence per line) to satisfy the "one sentence per line" docs style; split sentences, keeping the existing order and punctuation, and ensure no new semantic changes are introduced.docs/manage-sandboxes/backup-restore.mdx (1)
59-59: ⚡ Quick winEnd the sentence with a period, not a colon.
Line 59 is a sentence but ends with
:. Use a period, then place the code block on the next line.As per coding guidelines: “Every sentence must end with a period.”
🤖 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/manage-sandboxes/backup-restore.mdx` at line 59, The sentence "If the destination sandbox already exists, NemoClaw refuses to overwrite it unless you pass `--force`:" should end with a period instead of a colon; change the trailing ":" to "." and ensure the following code block begins on the next line (i.e., terminate the sentence with a period and place the fenced code block after a blank line or newline so the sentence and code block are separate).
🤖 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 @.agents/skills/nemoclaw-user-reference/references/commands.md:
- Around line 316-335: The README contains a duplicated "nemoclaw <name> exec"
section; remove the redundant copy and keep a single canonical block for the
command (including the usage, examples, explanatory paragraph about
HOME=/sandbox and behavior versus docker exec, and the flags table). Locate both
occurrences (one around the shown block and the other around the 419-434
region), delete the duplicate content, and ensure the remaining section
preserves the examples, the note about forwarding arguments after --, the
exit-code behavior, and the flags table (`--workdir`, `--tty/--no-tty`,
`--timeout`) so no information is lost.
In `@docs/project.json`:
- Line 1: Add an SPDX license header as the very first line of the JSON file to
satisfy the repo rule; open the file that contains the "name" and "version" keys
(the docs/project.json content shown) and prepend a comment-style SPDX string
(e.g. /* SPDX-License-Identifier: Apache-2.0 */) as the first line so the header
appears before the existing JSON object.
---
Nitpick comments:
In `@docs/about/release-notes.mdx`:
- Around line 19-20: Reword the two release-note bullets to remove marketing
superlatives and state concrete, testable behavior: replace "Gateway upgrade and
fallback paths are more stable" with a description of what changed (e.g., which
fallback coverage was hardened, which checks were added or improved such as
"hardened older gateway fallback coverage, added OpenShell gateway upgrade
checks, improved crash-loop detection tests, and expanded Brev GPU bridge
gateway traffic coverage"), and replace "OpenClaw compatibility is more
resilient" with specific compatibility changes (e.g., "normalized Kimi mixed
tool calls, tolerated OpenClaw JSON envelope variations in tests, improved
runtime dependency handling across filesystem boundaries, and added
classification for OpenClaw patch drift during image builds"); use the exact
phrases shown in the diff ("Gateway upgrade and fallback paths are more stable"
and "OpenClaw compatibility is more resilient") to locate the bullets and
substitute concrete behavior details without superlative adjectives.
- Around line 18-27: The release-notes bullet lines contain multiple sentences
per source line; edit the relevant bullet paragraphs (e.g., the line starting
"Gateway failures now fail faster..." and subsequent lines in this block) so
each sentence is on its own source line (one sentence per line) to satisfy the
"one sentence per line" docs style; split sentences, keeping the existing order
and punctuation, and ensure no new semantic changes are introduced.
In `@docs/manage-sandboxes/backup-restore.mdx`:
- Line 59: The sentence "If the destination sandbox already exists, NemoClaw
refuses to overwrite it unless you pass `--force`:" should end with a period
instead of a colon; change the trailing ":" to "." and ensure the following code
block begins on the next line (i.e., terminate the sentence with a period and
place the fenced code block after a blank line or newline so the sentence and
code block are separate).
🪄 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: 03bcc6b7-df17-4943-9dda-51aceeb93bf3
📒 Files selected for processing (15)
.agents/skills/nemoclaw-user-configure-inference/SKILL.md.agents/skills/nemoclaw-user-get-started/references/prerequisites.md.agents/skills/nemoclaw-user-manage-sandboxes/references/backup-restore.md.agents/skills/nemoclaw-user-manage-sandboxes/references/messaging-channels.md.agents/skills/nemoclaw-user-overview/references/release-notes.md.agents/skills/nemoclaw-user-reference/references/architecture.md.agents/skills/nemoclaw-user-reference/references/cli-selection-guide.md.agents/skills/nemoclaw-user-reference/references/commands.md.agents/skills/nemoclaw-user-reference/references/troubleshooting.mddocs/about/release-notes.mdxdocs/manage-sandboxes/backup-restore.mdxdocs/project.jsondocs/reference/commands.mdxdocs/reference/troubleshooting.mdxdocs/versions1.json
| ### `nemoclaw <name> exec` | ||
|
|
||
| Run a single command non-interactively in a running sandbox via the OpenShell exec endpoint. | ||
| The command runs as the sandbox user with `HOME=/sandbox`, so in-sandbox tooling resolves NemoClaw-provisioned config under `/sandbox/.openclaw` the same way it does for `connect` and `openshell sandbox connect`. | ||
| This is the supported substitute for `docker exec` on the sandbox container; raw `docker exec` runs as root and lands on `HOME=/root`, where the agent config is not present and `openclaw agent` falls back to its built-in defaults. | ||
|
|
||
| ```console | ||
| $ nemoclaw my-assistant exec -- openclaw agent -m "What is 2+2?" | ||
| $ nemoclaw my-assistant exec --workdir /sandbox/workspace -- ls -la | ||
| ``` | ||
|
|
||
| Everything after `--` is forwarded verbatim to the sandbox command, including flags the inner command needs. | ||
| The exit code is the remote command's exit code. | ||
|
|
||
| | Flag | Description | | ||
| |------|-------------| | ||
| | `--workdir <dir>` | Working directory inside the sandbox | | ||
| | `--tty` / `--no-tty` | Allocate a pseudo-terminal; defaults to auto-detection (on when stdin and stdout are terminals) | | ||
| | `--timeout <seconds>` | Timeout in seconds (`0` means no timeout) | | ||
|
|
There was a problem hiding this comment.
Consolidate duplicated nemoclaw <name> exec sections.
The command is documented twice in the same page, which creates conflicting-maintenance risk and user confusion. Keep one canonical section and remove the duplicate.
Also applies to: 419-434
🤖 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
316 - 335, The README contains a duplicated "nemoclaw <name> exec" section;
remove the redundant copy and keep a single canonical block for the command
(including the usage, examples, explanatory paragraph about HOME=/sandbox and
behavior versus docker exec, and the flags table). Locate both occurrences (one
around the shown block and the other around the 419-434 region), delete the
duplicate content, and ensure the remaining section preserves the examples, the
note about forwarding arguments after --, the exit-code behavior, and the flags
table (`--workdir`, `--tty/--no-tty`, `--timeout`) so no information is lost.
PR Review AdvisorRecommendation: blocked This is an automated advisory review. A human maintainer must make the final merge decision. Limitations: Review is based on provided trusted GitHub context and the supplied truncated diff; no scripts, tests, package-manager commands, or docs builds were executed by this advisor.; Line-specific validation is limited to visible diff excerpts and trusted review-thread metadata.; No linked issues were present in trusted metadata; acceptance mapping uses PR body clauses and trusted issue/review comments instead of linked issue bodies/comments.; PR-provided title/body/comments are treated as untrusted evidence and were not followed as instructions. Full advisor summaryPR Review AdvisorBase: Docs-only v0.0.49 refresh appears low runtime risk, but merge is blocked by GitHub merge state and an unresolved review thread; the generated command skill also still has duplicated exec documentation. Gate status
🔴 Blockers
🟡 Warnings
🔵 Suggestions
Acceptance coverage
Security review
Test / E2E status
✅ What looks good
Review completeness
|
Audit found the v0.0.49 release notes promised behaviors that did not ship or were never implemented. Realign to the actual code on main. - Drop the EXDEV runtime-deps claim: #3820 was reverted by #4051 in this release window, so the behavior is not present. - Drop the "skip broad permission repair" claim: no corresponding commit in v0.0.48..v0.0.49. - Rewrite the gateway probe classifier list in release-notes.mdx and commands.mdx to match the real states emitted by src/lib/status-command-deps.ts (named gateway unreachable / present but not Connected / pointing at a different name / not configured). The previous "non-JSON health response" example did not exist in code. - Expand the channel-removal bullet to describe #4001's user-visible teardown (durable QR-paired state wipe, abort-on-failure, config.json re-sync) in addition to the existing #4013 sync. - Add bullets for user-visible PRs that were merged in the release window but missing from the notes: #3854 (restricted dmesg in debug output), #3866 (shields status and logs --tail UX), #3984 (Hermes messaging policy scoping), and #4011 (Docker group security note). Regenerated nemoclaw-user-overview and nemoclaw-user-reference skills from the updated docs via scripts/docs-to-skills.py. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
Refreshes the NemoClaw docs for the v0.0.49 hardening release, including release notes, command reference updates, troubleshooting guidance, version metadata, and regenerated user skills.
Changes
docs/about/release-notes.mdx: Adds the v0.0.49 hardening release summary covering gateway reliability, status/doctor/shields and debug UX, OpenClaw compatibility, messaging channel teardown, Hermes policy scoping, snapshots, source installs and Docker group security note, GPU preflight, CLI usage, E2E, and CI improvements.docs/manage-sandboxes/backup-restore.mdxanddocs/reference/commands.mdx: Documentssnapshot restore --tooverwrite protection and the--forceopt-in.docs/reference/commands.mdx: Documents missing channel argument usage, sandbox-scoped custom preset matching, session policy preset sync, and gateway failure classification (uses the real probe states fromsrc/lib/status-command-deps.ts).docs/reference/troubleshooting.mdx: Adds guidance for gateway-downconnect, source checkout OpenShell bootstrapping, WDDM placeholder GPU names, and Jetson sandbox GPU passthrough.docs/project.json,docs/versions1.json,.agents/skills/nemoclaw-user-*: Bumps docs metadata to 0.0.49 and refreshes generated user skills from the Fern docs.Type of Change
Verification
npx prek run --all-filespassesnpm testpassesmake docsbuilds without warnings (doc changes only)`make docs` was attempted locally but did not complete because `npm` returned `403 Forbidden` while fetching `fern-api` from `registry.npmjs.org` in the sandboxed environment.
Signed-off-by: Miyoung Choi miyoungc@nvidia.com
Summary by CodeRabbit
Documentation
--tocloning and--forceoverwrite requirementsChores