Skip to content

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

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

nvidia-nemopatch-writer[bot] wants to merge 186 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

Not ready for approval. Latest PR commit: ae7a0517080934dbc83cf87b1ca8f11e694861a4, including main d087dbcad90ee639016ba0d259556f024340acb5. This includes #13481’s routed gateway startup wait. Scoped repairs remain local and unpublished.

This PR migrates NemoClaw to OpenShell 0.1.3, including native inference and runtime-owned networking. Final-candidate CI and full PR E2E remain required. GPU qualification remains on hold for Docker Desktop WSL and Jetson/Tegra.

Reason

Preserve existing inference, lifecycle, credential, ownership, GPU, and restoration contracts across the runtime upgrade. Preserve legacy volumes without automatic copying.

Related issues

Refs #12558 and #13338. Merged inference dependencies are consumed through main.

Changes

  • Adapt workspace selection, SDK requests, provider pagination, authentication, policy validation, and forward ownership. Reject incomplete inventories and ambiguous resource identities.

  • Migrate hosted and local inference to native providers. Keep managed authenticated vLLM on its loopback-published endpoint and retain runtime-owned network identity.

  • Preserve existing registered-provider selection without taking ownership of operator providers. Record the selected provider identity, profile digest, endpoint, API, and credential environment because a provider name alone cannot prove the attachment. Transaction tests cover reuse, replacement refusal, publication failure, and rollback with conflicting credential environments.

  • Carry the registered selection through status, doctor, deployment verification, start, resume, rebuild, and export. Reset refuses to delete a provider still selected by a sandbox. Rebuild refreshes scoped credential handles after restoring configuration, preserving model settings and file-integrity checks.

  • Separate image configuration data from host-side admission modules and include the required payloads in Docker and portable contexts. Collect genuine Pi qualification receipts from successful AMD64 and ARM64 image jobs.

  • Adapt E2E helpers and obsolete shared-route fixtures to the native contracts. Preserve ownership, credential, state-restoration, and failure checks. Fit within repository budgets without raising limits.

  • Integrate main's approved GPU-controller fix from #13486. Normalize its test fixture for the candidate's existing registry-level revocations without changing trust checks.

  • Integrate main’s #13498 fixture repair. The copied headless check receives the repository root; all five existing rejection tests now pass locally.

Verification

Previously published validation

These results apply to the repair batch already published before the current local changes.

  • Targeted source and E2E-support suites passed for the repaired behaviors. The main controller integration passed all 133 tests in its two support suites.
  • npm run typecheck:cli, CLI build, architecture checks, and all seven growth checks passed.
  • Normal pre-commit and commit-message hooks passed. Normal pre-push publication validation and CLI typecheck passed.

Documentation validation passed: 125 routes, zero Fern errors, and two existing warnings.

The reviewed diff contains no secrets, API keys, or real credentials. Local tests and source review do not establish live inference or GPU qualification.

Published evidence and limits

  • Current CI for ae7a051 is running. Published image and live E2E workflows have not been approved to rerun while known compatibility blockers remain.
  • The preceding commit, 98ab1cf, passed ordinary CI.
  • Its full default PR E2E run failed: 57 jobs passed, 26 failed, and 19 were skipped. The failure count includes the aggregate qualification job. These results do not qualify the latest PR commit or the local repairs.
  • Its managed-image workflow built the images, but AMD64 activation failed during a guarded Hermes rebuild. ARM64 and rootless Podman activation passed. The repair adds bounded diagnostics and preserves the integrity guard; the writer responsible for the metadata change remains unknown.
  • Advisor found two valid defects on 98ab1cf: headless instructions and an inference test that did not exercise the agent consumer. Local repairs address both. The registered-provider scope finding was checked against accepted refactor(hermes): remove dashboard shadow config #12333 and [Epic] Complete pre-work for the OpenShell 0.1.2 upgrade #12558; it describes existing supported selection. Current-candidate Advisor evaluation remains pending.
  • CodeRabbit skipped substantive review because it detected a bot author. This is not an approval.

Unpublished repairs and remaining qualification

Local repairs address native provider creation and reuse, credential expiry and publication ordering, policy comparison, GPU container identity, strict network-denial evidence, actual inference consumers, and affected fixtures. Targeted tests and independent component reviews are recorded locally. Final combined review and publication hooks remain pending.

