Skip to content

fix(plugin): activate nemoclaw slash command at startup#4450

Merged
ericksoa merged 5 commits into
mainfrom
fix/nemoclaw-slash-command-startup-activation
May 29, 2026
Merged

fix(plugin): activate nemoclaw slash command at startup#4450
ericksoa merged 5 commits into
mainfrom
fix/nemoclaw-slash-command-startup-activation

Conversation

@zyang-dev

@zyang-dev zyang-dev commented May 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes a regression with newer OpenClaw lazy startup activation where the NemoClaw plugin could be installed and enabled but never imported, leaving /nemoclaw unregistered in the TUI. This PR declares NemoClaw's runtime slash command metadata and opts the plugin into startup activation.

Related Issue

Fixes #2021

Changes

  • Add commandAliases metadata for the /nemoclaw runtime slash command.
  • Add activation.onStartup: true so OpenClaw imports NemoClaw during gateway startup.
  • Update the OpenClaw plugin manifest schema for the new metadata.
  • Add regression coverage for the NemoClaw slash command and startup activation metadata.

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)

Signed-off-by: zyang-dev 267119621+zyang-dev@users.noreply.github.com

Summary by CodeRabbit

  • New Features

    • Plugins can now define command aliases for enhanced command availability.
    • Plugins can opt into automatic startup activation on system initialization.
    • Configuration schema updated to support command alias registration and activation metadata.
  • Tests

    • Added schema validation tests covering new alias and activation rules and related rejection cases.

Review Change Stack

Signed-off-by: zyang-dev <267119621+zyang-dev@users.noreply.github.com>
@zyang-dev zyang-dev self-assigned this May 28, 2026
@coderabbitai

coderabbitai Bot commented May 28, 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: 40619ae1-b82a-4042-a6ec-5dcd156a8fc7

📥 Commits

Reviewing files that changed from the base of the PR and between 1e119c5 and d4548f7.

📒 Files selected for processing (2)
  • schemas/openclaw-plugin.schema.json
  • test/validate-config-schemas.test.ts

📝 Walkthrough

Walkthrough

Schema adds top-level commandAliases and activation fields (now required in the root schema); nemoclaw/openclaw.plugin.json declares a runtime-slash alias and activation.onStartup: true; tests are extended to accept valid fixtures and reject missing/extra activation and alias properties.

Changes

Command Alias and Startup Activation

Layer / File(s) Summary
Schema contract for command aliases and activation
schemas/openclaw-plugin.schema.json
Root required now includes commandAliases and activation. Adds commandAliases as an array of objects requiring name and kind with kind enum runtime-slash, and adds activation object requiring boolean onStartup. Both nested objects set additionalProperties: false.
Plugin manifest and schema tests
nemoclaw/openclaw.plugin.json, test/validate-config-schemas.test.ts
Plugin manifest declares a nemoclaw commandAliases entry with kind: "runtime-slash" and activation.onStartup: true. Tests update validPluginFixture, add acceptance test for the new metadata, and add rejection tests for missing kind, empty activation, and activation with unsupported properties.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested labels

fix

Suggested reviewers

  • ericksoa
  • cv

Poem

🐰 I hopped through JSON fields at dawn,
Declared a slash where commands are drawn,
A startup pulse, a tiny cheer,
Tests nod, the schema now is clear,
Plugins wake — the meadow's near. ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main change: adding startup activation for the NemoClaw slash command. It directly aligns with the PR's primary objective of fixing the regression by enabling plugin activation at startup.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/nemoclaw-slash-command-startup-activation

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

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint skipped: no ESLint configuration detected in root package.json. To enable, add eslint to devDependencies.


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

@zyang-dev zyang-dev added the v0.0.54 Release target label May 28, 2026
@github-actions

github-actions Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: cloud-e2e
Optional E2E: openclaw-tui-chat-correlation-e2e, launchable-smoke-e2e

