Skip to content

Latest commit

 

History

History
163 lines (124 loc) · 10.6 KB

File metadata and controls

163 lines (124 loc) · 10.6 KB
title Update Sandboxes
sidebar-title Update Sandboxes
description Update the NemoClaw host CLI and reconcile existing sandboxes with the maintained release.
description-agent Explains the maintained-release update workflow, backup requirements, and sandbox reconciliation behavior. Use when upgrading NemoClaw and existing sandboxes.
keywords
nemoclaw update
nemoclaw upgrade-sandboxes
maintained release
content
type
how_to
skill
priority
40

Update the host CLI first, then check whether existing sandboxes need rebuilds. The standard installer follows the admin-promoted lkg release tag by default.

Understand Agent Version Pins

NemoClaw pins the selected agent version into the sandbox image at build time rather than updating it at runtime. Existing sandboxes do not auto-upgrade when a newer NemoClaw release ships a newer agent version. Run $$nemoclaw <name> status to see the agent version currently running in a sandbox. After updating the host CLI, run $$nemoclaw <name> rebuild to recreate the sandbox with the newer pin while preserving the agent state that NemoClaw manages.

The OpenClaw runtime build target is declared by OPENCLAW_VERSION in the NemoClaw Dockerfiles. The min_openclaw_version field in nemoclaw-blueprint/blueprint.yaml is the compatibility floor for direct blueprint consumers, so it can be lower than the Dockerfile target.

The Hermes agent manifest declares the expected Hermes version and the hermes --version probe command.

The langchain-deepagents-code agent manifest declares the expected Deep Agents Code version and the dcode --version probe command.

Use the Automatic Upgrade Path

Run the maintained installer to update the host CLI and reconcile registered sandboxes.

OpenShell 0.0.101 limits a routed sandbox name to 19 characters and rejects consecutive hyphens. A NemoClaw sandbox name must contain 1 to 19 characters. It must start with a lowercase letter, use lowercase letters, numbers, and single internal hyphens, and end with a letter or number. Before the OpenShell upgrade, the installer checks registered sandboxes for the selected gateway. If the installer finds incompatible names, it lists each name and exits before it can:
  • Prepare the NemoClaw CLI for the upgrade.
  • Start a backup of the registered sandboxes.
  • Retire the selected OpenShell gateway.
  • Install OpenShell 0.0.101.
  • Recreate a sandbox.

NemoClaw does not automatically truncate or change the sandbox name. Use the installed NemoClaw and OpenShell versions to create a replacement sandbox with a compatible name. Then use Transfer State Manually to move the required state into the replacement sandbox. After you verify the transferred state, destroy the incompatible sandbox with the installed NemoClaw and OpenShell versions. Then rerun the installer. If you manually retired the gateway, restore the previously installed OpenShell version and its gateway before you transfer the sandbox state.

curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash
$$nemoclaw upgrade-sandboxes --check

If a support workflow asks you to pass the maintained tag explicitly, clear any inherited NEMOCLAW_INSTALL_REF and set NEMOCLAW_INSTALL_TAG on the bash side of the install pipeline.

curl -fsSL https://www.nvidia.com/nemoclaw.sh | NEMOCLAW_INSTALL_REF= NEMOCLAW_INSTALL_TAG=lkg bash

During the automatic upgrade path, the installer prepares the current NemoClaw CLI without replacing OpenShell and requires a fresh backup of every registered sandbox. If any sandbox is skipped or fails, the installer exits before it changes the gateway. After backup, the installer requires any existing OpenShell executable it will use to report a version, then compares that version with the supported range declared by the prepared current source. It retires the running gateway before replacing an out-of-range OpenShell installation, keeps the gateway when the installed version is supported, and stops without retiring it when the installed version or supported range cannot be validated. On Linux, failed OpenShell lifecycle commands cause the installer to check a verified NemoClaw-managed gateway PID file for any configured gateway port. For the default gateway on port 8080, the installer first checks a verified active nemoclaw-openshell-gateway.service, then checks the PID file. The service path requires an active nemoclaw-openshell-gateway.service with a trusted unit path, NemoClaw-managed marker, file owner, and ExecStart binary. After the service or PID-file check confirms the gateway process is stopped, the installer tries to remove the selected OpenShell registration. If registration removal fails, the installer warns that onboarding will replace the stale registration. If neither fallback can verify and stop the process, the installer stops after backup, preserves every sandbox backup, and reports the failed operation. After the automatic path retires an out-of-range gateway, it forces installation of the OpenShell version pinned by the prepared source before sandbox recovery. This mandatory installation applies to source and managed install modes and cannot remain deferred after gateway retirement. If the forced installation fails, the installer does not stage a gateway service or start sandbox recovery, preserves the backups, and reports how to retry.

