Skip to content

[All Platforms][Docs] reference/architecture.md plugin source tree is stale — 8 of 13 documented files do not exist in v0.0.44 #3689

@zNeill

Description

@zNeill

Description

Description

The "NemoClaw Plugin" section of docs/reference/architecture.md (rendered at
https://docs.nvidia.com/nemoclaw/latest/reference/architecture.html under the
"NemoClaw Plugin" heading) describes the plugin source layout as a directory
tree. On NemoClaw v0.0.44, 8 of the 13 source files listed in that tree do
not exist; the actual src/commands/ and src/blueprint/ contents are different
sets of files. Readers who grep / open the listed paths will hit "No such
file or directory" for the majority of entries.

Two other file-tree blocks lower on the same page — the nemoclaw-blueprint/
repo tree and the nemoclaw/src/blueprint/ runner tree — are accurate; drift
is isolated to the plugin-source tree under "NemoClaw Plugin".
Environment
Device:        ipp2-1558 (10.176.178.100), x86_64 server, 32 vCPU / 125 GB RAM, NVIDIA A100 80GB PCIe
OS:            Ubuntu 24.04.4 LTS (Linux 6.17.0-23-generic)
Architecture:  x86_64
Node.js:       v22.x (installed via nvm by NemoClaw installer)
npm:           bundled
Docker:        29.5.0
OpenShell CLI: 0.0.39
NemoClaw:      v0.0.44
OpenClaw:      N/A (docs-only bug; sandbox was onboarded with --agent hermes for unrelated verification)
Steps to Reproduce
1. Open https://docs.nvidia.com/nemoclaw/latest/reference/architecture.html
   and scroll to the "NemoClaw Plugin" section.
2. For each src/* path listed in the directory tree, check whether it exists
   in the v0.0.44 source:
     cd ~/.nemoclaw/source/nemoclaw
     for f in src/cli.ts src/commands/launch.ts src/commands/connect.ts \
              src/commands/status.ts src/commands/logs.ts \
              src/blueprint/resolve.ts src/blueprint/fetch.ts \
              src/blueprint/verify.ts src/blueprint/exec.ts; do
       [ -e "$f" ] && echo "OK $f" || echo "MISSING $f"
     done
3. Compare the documented tree against the real directory contents:
     ls src/commands/    # actual: config-show.ts migration-state.ts shields-status.ts slash.ts
     ls src/blueprint/   # actual: private-networks.ts runner.ts snapshot.ts ssrf.ts state.ts
Expected Result
Every src/* path listed in the architecture.md plugin tree exists in the
source tree at the documented version, OR the section is rewritten in
language that does not pin specific file names.
Actual Result
Step 2 output:
  MISSING src/cli.ts
  MISSING src/commands/launch.ts
  MISSING src/commands/connect.ts
  MISSING src/commands/status.ts
  MISSING src/commands/logs.ts
  MISSING src/blueprint/resolve.ts
  MISSING src/blueprint/fetch.ts
  MISSING src/blueprint/verify.ts
  MISSING src/blueprint/exec.ts

Step 3 output (real layout):
  src/commands/   config-show.ts migration-state.ts shields-status.ts slash.ts
  src/blueprint/  private-networks.ts runner.ts snapshot.ts ssrf.ts state.ts

Of the 13 entries in the documented tree, only 5 exist as written:
  ✓ src/index.ts
  ✓ src/runtime-context.ts
  ✓ src/commands/slash.ts
  ✓ src/blueprint/state.ts
  ✓ openclaw.plugin.json
  ✓ package.json
(2 of these are non-src entries that are stable.)
Logs
Not captured — documentation accuracy bug, no runtime logs.
Suggested Fix
Two options:

1. Refresh the tree to match the v0.0.44 layout, e.g.:

   nemoclaw/
   ├── src/
   │   ├── index.ts                Plugin entry: registers commands + runtime context
   │   ├── runtime-context.ts      Sandbox and policy context injection
   │   ├── commands/
   │   │   ├── slash.ts            /nemoclaw chat command handler
   │   │   ├── shields-status.ts   /nemoclaw shields status in-sandbox readout
   │   │   ├── config-show.ts      /nemoclaw config show readout
   │   │   └── migration-state.ts  state-migration helper for in-sandbox use
   │   └── blueprint/
   │       ├── runner.ts           CLI runner: plan / apply / status / rollback
   │       ├── ssrf.ts             SSRF endpoint validation
   │       ├── private-networks.ts RFC1918 / link-local guard
   │       ├── snapshot.ts         Migration snapshot / restore lifecycle
   │       └── state.ts            Persistent run state management
   ├── openclaw.plugin.json        Plugin manifest
   └── package.json                Commands declared under openclaw.extensions

2. Drop the explicit file-by-file tree and replace it with a 2-sentence
   description that names only the entry points (index.ts, runtime-context.ts)
   and the conceptual sub-folders (commands/, blueprint/). This style is what
   the rest of the page already uses for the gateway / sandbox modules and
   does not rot when files are reorganized.

Bug Details

Field Value
Priority Unprioritized
Action Dev - Open - To fix
Disposition Open issue
Module Machine Learning - NemoClaw
Keyword NemoClaw, NemoClaw_Docs, NEMOCLAW_GH_SYNC_APPROVAL

[NVB#6186437]

Metadata

Metadata

Assignees

Labels

NV QABugs found by the NVIDIA QA TeamPRRPRR recommendation trackingarea: docsDocumentation, examples, guides, or docs buildv0.0.65Release target

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions