Skip to content

chore(deps): upgrade OpenShell runtime and SDK to 0.1.3 - #12603

Open
nvidia-nemopatch-writer[bot] wants to merge 124 commits into
mainfrom
nemopatch/openshell-upgrade/13d8cdd37d346ace/migration
Open

nvidia-nemopatch-writer[bot] wants to merge 124 commits into
mainfrom
nemopatch/openshell-upgrade/13d8cdd37d346ace/migration

Conversation

@nvidia-nemopatch-writer

@nvidia-nemopatch-writer nvidia-nemopatch-writer Bot commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Outcome

Upgrade the pinned OpenShell runtime, supervisor, gateway, and TypeScript SDK to 0.1.3. Preserve legacy volumes without automatic copying.

This PR remains a draft. The conflict-resolution update incorporates main f1dcab784d, including #13007, #13293, #13335, and #13339. The receipt update is 04dad4f06af211f019a53972d453cb5d28ada7ea. Managed-image qualification passed on 4dcfbbd06a285ce93dbc9b2623a4327430a3feda; this update records its authenticated Pi receipts. CI must evaluate the receipt update. Full E2E failures and the remaining inference migration still block approval.

Reason

OpenShell 0.1.3 changes authentication, provider routing, network mediation, and container lifecycle. The accepted upgrade requires adapting those consumers while preserving ownership and data-safety checks.

Only merged inference changes are incorporated through main. Unmerged inference PRs and separable improvements remain deferred.

Related issues

Refs #12558 for separate inference work. Main changes include #13201, #13284, and #13293. Trusted E2E runtime selection from #13335 and the credentialless inference fixture repair from #13339 are now merged.

Changes

  • Pin reviewed runtime and SDK artifacts, preserve installer trust history, and require complete gateway inventory before replacing components.
  • Adapt authentication, SDK enum validation, provider-policy checks, agent network paths, and lifecycle commands to 0.1.3. Preserve scoped credentials, privilege restrictions, ownership checks, and resource limits.
  • Preserve legacy volumes unchanged. Require verified ownership and workspace attachment approval; retain ordinary backups and explicit owned-volume deletion.
  • Initialize external-image Hermes with its selected provider and model. Use the image's existing transaction, integrity, reload, and rollback checks under the sandbox identity. Verify the original configuration digest before writing and preserve MCP configuration.
  • Read the 0.1.3 provider-list envelope and bounded continuation pages. Reject malformed responses, repeated tokens, missing providers, and ambiguous provider identities.
  • Exclude the actual native PID1 ancestor from backup quiescence while retaining checks for all other agent processes. Verify rebuilt Hermes configuration as the native sandbox user, with ownership, mode, topology, inode, writability, and lifecycle-lock checks intact.
  • Restore complete native archives through bounded SFTP from a validated private descriptor. Verify the remote archive checksum before extraction, recheck runtime authority after upload, and report owned-staging cleanup failures. Check for the host SFTP client before source maintenance or deletion.
  • Run OpenClaw maintenance through the selected OpenShell SSH configuration as the sandbox user. Keep marker ownership checks and native execution for readiness verification.
  • After verified Hermes restart, restore the external image's selected inference route through the existing guarded configuration transaction. Revalidate registered and live identity before reads and writes.
  • Use the no-copy named-volume syntax accepted by Docker and Podman for stopped-home cleanup. Preserve protected paths and resource ownership checks.
  • Incorporate feat(inference): attach OpenClaw local providers #13293 through main and reconcile the affected native local-provider documentation. Refresh the paired Pi receipts and their authority digests from successful managed-image run 38942952886 after the feat(pi): support native local inference #13007 merge.
  • Reuse the SFTP-aware restore fixture and update the stopped-cleanup mount expectation. Preserve every existing test and assertion. Include fix(e2e): bind credentialless DCode fixture to loopback #13339's loopback binding for the credentialless inference fixture.
  • Correct stale fixtures. Do not increase dependency, test-growth, or live-assertion budgets; lower the live census where applicable. Place the initializer beside its caller and use existing registry, execution, and serialization owners.

