Skip to content

docs: clarify OpenShell compatibility guidance#1263

Open
13ernkastel wants to merge 6 commits intoNVIDIA:mainfrom
13ernkastel:codex/issue-1261-openshell-compatibility
Open

docs: clarify OpenShell compatibility guidance#1263
13ernkastel wants to merge 6 commits intoNVIDIA:mainfrom
13ernkastel:codex/issue-1261-openshell-compatibility

Conversation

@13ernkastel
Copy link
Copy Markdown

@13ernkastel 13ernkastel commented Apr 1, 2026

Fixes #1261

Summary

  • document the NemoClaw 0.1.0 and OpenShell 0.0.7 compatibility baseline in the README and quickstart
  • clarify that nemoclaw onboard is the supported path for creating or recreating NemoClaw-managed sandboxes
  • add an onboarding compatibility note and a small unit test so the CLI surfaces the lifecycle boundary during setup

Testing

  • npx vitest run test/onboard.test.js
  • npx eslint bin/lib/onboard.js test/onboard.test.js

Summary by CodeRabbit

  • Documentation

    • Added OpenShell compatibility guidance and interoperability table across README, quickstart, and guides; clarified that nemoclaw onboard is the supported entry point and warned against running specific OpenShell update/recreate/create commands directly.
  • New Features

    • Show an OpenShell compatibility notice during onboarding to indicate matched or mismatched CLI/runtime versions.
  • Tests

    • Added tests verifying compatibility notice outputs for matching, absent, and mismatched OpenShell versions.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 1, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 690d800f-b45a-4e64-acc2-efbbab1959e8

📥 Commits

Reviewing files that changed from the base of the PR and between 1f1ae97 and 965277c.

📒 Files selected for processing (6)
  • README.md
  • bin/lib/onboard.js
  • docs/about/how-it-works.md
  • docs/get-started/quickstart.md
  • docs/reference/commands.md
  • test/onboard.test.js
✅ Files skipped from review due to trivial changes (4)
  • docs/about/how-it-works.md
  • docs/reference/commands.md
  • README.md
  • docs/get-started/quickstart.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • bin/lib/onboard.js

📝 Walkthrough

Walkthrough

Adds OpenShell compatibility documentation and warnings (pinning NemoClaw 0.1.0 to OpenShell 0.0.7), a new exported getOpenshellCompatibilityNotice() used during nemoclaw onboard gateway startup, and tests validating notice output. Documentation now recommends using nemoclaw onboard for sandbox lifecycle operations.

Changes

Cohort / File(s) Summary
Documentation & Guidance
README.md, docs/get-started/quickstart.md, docs/about/how-it-works.md, docs/reference/commands.md
Added OpenShell compatibility statement and table mapping NemoClaw 0.1.0 → OpenShell 0.0.7; inserted warnings and operational guidance to prefer nemoclaw onboard and avoid direct openshell update/recreate/sandbox commands.
Onboard CLI Logic
bin/lib/onboard.js
Added semver helpers and a NemoClaw→OpenShell baseline mapping; implemented and exported getOpenshellCompatibilityNotice(version = null); fetches gatewayEnv earlier and emits the compatibility notice in startGatewayWithOptions() before gateway health polling; removed a shadowed gatewayEnv redeclaration.
Tests
test/onboard.test.js
Imported getOpenshellCompatibilityNotice; added assertions for notice output when pinned, absent, and mismatched OpenShell versions; added structural test ensuring the notice call appears before the early-return gateway health check in startGatewayWithOptions.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

Poem

🐰 I nudged a note where shells align,
"Stick to 0.0.7"—a carrot-sign.
Onboard hops, the gateway sees,
No surprise when sandboxes breeze. 🥕

🚥 Pre-merge checks | ✅ 2 | ❌ 3

❌ Failed checks (2 warnings, 1 inconclusive)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR partially addresses the linked issue #1261 by documenting the version dependency and clarifying CLI boundaries, but lacks runtime/version checks to detect incompatible versions or refuse to start. Implement version detection logic to warn or refuse startup when an incompatible OpenShell version is detected, as required by issue #1261 objective 4.
Docstring Coverage ⚠️ Warning Docstring coverage is 27.27% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'docs: clarify OpenShell compatibility guidance' is overly broad and does not capture the main change, which includes implementation of compatibility detection logic and unit tests, not just documentation. Consider a more specific title that reflects all key changes, such as 'Add OpenShell compatibility baseline detection and documentation' or similar.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Out of Scope Changes check ✅ Passed All changes align with addressing the OpenShell compatibility issue #1261: documentation updates, compatibility notice implementation, and corresponding tests are all in scope.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (2)
docs/reference/commands.md (1)