Resume a Manually Prepared Upgrade

Use this path only after you back up every registered sandbox and retire the gateway. Set NEMOCLAW_GATEWAY_PORT to the port for the gateway that you retired. Set NEMOCLAW_OPENSHELL_UPGRADE_PREPARED=1 on the bash side of the install pipeline when you rerun the installer.

curl -fsSL https://www.nvidia.com/nemoclaw.sh | NEMOCLAW_GATEWAY_PORT=<selected-port> NEMOCLAW_OPENSHELL_UPGRADE_PREPARED=1 bash

You can omit NEMOCLAW_GATEWAY_PORT when you prepared the default gateway on port 8080. NEMOCLAW_OPENSHELL_UPGRADE_PREPARED asserts that you completed those steps, so the installer skips the repeated backup and gateway-retirement phase before it checks whether OpenShell is installed or whether its version is in range. It reuses the latest backups, forces installation of the OpenShell version pinned by the prepared source, and starts recovery only after that installation succeeds. If the installation fails, rerun the same install-pipeline command to preserve NEMOCLAW_GATEWAY_PORT and NEMOCLAW_OPENSHELL_UPGRADE_PREPARED. Outside these forced paths, an in-range source checkout preserves an existing OpenShell installation and installs OpenShell only when it is missing.

Reconcile Registered Sandboxes

After the host CLI and OpenShell update, the installer runs $$nemoclaw upgrade-sandboxes --auto to reconcile the existing sandboxes.

During installer-driven recovery, each stale or non-Ready sandbox requires a validated latest backup. The backup's sandbox and agent identities must match the registry. The registry must also contain positive evidence that NemoClaw managed the sandbox image. The registry must contain positive evidence that NemoClaw managed the sandbox image, unless the exact-name pre-fingerprint confirmation below applies. If the replacement gateway reports a stale sandbox as Ready or Running, the installer reuses the validated pre-upgrade backup. It does not attempt another backup from the replaced legacy runtime.

For a listed pre-fingerprint OpenClaw or Hermes registry entry, the installer's explicit managed-image confirmation is the only exception to the registry evidence requirement. In a non-interactive run, set `NEMOCLAW_CONFIRM_LEGACY_MANAGED_RECREATE` to the exact JSON array of names printed by the installer, such as `["my-assistant","preserve-hermes"]`, only after you verify every named sandbox used a managed image.

Legacy managed-image confirmation never overrides recorded custom-image evidence.

A custom OpenClaw sandbox can be recovered only when the selected validated backup independently carries complete authoritative image-plugin provenance; otherwise recovery stops before deletion.

The installer attempts every eligible recovery, exits with a nonzero status if any recovery fails, and skips generic onboarding after successful recovery.

When a recorded sandbox is not observed in any phase on its recorded gateway, the recovery pass exits 0 but reports the sandbox as not found rather than recovered. This usually means a prior uninstall removed the gateway and Docker image while preserving sandboxes.json.

The installer finishes with Installation completed with warnings and tells you to run $$nemoclaw <name> destroy, then $$nemoclaw onboard, instead of claiming recovery succeeded.

Use the Manual Update Flow

Create a snapshot before a manual update.

$$nemoclaw <sandbox-name> snapshot create --name pre-upgrade
$$nemoclaw update --yes
$$nemoclaw upgrade-sandboxes --check

Use $$nemoclaw upgrade-sandboxes --check to read sandbox state without starting, recovering, or selecting a gateway. When all your registered sandboxes resolve to one recorded gateway, the command queries that gateway instead of the gateway for your current NEMOCLAW_GATEWAY_PORT.

Each rebuild destroys the old container and creates a new one while preserving the manifest-defined workspace or agent state that NemoClaw knows how to snapshot. upgrade-sandboxes --check can report a sandbox as stale because the running agent version is behind, because the managed NemoClaw image fingerprint differs from the current CLI, or both.

Custom-image sandboxes created with --from <Dockerfile> are not marked stale solely by image fingerprint, so an upgrade check does not accidentally replace them with the default image. Runtime changes outside the manifest-defined state paths, such as packages installed manually in the running container, are not preserved.

Related Topics