Verification

For receipt update 04dad4f06af211f019a53972d453cb5d28ada7ea:

  • Managed-image qualification passed on source 4dcfbbd06a285ce93dbc9b2623a4327430a3feda, including all-agent activation on AMD64, ARM64, and rootless Podman.
  • Collected both Pi receipts from authenticated artifacts of that successful run. Strict source-parity validation and 72 focused tests passed. Independent writer review passed.
  • Only the two receipts and their authority digests changed. Runtime repairs remain unpublished. Full E2E is not qualified.

For the preceding conflict-resolution update:

  • Merged main f1dcab784d and resolved all nine conflicts. Reconciled Pi's private custom endpoint selection with its existing credential handling; the endpoint remains a custom hosted provider.
  • The final source tree passed 338 focused tests across ten suites: 288 in nine suites plus all 50 transaction tests after correcting the temporary directory group. The first isolated attempt failed 42 ownership checks because its temporary directory inherited group wheel; the rerun used the current user’s group without changing source or assertions. CLI typecheck, reviewed runtime bundle parity, and assertion census passed.
  • The live assertion budget is below main's baseline. No test was removed and no budget exception was added for this update.
  • Documentation build passed with 125 routes, zero errors, and two warnings. Independent documentation and merge review passed.
  • The Pi image inputs changed. Subsequent managed-image run 38942952886 passed; the receipt update above records that qualification.
  • The separate SDK workspace-selector repair is saved locally and excluded from this publication. E2E repairs remain subject to the assertion audit.
  • Normal publication hooks: passed. The secret scan passed; no secrets, API keys, or credentials were added.

Previous commit evidence

For 53a694dfa08872faf78fa71d55047ea7adfa0844:

  • PR CI and managed-image qualification passed. These results do not qualify the new Pi image inputs.

  • The latest test-only repair batch passed 108 focused tests: 34 finalization/transfer, 47 privileged cleanup, and 27 hosted-inference support tests. Independent review passed.

  • Managed image qualification for 5ea4e2773 passed Docker AMD64, Docker ARM64, and rootless Podman. Each passed managed-agent activation, external OpenClaw and Hermes rebuilds, image retention, legacy-volume preservation, and cleanup with no failures. This commit changes four test files; production and image inputs match that qualified revision.

  • All 924 tests in 29 affected files passed after the feat(inference): attach OpenClaw local providers #13293 merge. After fix(e2e): select reviewed OpenShell runtime pins #13335, 278 workflow and boundary tests passed. CLI typecheck passed. The stopped-home repair passed 41 additional focused tests.

  • Normal commit hooks passed for the maintenance/inference repair, main merge, stopped-home cleanup repair, the fix(e2e): select reviewed OpenShell runtime pins #13335 merge, and the fix(e2e): bind credentialless DCode fixture to loopback #13339 fixture repair batch. The assertion budget was lowered to the combined census; no budget exception was added.

  • Docs validation passed with 125 published routes, 0 errors, and 2 warnings. Independent documentation review covered the merge and both repair groups.

  • The Pi receipt checker reports qualified against this commit. Both existing receipts and their authority match unchanged Pi image inputs.

  • Real stopped-container checks on the retained Brev host passed for Docker and Podman. Both removed sandbox-owned state, preserved protected file content and mode 0600, and removed the owned test containers and volumes.

  • The retained AMD64 Brev Hermes diagnostic used CLI source 8fbe8c4b9 and the earlier c75becfae image. It passed onboarding, inference, rebuild, post-rebuild PONG, and public destroy. The 8,400,000-byte state file retained its SHA-256 and mode 0600; staging was absent, and final sandbox/gateway cleanup was verified. This diagnostic does not qualify the new image inputs.

  • The retained AMD64 Brev OpenClaw diagnostic used CLI source 8fbe8c4b9 and the earlier c75becfae image. It passed onboarding, inference, rebuild, post-rebuild PONG, and public destroy. The 8,400,000-byte state file retained its SHA-256 and mode 0600; staging was absent, and final sandbox/gateway cleanup was verified. fix(e2e): select reviewed OpenShell runtime pins #13335 changed only workflow code, tests, and their README. This diagnostic does not qualify the new image inputs. CI subsequently passed. The supervisor mismatch is resolved by fix(e2e): select reviewed OpenShell runtime pins #13335. The full manual E2E run uses the qualified ancestor image catalog; its failures are recorded below.

  • Managed activation for c75becfae failed external rebuild and stopped-Podman cleanup. The repairs above address those observed failures; the failed run does not qualify this commit.