Dispatch hint: cloud-e2e

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • cloud-e2e (high): Runs install.sh, onboards a fresh OpenClaw sandbox, starts the live Gateway/runtime, and performs an OpenClaw-mediated inference turn. This is the best existing merge-blocking check that the changed plugin manifest does not break startup, sandbox creation, or the core assistant flow.

Optional E2E

  • openclaw-tui-chat-correlation-e2e (high): Exercises the OpenClaw Gateway websocket/chat path against a fresh cloud-backed sandbox. Useful adjacent confidence for runtime command/chat registration changes, but it does not appear to directly assert the new /nemoclaw slash alias.
  • launchable-smoke-e2e (medium): Validates the community launchable install path builds the CLI and plugin and onboards a sandbox. Useful because openclaw.plugin.json is packaged with the plugin, but cloud-e2e is the stronger required runtime check for this PR.

New E2E recommendations

  • OpenClaw runtime slash command aliases (high): No existing E2E found that directly sends or resolves the new runtime-slash /nemoclaw alias after Gateway startup and verifies it maps to the NemoClaw plugin handlers without colliding with the root CLI command.
    • Suggested test: Add an OpenClaw Gateway/chat E2E that onboards a fresh sandbox, waits for onStartup plugin activation, invokes the /nemoclaw runtime slash command through the same surface users use, and asserts the NemoClaw plugin handles it successfully.
  • Plugin activation metadata (medium): Existing E2E startup checks can catch gross startup failures, but they do not explicitly assert that activation.onStartup caused the NemoClaw plugin to be imported during Gateway startup.
    • Suggested test: Add a targeted assertion to an OpenClaw startup E2E that inspects Gateway/plugin registry state or logs for the NemoClaw plugin being loaded from openclaw.plugin.json on startup.

Dispatch hint

  • Workflow: nightly-e2e.yaml
  • jobs input: cloud-e2e

@github-actions

github-actions Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor

E2E Scenario Advisor Recommendation

Required scenario E2E: None
Optional scenario E2E: None

Workflow run

Full scenario advisor summary

E2E Scenario Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required scenario E2E

  • None. No scenario workflow, scenario metadata, scenario runtime, or validation-suite files changed.

Optional scenario E2E

  • None.

Relevant changed files

  • None.

@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor

Actionable comments posted: 0

@github-actions

github-actions Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor

Findings: 1 needs attention, 5 worth checking, 0 nice ideas
Since last review: 0 prior items resolved, 5 still apply, 0 new items found

Review findings

🛠️ Needs attention

  • Schema tests do not prove /nemoclaw reaches the OpenClaw command router (test/validate-config-schemas.test.ts:523): The linked issue is about user-visible runtime behavior: typing /nemoclaw should show autocomplete/subcommand hints, and pressing Enter should execute the command or display help. This PR only validates that the NemoClaw manifest contains commandAliases and activation.onStartup. In this checkout, commandAliases, activation.onStartup, and runtime-slash only appear in the changed manifest/schema/tests; no in-repo production consumer was found that imports the plugin on startup, populates slashScope, feeds autocomplete, or routes /nemoclaw status to handleSlashCommand(). The added tests would still pass if OpenClaw ignored these fields and the TUI behavior remained broken.
    • Recommendation: Add a regression at the closest available runtime boundary that fails without the fix and proves /nemoclaw is registered after startup. Good targets include a generated OpenClaw config/slashScope fixture, plugin-loader/activation contract test, command-router test, or a test that invokes /nemoclaw status through the same path used by OpenClaw and reaches the existing handler. If the behavior depends entirely on an external OpenClaw contract, pin that contract with a fixture/schema expectation in this repo.
    • Evidence: Issue [All Platform] /nemoclaw slash command not working in sandbox OpenClaw TUI #2021 expected: “Typing /nemoclaw should show autocomplete hints for available subcommands (status, shields, config, etc)” and “Pressing Enter should execute the command or display help output”. The latest reopen comment says openclaw.json slashScope was empty and /nemoclaw status was not processed. The PR adds schema-only tests around test/validate-config-schemas.test.ts:523-548.

🔎 Worth checking

  • Source-of-truth review needed: OpenClaw plugin manifest metadata for lazy startup activation and runtime slash routing: The advisor marked localized patch analysis as missing.
    • Recommendation: Identify the invalid state, source boundary, source-fix constraint, regression test, and removal condition before merging the localized behavior.
    • Evidence: Changed files are limited to nemoclaw/openclaw.plugin.json, schemas/openclaw-plugin.schema.json, and test/validate-config-schemas.test.ts. The linked issue's latest reopen comment specifically says slashScope remained empty and /nemoclaw status was not processed.
  • Manifest metadata contract needs source-of-truth evidence (nemoclaw/openclaw.plugin.json:6): This change appears to localize a fix for OpenClaw lazy startup activation and runtime slash routing by adding manifest metadata, but the repo does not show where the invalid installed-but-not-imported state is created or where these fields are consumed. Without a pinned host contract or runtime boundary test, the metadata can drift from OpenClaw's actual source of truth while still passing this repo's schema tests.
    • Recommendation: Document or test the OpenClaw contract that consumes commandAliases and activation.onStartup. Identify why the source boundary cannot be fixed in this PR, add a regression that would fail if OpenClaw ignores these fields, and state whether this is a permanent manifest contract or a compatibility workaround with a removal condition.
    • Evidence: Only nemoclaw/openclaw.plugin.json, schemas/openclaw-plugin.schema.json, and test/validate-config-schemas.test.ts changed. Grep found no in-repo production reader for commandAliases, activation.onStartup, runtime-slash, or slashScope.
  • Startup-activated slash command lacks explicit authorization enforcement (nemoclaw/src/index.ts:345): The PR opts NemoClaw into startup activation, making the existing /nemoclaw command surface available during Gateway startup. The command registration does not set requireAuth: true, and the handler accepts PluginCommandContext.isAuthorizedSender without checking it. The commands are mostly read-only, but they can disclose sandbox/config state, endpoint/provider/model/profile details, onboard time, and rollback snapshot or backup paths.
    • Recommendation: Make authorization explicit for /nemoclaw, either by setting requireAuth: true if that is the OpenClaw host contract, or by checking ctx.isAuthorizedSender in handleSlashCommand and limiting unauthenticated callers to minimal help or denial output. Add a negative unit or contract test for unauthorized access.
    • Evidence: nemoclaw/src/index.ts registers api.registerCommand({ name: "nemoclaw", description, acceptsArgs: true, handler }) without requireAuth. nemoclaw/src/commands/slash.ts switches on subcommands without reading ctx.isAuthorizedSender. nemoclaw/openclaw.plugin.json now sets activation.onStartup: true.
  • Onboard slash output echoes credentialEnv without safe env-name validation (nemoclaw/src/commands/slash.ts:123): With /nemoclaw activated at startup, /nemoclaw onboard can echo config.credentialEnv verbatim as a credential label. slashConfigShow already treats malformed persisted credential environment values as sensitive and avoids echoing them, but slashOnboard does not reuse that guard. If persisted onboard config is malformed or tampered with, a raw token accidentally stored in credentialEnv could be displayed.
    • Recommendation: Use the same safe environment-variable-name validation/redaction logic in slashOnboard that slashConfigShow uses, and add a negative test with a malformed credentialEnv value.
    • Evidence: slashOnboard builds `Credential: $${config.credentialEnv}`. slashConfigShow validates credentialEnv with /^[A-Z_][A-Z0-9_]*$/ and displays `(configured)` for malformed values.
  • Runtime command alias names are not constrained to NemoClaw-safe command identifiers (schemas/openclaw-plugin.schema.json:45): The new schema permits any non-empty string for commandAliases[].name. Because these aliases are intended to feed runtime command routing/autocomplete in the host, an overly broad string contract can allow ambiguous, malformed, or unexpected command names to pass repository validation.
    • Recommendation: Constrain this manifest to the expected command name with const: "nemoclaw", or at least add a strict command identifier pattern such as ^[a-z][a-z0-9-]*$ and tests for malformed aliases.
    • Evidence: schemas/openclaw-plugin.schema.json defines commandAliases.items.properties.name with type string and minLength: 1 only. nemoclaw/openclaw.plugin.json uses the single expected value "nemoclaw", but the schema fixture accepts arbitrary "fixture" names and has no malformed-name rejection test.

🌱 Nice ideas

  • None.
Since last review details

Current findings:

  • Source-of-truth review needed: OpenClaw plugin manifest metadata for lazy startup activation and runtime slash routing: The advisor marked localized patch analysis as missing.
    • Recommendation: Identify the invalid state, source boundary, source-fix constraint, regression test, and removal condition before merging the localized behavior.
    • Evidence: Changed files are limited to nemoclaw/openclaw.plugin.json, schemas/openclaw-plugin.schema.json, and test/validate-config-schemas.test.ts. The linked issue's latest reopen comment specifically says slashScope remained empty and /nemoclaw status was not processed.
  • Schema tests do not prove /nemoclaw reaches the OpenClaw command router (test/validate-config-schemas.test.ts:523): The linked issue is about user-visible runtime behavior: typing /nemoclaw should show autocomplete/subcommand hints, and pressing Enter should execute the command or display help. This PR only validates that the NemoClaw manifest contains commandAliases and activation.onStartup. In this checkout, commandAliases, activation.onStartup, and runtime-slash only appear in the changed manifest/schema/tests; no in-repo production consumer was found that imports the plugin on startup, populates slashScope, feeds autocomplete, or routes /nemoclaw status to handleSlashCommand(). The added tests would still pass if OpenClaw ignored these fields and the TUI behavior remained broken.
    • Recommendation: Add a regression at the closest available runtime boundary that fails without the fix and proves /nemoclaw is registered after startup. Good targets include a generated OpenClaw config/slashScope fixture, plugin-loader/activation contract test, command-router test, or a test that invokes /nemoclaw status through the same path used by OpenClaw and reaches the existing handler. If the behavior depends entirely on an external OpenClaw contract, pin that contract with a fixture/schema expectation in this repo.
    • Evidence: Issue [All Platform] /nemoclaw slash command not working in sandbox OpenClaw TUI #2021 expected: “Typing /nemoclaw should show autocomplete hints for available subcommands (status, shields, config, etc)” and “Pressing Enter should execute the command or display help output”. The latest reopen comment says openclaw.json slashScope was empty and /nemoclaw status was not processed. The PR adds schema-only tests around test/validate-config-schemas.test.ts:523-548.
  • Manifest metadata contract needs source-of-truth evidence (nemoclaw/openclaw.plugin.json:6): This change appears to localize a fix for OpenClaw lazy startup activation and runtime slash routing by adding manifest metadata, but the repo does not show where the invalid installed-but-not-imported state is created or where these fields are consumed. Without a pinned host contract or runtime boundary test, the metadata can drift from OpenClaw's actual source of truth while still passing this repo's schema tests.
    • Recommendation: Document or test the OpenClaw contract that consumes commandAliases and activation.onStartup. Identify why the source boundary cannot be fixed in this PR, add a regression that would fail if OpenClaw ignores these fields, and state whether this is a permanent manifest contract or a compatibility workaround with a removal condition.
    • Evidence: Only nemoclaw/openclaw.plugin.json, schemas/openclaw-plugin.schema.json, and test/validate-config-schemas.test.ts changed. Grep found no in-repo production reader for commandAliases, activation.onStartup, runtime-slash, or slashScope.
  • Startup-activated slash command lacks explicit authorization enforcement (nemoclaw/src/index.ts:345): The PR opts NemoClaw into startup activation, making the existing /nemoclaw command surface available during Gateway startup. The command registration does not set requireAuth: true, and the handler accepts PluginCommandContext.isAuthorizedSender without checking it. The commands are mostly read-only, but they can disclose sandbox/config state, endpoint/provider/model/profile details, onboard time, and rollback snapshot or backup paths.
    • Recommendation: Make authorization explicit for /nemoclaw, either by setting requireAuth: true if that is the OpenClaw host contract, or by checking ctx.isAuthorizedSender in handleSlashCommand and limiting unauthenticated callers to minimal help or denial output. Add a negative unit or contract test for unauthorized access.
    • Evidence: nemoclaw/src/index.ts registers api.registerCommand({ name: "nemoclaw", description, acceptsArgs: true, handler }) without requireAuth. nemoclaw/src/commands/slash.ts switches on subcommands without reading ctx.isAuthorizedSender. nemoclaw/openclaw.plugin.json now sets activation.onStartup: true.
  • Onboard slash output echoes credentialEnv without safe env-name validation (nemoclaw/src/commands/slash.ts:123): With /nemoclaw activated at startup, /nemoclaw onboard can echo config.credentialEnv verbatim as a credential label. slashConfigShow already treats malformed persisted credential environment values as sensitive and avoids echoing them, but slashOnboard does not reuse that guard. If persisted onboard config is malformed or tampered with, a raw token accidentally stored in credentialEnv could be displayed.
    • Recommendation: Use the same safe environment-variable-name validation/redaction logic in slashOnboard that slashConfigShow uses, and add a negative test with a malformed credentialEnv value.
    • Evidence: slashOnboard builds `Credential: $${config.credentialEnv}`. slashConfigShow validates credentialEnv with /^[A-Z_][A-Z0-9_]*$/ and displays `(configured)` for malformed values.
  • Runtime command alias names are not constrained to NemoClaw-safe command identifiers (schemas/openclaw-plugin.schema.json:45): The new schema permits any non-empty string for commandAliases[].name. Because these aliases are intended to feed runtime command routing/autocomplete in the host, an overly broad string contract can allow ambiguous, malformed, or unexpected command names to pass repository validation.
    • Recommendation: Constrain this manifest to the expected command name with const: "nemoclaw", or at least add a strict command identifier pattern such as ^[a-z][a-z0-9-]*$ and tests for malformed aliases.
    • Evidence: schemas/openclaw-plugin.schema.json defines commandAliases.items.properties.name with type string and minLength: 1 only. nemoclaw/openclaw.plugin.json uses the single expected value "nemoclaw", but the schema fixture accepts arbitrary "fixture" names and has no malformed-name rejection test.

Workflow run details

This is an automated advisory review. A human maintainer must make the final merge decision.

@wscurran wscurran added fix integration: openclaw OpenClaw integration behavior labels May 28, 2026
@wscurran

Copy link
Copy Markdown
Contributor

cv and others added 3 commits May 28, 2026 11:31
Signed-off-by: zyang-dev <267119621+zyang-dev@users.noreply.github.com>
…up-activation' into fix/nemoclaw-slash-command-startup-activation
@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor

Actionable comments posted: 0

@cjagwani cjagwani self-assigned this May 28, 2026

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

Verified end-to-end on a clean Brev Ubuntu 22.04 + A4000 sandbox: after onboard with this PR's branch, OpenClaw 2026.5.22's startup banner prints NemoClaw registered ... Slash: /nemoclaw, and openclaw plugins list shows nemoclaw as enabled. Upstream OpenClaw does consume both commandAliases and activation.onStartup — fix is real, not schema-only. Approving.

@ericksoa ericksoa merged commit d3e0f3b into main May 29, 2026
27 checks passed
@ericksoa ericksoa deleted the fix/nemoclaw-slash-command-startup-activation branch May 29, 2026 00:10
@miyoungc miyoungc mentioned this pull request May 29, 2026
12 tasks
miyoungc added a commit that referenced this pull request May 29, 2026
## Summary
Refreshes the NemoClaw documentation for the v0.0.54 release and
regenerates user skills from the Fern MDX source. Also keeps the Fern
CLI pin current so local docs checks use the upgraded Fern version.

## Related Issue
<!-- No single related issue. This is release-prep documentation
catch-up. -->

## Changes
- #4403 -> `docs/manage-sandboxes/messaging-channels.mdx`,
`docs/reference/commands.mdx`, `docs/about/release-notes.mdx`: Document
Telegram, Discord, and Slack post-rebuild bridge verification and
summarize channel activation fixes.
- #4222 -> `docs/about/release-notes.mdx`: Include Slack generated
channel enablement in the v0.0.54 messaging summary.
- #4346 -> `docs/get-started/windows-preparation.mdx`,
`docs/about/release-notes.mdx`: Document safer Windows bootstrap
behavior for Ubuntu first-run and Docker Desktop WSL integration.
- #4416 -> `docs/inference/use-local-inference.mdx`,
`docs/about/release-notes.mdx`: Document the Docker Desktop WSL
requirement for Windows-host Ollama.
- #4442 -> `docs/about/release-notes.mdx`: Summarize the optional
NemoHermes native web dashboard and related environment variables.
- #4426 -> `docs/about/release-notes.mdx`: Summarize copy-paste recovery
hints for invalid sandbox names and missing NVIDIA API keys.
- #4459 -> `docs/about/release-notes.mdx`: Summarize the Linuxbrew
prefix fix for sandbox Homebrew usage.
- #4450 -> `docs/about/release-notes.mdx`: Summarize `/nemoclaw` slash
command startup activation.
- #4468 -> `docs/about/release-notes.mdx`: Summarize scope-upgrade
approval recovery.
- #4325 -> `docs/about/release-notes.mdx`: Summarize the narrowed
`web_fetch` host-gateway allowance.
- #4474 -> `docs/about/release-notes.mdx`: Summarize Hermes Provider
smoke-check behavior for OAuth versus Nous API key setup.
- Refresh generated `.agents/skills/nemoclaw-user-*` references from
`docs/` and update `fern/fern.config.json` to Fern `5.41.2`.

## Type of Change
- [ ] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [x] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Verification
<!-- Check each item you ran and confirmed. Leave unchecked items you
skipped. Doc-only changes do not require npm test unless you ran it. -->
- [ ] `npx prek run --all-files` passes
- [ ] `npm test` passes
- [ ] Tests added or updated for new or changed behavior
- [x] No secrets, API keys, or credentials committed
- [x] Docs updated for user-facing behavior changes
- [ ] `npm run docs` builds without warnings (doc changes only)
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
<!-- DCO sign-off required by CI. Run: git config user.name && git
config user.email -->
Signed-off-by: Miyoung Choi <miyoungc@nvidia.com>

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
  * Optional NemoHermes native web dashboard (configurable port and TUI)
* GPU memory cleanup now unloads Ollama models when switching providers
or stopping services

* **Bug Fixes**
  * Improved sandbox name validation with suggested slug recovery
* Windows-host Ollama now requires Docker Desktop WSL integration and
exits with remediation guidance when unsupported

* **Documentation**
* Clarified quickstart/onboard flow, installer TTY/non‑TTY guidance,
Hermes Docker prerequisites, sandbox hardening, and channels add rebuild
checks

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/NVIDIA/NemoClaw/pull/4539?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
@wscurran wscurran added area: cli Command line interface, flags, terminal UX, or output bug-fix PR fixes a bug or regression and removed NemoClaw CLI labels Jun 3, 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 bug-fix PR fixes a bug or regression integration: openclaw OpenClaw integration behavior v0.0.54 Release target

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[All Platform] /nemoclaw slash command not working in sandbox OpenClaw TUI

5 participants