Full qualification also requires compatible runtime or trusted-workflow behavior:

  • The protected GPU workflow still runs base-owned helpers that use legacy gateway configuration, routing, and container selection. Candidate helper repairs alone do not change that trusted execution. fix(e2e): admit approved OpenShell templates in GPU controller #13486 is already merged and consumed; it is not a pending controller PR.
  • Personal mode requires native support for its hostless DNS and private-destination policy contract. The observed policy-update failure lacks the raw policy and command error, so its first cause remains unresolved. Source inspection also found incompatible downstream behavior; connection refusal is not accepted as policy denial.
  • The accepted Spark image and qualification plan still use legacy inference. No replacement image is claimed qualified.
  • Docker Desktop WSL and Jetson/Tegra GPU qualification remains on hold. Existing support requirements remain in scope.

No failure is excluded as inherited from main without concrete base evidence. Standing authorization covers routine E2E approval records and dispatches. No successful final-candidate full E2E run is claimed.

Review notes

Sensitive-path review context below covers the previously published repair batch on 98ab1cf, compared with main 8890083. The latest bot merge is ae7a051; additional local repairs remain unpublished and need final review.

The PR changes workflow, installer/runtime, sandbox/policy, credential/inference, and enforcement paths. These include .github/**, scripts/**, agents/**, managed-inference/**, tools/mcp-tool-discovery-runtime/**, nemoclaw-blueprint/**, nemoclaw/src/blueprint/**, nemoclaw/src/shared/**, src/lib/policy/**, src/lib/sandbox/**, src/lib/private-networks.ts, schemas/sandbox-policy.schema.json, src/lib/inference/**, src/lib/messaging/**, src/lib/onboard.ts, src/lib/onboard/**, and tools/e2e/**.

Independent reviewers inspected the repair batch's source, security boundaries, and writing. They checked provider identity, rollback, native credential projection, rebuild ordering, export evidence, and restoration guards against focused test results. The reviewed file hashes match the committed files; the controller integration has a separate review. No blocking finding remains in those scoped reviews. This context does not replace publication gates, full PR review, required CI, or maintainer acceptance.

Before approval:

  • Qualify the repaired inference routes using final-candidate images and full default PR E2E. Exclude an inherited failure only with concrete base evidence.
  • Preserve Linux GPU, Docker Desktop WSL, and Jetson/Tegra requirements. The pinned OpenShell runtime lacks the required WSL/Jetson device/runtime contract. Do not remove support or externally recreate the workload to bypass that limitation.
  • Collect required CI and automated reviews and obtain the required independent acceptance.

Collect automated-review results for the latest commit. No approval, waiver, or merge is claimed. Separable improvements remain deferred.

Documentation Writer Review

The following receipt applies to the previously published 98ab1cf changes. It does not certify the unpublished repair batch or the new bot merge.

Independent documentation writers reviewed the changed sources and documentation, including user-visible errors, recovery instructions, and test meaning. Findings were resolved and final source hashes matched the review receipts. The main controller integration and the #13498 test helper repair received separate independent reviews.

  • Documentation writer subagent reviewed the completed changes
  • Result: docs-updated
  • Evidence: docs/inference/switch-providers.mdx, docs/reference/commands.mdx, and test/e2e/README.md. Independent review checked source behavior, terminology, recovery instructions, code examples, and generated OpenClaw/Hermes variants.
  • 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: cb20fce8-b0c7-4fd8-b6a9-b02083d8856b

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>
@prekshivyas

Copy link
Copy Markdown
Collaborator

NemoClaw-Upgrade-E2E: approve 8014b34 b01bb7f

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>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
@prekshivyas

Copy link
Copy Markdown
Collaborator

NemoClaw-Upgrade-E2E: approve f0e06d3 b01bb7f

Comment on lines +61 to +64
return spawnSync(command[0], command.slice(1), {
encoding: "utf8",
env: { ...process.env, PATH: `${directory}:${process.env.PATH}`, ...env },
});
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 33282d7 af1b779

@prekshivyas

Copy link
Copy Markdown
Collaborator

NemoClaw-Upgrade-E2E: approve d4f2aaa ae0dcf2

rsliter added a commit that referenced this pull request Oct 19, 2026
## Outcome

The protected GPU controller can project independently approved
OpenShell installer and runtime templates from the candidate commit.
Candidates covered by main's existing trust records retain their
existing path.

## Reason

The controller rejected the approved OpenShell upgrade in #12603 before
GPU qualification started. It validated candidate templates only against
main's registry, although the installer check already supported
commit-bound candidate admission.

Historical failure: [protected GPU job in run
39206820005](https://github.com/NVIDIA/NemoClaw/actions/runs/39206820005/job/117922700270).

### Related issues

Refs #12603.

## Changes

- Reuse the existing independent maintainer approval check for new
candidate trust during prepare, verify, and restore.
- Compare the admitted registry and installer consumers with immutable
candidate Git blobs before changing the trusted checkout.
- Pass the admitted releases to both installer and feature-gate
validation; retain artifact identity, revocation, SDK archive, and
projection restrictions.
- Give only the four admission steps a read-only GitHub token. Verify
approval before installing the reviewed SDK or building the controller,
then recheck before live qualification.
- Preserve rejection without mutation, partial-write rollback, and
ownership checks. Document restoration failure when approval is revoked.

## Verification

- `node node_modules/vitest/vitest.mjs run --project e2e-support` with
the protected workspace, projection, workflow, candidate trust, and
upgrade admission test files — 241 tests passed.
- Workspace regressions rerun after fixture restructuring — 22 tests
passed.
- Revision `95cad4745bec8bf5d0d1b0d6a69d37d77858aaaa`: the focused
protected-runtime workflow guard suite passed 111 tests, including
rejection of SDK installation before approval verification.
- `npm run docs` — 125 routes checked; Fern reported zero errors and two
warnings.
- Normal pre-commit, commit-msg, and pre-push hooks — passed, including
publication validation and CLI/plugin/JS-config TypeScript checks.
- Exact-head manual PR E2E passed:
`jobs=cloud-onboard,full-e2e,security-posture` ([run
39302613910](https://github.com/NVIDIA/NemoClaw/actions/runs/39302613910))
and `jobs=managed-image-protected-runtime` ([run
39305366189](https://github.com/NVIDIA/NemoClaw/actions/runs/39305366189)).
See the [E2E evidence
comment](#13486 (comment))
for selectors, tested commit, and receipts.
- No live E2E assertions or budgets changed. No secrets, API keys, or
credentials added.

## Review notes

This repairs candidate admission only. The full protected GPU suite
passed on this PR head with the candidate OpenShell `0.0.116` inputs
recorded in its artifact. That result does not qualify the separate
OpenShell 0.1.3 upgrade in #12603. Its trusted harness still needs the
`inference set` and Docker bridge migrations before that upgrade can be
qualified.

The workflow change must land on main before #12603's trusted controller
can use it. This PR does not authorize merging #12603 or claim 0.1.3 GPU
platform qualification. Independent code, security, and documentation
review covered commit `18b4a45c22aa066f6ad6d7e1a44499f14200614b`.
Exact-head CI and CodeRabbit review completed on
`95cad4745bec8bf5d0d1b0d6a69d37d77858aaaa`; the self-hosted llama.cpp
GPU check passed on its second attempt. The Advisor reported three P1
findings, all rejected in the [maintainer
disposition](#13486 (comment));
its blocker gate remains red. Independent human review and maintainer
acceptance remain required.

If approval is revoked or GitHub admission becomes unavailable after
preparation, verification and restoration fail without changing
projected files. The isolated checkout remains for diagnosis; stale
approval is not reused.

---

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com>


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

* **Security**
* Protected E2E runtime operations now check candidate approval before
projecting OpenShell sources when the candidate is not already trusted.
Approval checks apply to preparation, verification, and restoration.
* OpenShell verification now runs before SDK download and remains in
place after installation. The workflow has read-only access to pull
request details for approval checks.
* **Documentation**
* Clarified approval requirements, token scope, verification order,
failure outcomes, and recovery guidance. Approval does not permit new
SDK dependency graphs on protected E2E hosts, qualify Pi, or pass
candidate catalogs to the Jetson operator.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com>
Co-authored-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com>
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 c260dc0 e7edcc4

@prekshivyas

Copy link
Copy Markdown
Collaborator

NemoClaw-Upgrade-E2E: approve 98ab1cf 8890083

@github-actions

Copy link
Copy Markdown
Contributor

PR Review Advisor finished for commit 98ab1cf. 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

@prekshivyas

Copy link
Copy Markdown
Collaborator

NemoClaw-Upgrade-E2E: approve ae7a051 d087dbc

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