An earlier local Hermes turn returned HTTP 401 despite CLI exit 0. Its archive-preservation result remains valid, but its inference result was a failure. Later diagnostics check response content explicitly.

Current E2E findings

Full default manual PR E2E tests commit 53a694dfa08872faf78fa71d55047ea7adfa0844 with trusted workflow/base 9edf19440e6b6108ae97dfa9d591a66e293a870b and qualified ancestor images 5ea4e2773. Its dispatch receipt is verified. The OpenShell 0.1.3 gateway authentication test and cleanup passed. The run completed with 52 failed, 31 passed, and 19 skipped jobs. It does not qualify the current candidate.

  • Preliminary failure locations show several onboarding and inference cases reaching a retained adapter that calls openshell inference get. The pinned 0.1.3 CLI removes that command. Epic [Epic] Complete pre-work for the OpenShell 0.1.2 upgrade #12558 assigns managed-route retirement to Slice 5 after the remaining supported selections have native paths. This is a qualification dependency; unmerged inference changes remain outside this PR.
  • Messaging jobs report credential keys absent from the nemoclaw-mcp-v1 profile. Config export and runtime-identity checks also failed. Their causes, affected assertions, and cleanup evidence are still under investigation.
  • No failed result is waived, and no test threshold or assertion has been weakened. A complete assertion audit and result collection are required before a repair push or expensive rerun.

Earlier evidence

Managed activation for 455d598f passed managed-agent phases on all three platforms, then failed external-image Hermes inference. The local repairs address that failure; the old run does not qualify this commit. Its PR CI identified the stale fixtures and pending Pi receipt authority.

Earlier macOS subprocess failures caused by the Homebrew pinned-install trust refusal remain recorded. Linux results do not establish macOS success.

Review notes

  • Advisor for 53a694d completed all nine specialists. Seven were clear. The custom-provider documentation finding is corrected in this update. The remaining local-inference migration finding stays open: Pi support is now integrated from feat(pi): support native local inference #13007, while Hermes fix(hermes): preserve issued native-local credential references #13292 and the remaining shared-route selections still need their accepted migration work.

  • Advisor for 4dcfbbd was skipped after source CI failed. No specialist approval is claimed. Source CI failed on stale Pi receipts and two test shards, including snapshot-transfer timeouts. The receipt update addresses the stale receipts; current CI must establish the remaining results.

  • Sensitive paths include installer trust, authentication, provider selection, native mediation, configuration integrity, backup/restore, volume preservation, and destruction. Independent human review remains required.

  • E2E approvals and dispatches have standing maintainer authorization. That authorization does not waive qualification or authorize merge.

  • Deferred: unmerged inference integration, shard-load performance optimization, inherited Pi npm advisory investigation, nonblocking hostname-comment cleanup, optional-policy Python-path review, and unrelated unused helpers.

  • The archive-transfer repair is required for this upgrade's rebuild contract. Existing restore, security, and cleanup assertions remain in place.

