Description
Description
nemoclaw start passes SANDBOX_NAME= to start-services.sh, which writes PID files under /tmp/nemoclaw-services-/. However, nemoclaw status and nemoclaw stop call the same script without SANDBOX_NAME, so the script falls back to default and looks in /tmp/nemoclaw-services-default/ — a different directory. As a result:
nemoclaw status always shows services as stopped, even when they are running.nemoclaw stop cannot find or kill the running processes.
Environment
| Item |
Version / detail |
| Device |
macos |
| Node.js |
(e.g. v20.x / v22.x — fill as on device) |
| OpenShell CLI |
0.0.19 (or your version) |
| NemoClaw |
v0.0.3 |
| OpenClaw |
2026.3.11 (if relevant) |
Steps to reproduce
nemoclaw onboard — create a sandbox with any non-default name (e.g. test-slack1).export TELEGRAM_BOT_TOKEN=... && export NVIDIA_API_KEY=...nemoclaw start — output shows telegram-bridge started (PID …).nemoclaw status — output shows telegram-bridge (stopped).
Root cause
bin/nemoclaw.js:
start() (line ~780): reads registry.listSandboxes().defaultSandbox, passes SANDBOX_NAME=.stop() (line ~788): runs bash start-services.sh --stop with no SANDBOX_NAME.showStatus() (line ~863): runs bash start-services.sh --status with no SANDBOX_NAME.
Expected behavior
start, stop, and status should all resolve and pass the same SANDBOX_NAME so PID file paths are consistent.
Suggested fix
Extract a shared helper (e.g. servicesSandboxEnvPrefix()) that reads defaultSandbox from the registry once, and use it in all three call sites (start, stop, showStatus).
[NVB# 6041564]
[NVB#6041564]
Description
Description
nemoclaw startpassesSANDBOX_NAME=tostart-services.sh, which writes PID files under/tmp/nemoclaw-services-/. However,nemoclaw statusandnemoclaw stopcall the same script withoutSANDBOX_NAME, so the script falls back todefaultand looks in/tmp/nemoclaw-services-default/— a different directory. As a result:nemoclaw statusalways shows services as stopped, even when they are running.nemoclaw stopcannot find or kill the running processes.Environment
Steps to reproduce
nemoclaw onboard— create a sandbox with any non-default name (e.g.test-slack1).export TELEGRAM_BOT_TOKEN=... && export NVIDIA_API_KEY=...nemoclaw start— output showstelegram-bridge started (PID …).nemoclaw status— output showstelegram-bridge (stopped).Root cause
bin/nemoclaw.js:start()(line ~780): readsregistry.listSandboxes().defaultSandbox, passesSANDBOX_NAME=.stop()(line ~788): runsbash start-services.sh --stopwith noSANDBOX_NAME.showStatus()(line ~863): runsbash start-services.sh --statuswith noSANDBOX_NAME.Expected behavior
start,stop, andstatusshould all resolve and pass the sameSANDBOX_NAMEso PID file paths are consistent.Suggested fix
Extract a shared helper (e.g.
servicesSandboxEnvPrefix()) that readsdefaultSandboxfrom the registry once, and use it in all three call sites (start,stop,showStatus).[NVB# 6041564]
[NVB#6041564]