69-69: Switch the validation clause to active voice.

Line 69 uses passive voice (“was validated against”); docs style requires active wording.

As per coding guidelines: docs/**: Active voice required. Flag passive constructions.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/reference/commands.md` at line 69, The sentence uses passive voice
("NemoClaw 0.1.0 was validated against"); change it to active voice by rewriting
the clause to something like "than the OpenShell release that NemoClaw 0.1.0
validates against" (locate the sentence containing "NemoClaw 0.1.0 was validated
against" in docs/reference/commands.md and replace that passive clause with an
active construction referencing NemoClaw 0.1.0 validating the release).
docs/get-started/quickstart.md (1)

57-57: Use active, present-tense phrasing for the compatibility baseline.

Line 57 uses passive past tense (“was validated”), which conflicts with the docs style requirements.

As per coding guidelines: docs/**: Active voice required. Flag passive constructions. and docs/**: Present tense. Flag future tense ("will") in descriptions of current behavior.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/get-started/quickstart.md` at line 57, Summary: The compatibility
sentence uses passive past tense; change it to active present-tense. Replace the
current text "NemoClaw 0.1.0 was validated with OpenShell 0.0.7." with an active
present-tense phrasing such as "NemoClaw 0.1.0 works with OpenShell 0.0.7." or
"NemoClaw 0.1.0 validates against OpenShell 0.0.7." Update that single sentence
in the quickstart paragraph to use active voice and present tense to comply with
the docs style rules.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@bin/lib/onboard.js`:
- Around line 2159-2161: The compatibility notice loop using
getOpenshellCompatibilityNotice(gatewayEnv.IMAGE_TAG || null) is never reached
when startGatewayWithOptions returns early on healthy reuse; move or duplicate
the notice emission so it always runs regardless of gateway reuse. Specifically,
call getOpenshellCompatibilityNotice and log each line before invoking
startGatewayWithOptions (or ensure startGatewayWithOptions invokes a
callback/hook that prints the same lines on both new-start and healthy-reuse
paths) so the lifecycle boundary message is always printed.
- Around line 522-528: The getOpenshellCompatibilityNotice function currently
always returns informational text; update it to detect incompatible OpenShell
versions by comparing the passed version (version param) against the supported
NemoClaw↔OpenShell mapping (e.g., a supportedVersions array or mapping constant
you add) using semantic version checks (semver.satisfies or equivalent) and
return a warning message (or an array with a prominent warning line) when the
version does not satisfy the supported range; keep the existing informational
lines when compatible and ensure the function still handles null/unknown version
by returning a neutral notice.

---

Nitpick comments:
In `@docs/get-started/quickstart.md`:
- Line 57: Summary: The compatibility sentence uses passive past tense; change
it to active present-tense. Replace the current text "NemoClaw 0.1.0 was
validated with OpenShell 0.0.7." with an active present-tense phrasing such as
"NemoClaw 0.1.0 works with OpenShell 0.0.7." or "NemoClaw 0.1.0 validates
against OpenShell 0.0.7." Update that single sentence in the quickstart
paragraph to use active voice and present tense to comply with the docs style
rules.

In `@docs/reference/commands.md`:
- Line 69: The sentence uses passive voice ("NemoClaw 0.1.0 was validated
against"); change it to active voice by rewriting the clause to something like
"than the OpenShell release that NemoClaw 0.1.0 validates against" (locate the
sentence containing "NemoClaw 0.1.0 was validated against" in
docs/reference/commands.md and replace that passive clause with an active
construction referencing NemoClaw 0.1.0 validating the release).
🪄 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: Pro

Run ID: be09412d-9cfa-43b7-bc2c-f24b389173bc

📥 Commits

Reviewing files that changed from the base of the PR and between 97038c0 and c7917a3.

📒 Files selected for processing (6)
  • README.md
  • bin/lib/onboard.js
  • docs/about/how-it-works.md
  • docs/get-started/quickstart.md
  • docs/reference/commands.md
  • test/onboard.test.js

@wscurran wscurran added documentation Improvements or additions to documentation Getting Started Use this label to identify setup, installation, or onboarding issues. OpenShell Support for OpenShell, a safe, private runtime for autonomous AI agents labels Apr 1, 2026
@wscurran
Copy link
Copy Markdown
Contributor

wscurran commented Apr 1, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation Getting Started Use this label to identify setup, installation, or onboarding issues. OpenShell Support for OpenShell, a safe, private runtime for autonomous AI agents

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrading OpenShell independently breaks NemoClaw sandbox — version coupling should be documented

2 participants