Documentation Writer Review

  • Documentation writer subagent reviewed the completed changes
  • Result: docs-updated
  • Evidence: Hash-bound repair and merge receipts are retained in the local evidence directory. Managed-image run 38942952886 passed for source 4dcfbbd; authenticated receipt review and 72 focused tests passed. Full manual E2E failed and remains under investigation.
  • Agent: Codex Desktop

Signed-off-by: Prekshi Vyas prekshiv@nvidia.com

Patch-Walker-Manifest: sha256:77da0e97a8176f6fde7a669021d9becdafe2ae4deaed1546dfcf152873603b67
Patch-Walker-Action: sha256:7f075ffda8178283fad4ff2b0f7100a86c0b6985c8f59e09fbb6900ab258369c

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Oct 3, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@coderabbitai

coderabbitai Bot commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository: NVIDIA/NemoClaw/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: f195eb44-f3bf-43d8-918d-f82e09f2de4c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
@wscurran wscurran added area: packaging Packages, images, registries, installers, or distribution area: security Security controls, permissions, secrets, or hardening integration: hermes Hermes integration behavior needs: unblock Blocked item needs dependency or decision resolved platform: brev Affects Brev hosted development environments platform: container Affects Docker, containerd, Podman, or images labels Oct 6, 2026
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
…eipts

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
…e details

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
try:
if ipaddress.ip_address(normalized_host).is_loopback:
return "nemoclaw-managed-inference"
except ValueError:
try:
if ipaddress.ip_address(normalized_host).is_loopback:
return "nemoclaw-managed-inference"
except ValueError:
Comment thread scripts/lib/patch-openclaw-native-network.mts Fixed
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
@prekshivyas

Copy link
Copy Markdown
Collaborator

NemoClaw-Upgrade-E2E: approve ba6bfce bdf2172

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
@prekshivyas

Copy link
Copy Markdown
Collaborator

NemoClaw-Upgrade-E2E: approve 455d598 bdf2172

1 similar comment
@prekshivyas

Copy link
Copy Markdown
Collaborator

NemoClaw-Upgrade-E2E: approve 455d598 bdf2172

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
@prekshivyas

Copy link
Copy Markdown
Collaborator

NemoClaw-Upgrade-E2E: approve c75becf 486ff49

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
prekshivyas added a commit that referenced this pull request Oct 16, 2026
## Outcome

The trusted E2E workflow selects reviewed OpenShell supervisor and
binary identities for the admitted candidate release. Its MCP resolver
recognizes 0.0.116, 0.1.2, and 0.1.3. Both MCP jobs verify the installed
CLI, gateway, and sandbox binaries before writing provenance.

## Reason

Manual PR E2E uses the workflow from main and checks out the admitted
candidate's application source. The two MCP jobs previously pinned
0.0.116 identities, preventing qualification of the approved 0.1.3
upgrade in #12603. This PR prepares that workflow prerequisite. It does
not change main's installed or supported OpenShell version.

### Related issues

Refs #12603. The application and SDK upgrade remains in that PR. This
prerequisite does not change installer selection or the candidate
release registry.

## Changes

- Extend the existing candidate-version resolver with reviewed
supervisor and binary provenance. Candidate source and existing
admission determine the selected version; the fixed table does not
select or authorize a release. Unknown releases fail before MCP runtime
outputs are emitted.
- Pass these identities to `mcp-bridge` and
`openshell-credential-generation-window`. Verify the three installed
binaries selected by the consumer PATH before writing provenance.
- Update workflow boundary checks, executable installer tests, and E2E
documentation. Retain credential controls, live assertions, cleanup, and
target selection.

## Verification

Commit under review: `5deb4a18af0e930e1e2b98729a7ac9f9f5b4b947`.

- Final affected support tests: 81 passed. Another 107 unchanged support
tests passed in the repair batch; these counts do not overlap.
- Installed-binary tests cover all three reviewed releases in both jobs
and both installation locations. Altering any of the three binaries
fails before provenance publication.
- Documentation build: 125 routes, zero errors, two warnings.
Independent documentation writer review passed for the five repair
files.
- Normal commit and publication hooks passed, including growth
guardrails, compiler checks, and secret scanning. All three published
commits are Verified.
- [CI](https://github.com/NVIDIA/NemoClaw/actions/runs/38903202115)
passed, including all twelve test shards. The CodeRabbit check is
successful. Its saved review reports no actionable comments through
`f6cfd720`; review coverage of `5deb4a18` is not established.
- [Advisor](https://github.com/NVIDIA/NemoClaw/actions/runs/38905730053)
completed all nine specialists. Seven were clear; two findings require
the disposition below. The aggregate remains failed.

## Review notes

The two Advisor findings conflate trusted workflow code with candidate
application code:

- **Customer value / unconsumed 0.1.3 support:** #12603 is the current
consumer. `candidateOpenShellVersion` reads the candidate's installer
and runtime inputs and enforces the existing trust/admission path before
resolving MCP identities. Main still selects 0.0.116 when it is the
candidate. Its existing `ci/openshell-upgrade-trust.json` already
contains the 0.1.3 record, contrary to the finding.
- **Migration / Docker owner rejects 0.1.x:** both MCP jobs check out
`inputs.checkout_sha || github.sha` before executing application code
(`e2e.yaml` lines 4101 and 4277 at this commit). The 0.1.3 Docker
runtime owner is already in #12603 at
`455d598f157a3cce1d8de93cca0f2be16fb338aa`, including
`QUALIFIED_STABLE_OPENSHELL_VERSION = "0.1.3"` and the supervisor
digest. This source check does not establish live qualification.
Changing main's Docker runtime owner here would expand this prerequisite
into the upgrade itself.

Both findings are recorded as false positives for this prerequisite; no
code change or waiver is claimed. Keep this PR draft while the failed
Advisor disposition remains unresolved. Full #12603 E2E still requires
this workflow fix on main and repairs to the candidate's separate
activation failures. Support tests and prerequisite CI do not establish
live upgrade qualification. No merge approval is claimed.

---
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>


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

## Summary by CodeRabbit

* **Reliability**
* End-to-end checks for MCP bridge and credential-generation scenarios
now use the reviewed OpenShell release selected for the candidate.
* Checks verify that the installed OpenShell components match reviewed
runtime evidence; unsupported or unverified runtimes stop the checks.
* **Tests**
* Expanded coverage for runtime verification, workflow configuration,
and invalid or mismatched release details.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
@prekshivyas

Copy link
Copy Markdown
Collaborator

NemoClaw-Upgrade-E2E: approve 5ea4e27 321ac1e

@prekshivyas

Copy link
Copy Markdown
Collaborator

NemoClaw-Upgrade-E2E: approve 53a694d 9edf194

@prekshivyas

Copy link
Copy Markdown
Collaborator

NemoClaw-Upgrade-E2E: approve 4dcfbbd f1dcab7

@prekshivyas

Copy link
Copy Markdown
Collaborator

NemoClaw-Upgrade-E2E: approve 04dad4f f1dcab7

@prekshivyas
prekshivyas marked this pull request as ready for review October 16, 2026 20:16
@prekshivyas

Copy link
Copy Markdown
Collaborator

NemoClaw-Upgrade-E2E: approve bf38c02 48738ba

@github-actions

Copy link
Copy Markdown
Contributor

PR Review Advisor finished for commit bf38c02. Include the Advisor findings in the complete PR feedback collection. Verify and group valid findings before repair.

Request review only when Require no Advisor blockers is green.

All previous runs

This branch has not been deployed

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

Labels

area: packaging Packages, images, registries, installers, or distribution area: security Security controls, permissions, secrets, or hardening integration: hermes Hermes integration behavior needs: unblock Blocked item needs dependency or decision resolved platform: brev Affects Brev hosted development environments platform: container Affects Docker, containerd, Podman, or images

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants