Skip to content

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

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

nvidia-nemopatch-writer[bot] wants to merge 360 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 or merge. Upgrade NemoClaw to OpenShell 0.1.7 while preserving supported inference, lifecycle, credentials, ownership, recovery, legacy data, and GPU behavior. Local migration work is complete; runtime and platform qualification remain incomplete.

Reason

OpenShell 0.1.7 adds supervisor destination-CA support needed by the private MCP path and changes runtime contracts that NemoClaw must validate before use. The user explicitly authorized this 0.1.7 upgrade in the working session. Historical maintainer direction preserves GPU support and holds qualification until compatible runtime paths exist. Preserve legacy volumes without automatic copying; defer independent improvements.

Accepted dependency-update scope

The earlier maintainer decision for #12603 authorized the v0.1.5 dependency update and continued qualification. It is historical scope evidence, not authorization for 0.1.7. The current target follows the user's separate, explicit 0.1.7 upgrade authorization. #12558 owns the inference pre-work and excludes the dependency update; #12603 owns this separate update.

  • Update the CLI, SDK, gateway, supervisor, images, and verified artifact hashes required for 0.1.7.
  • Preserve existing agents, providers, platforms, GPU support, credential custody, isolation, resource ownership, and rollback requirements.
  • Preserve legacy volumes unchanged. Stop before mutation when ownership is unproven; do not add automatic copying or relabel old receipts as compatible.
  • Retain the explicitly approved upstream Podman API timeout change from 30 to 60 seconds and the separately approved fix(ci): bound growth fetch time and retain safe diagnostics #14159/fix(e2e): run the survival plugin through an agent turn #14151 preparation and qualification timing changes described below. The user also approved fix(hermes): recover stripped NVIDIA references on restore #14153’s native NVIDIA Hermes test limit of 75 minutes and job limit of 85 minutes for the integration below.
  • Apply the separately approved cleanup accounting, source-architecture exception and main-integration assertion accounting recorded below. Preserve meaningful coverage and other limits; defer unrelated work and new integrations.
  • Run full default PR E2E on the final candidate after its required images qualify. Attribute failures to main only with matching evidence.

These authorizations do not approve merge or release. Private-CA MCP now has local integration and validation evidence, but its live qualification remains pending. Personal web-access policy overlap, GPU compatibility and runtime lifecycle holds remain.

Related issues

Refs #12558 and #13338. Registered-provider selection follows merged #12333. Controller #13486 is merged and consumed.

Changes

  • Pin OpenShell 0.1.7 release artifacts and the SDK, including the gateway Homebrew formula, supervisor images, workflow selectors and child-visible credential compatibility manifest.

  • Supply validated corporate CA certificates to supervisor destination trust through an owned, digest-bound immutable snapshot. Preserve gateway mTLS separation, prior snapshot generations, source-absent restart behavior and explicit opt-out semantics; existing sandboxes require recreation and verification.

  • Fail stop promptly when OpenShell retains Completed or Error; require observed Stopped before recording an intentional stop.

  • Require 0.1.7 for Hermes Portable CLI and ACP while preserving the public headless lifecycle v1 API's 0.1.5 contract. Reject old executable-authority receipts without rewriting them or deleting their resources.

  • Require absence of owned runtime control volumes for the current and immediate predecessor sandbox during managed-image activation cleanup. Preserve ownership checks and deletion scope.

  • Adapt SDK requests, workspace selection, pagination, authentication, policies, and forwarding. Reject incomplete inventories and ambiguous resource identities.

  • Use sandbox-attached native inference providers and preserve operator-owned providers and credentials.

  • Preserve retained-state refusals, legacy volumes, bounded Hermes recovery, and ownership checks during cleanup.

  • Update the owning inference and credential documentation.

  • Retry NVIDIA Endpoints HTTP 500 within existing request limits and retain the correct probe name in errors.

  • Request existing gateway cleanup while Pi qualification still has a registered sandbox.

  • Consume main's native-provider recovery and npm/image repairs; preserve registered-provider ownership, retained-volume handling, and credential isolation.

  • Separate host credential validation from gateway-provider checks to keep the rebuild dependency budget unchanged. Existing tests retain invalid-credential, endpoint pinning, and pre-delete refusal coverage.

  • Require HTTPS before using registered credential-bearing providers. Retained HTTP records remain readable and safely detachable; local-runtime HTTP contracts remain separate.

Verification

Qualification snapshot for dead51999 — November 9, 2026, 17:31 UTC

Candidate dead51999b6bfa7f1df4a366fb7dbd9825ba264c integrates main 4d5d613f73b96d51a92e7ae88df5da5103836067, including merged trusted-main MCP provenance PR #14288. The test merge is 858b161261afd521b6335296d36b89efbca8dbf3.

  • Code CI passed on attempt 2, including all 12 CLI shards and final checks. The SDK and installer approval recoveries were each performed once.
  • Security scanning passed. Existing findings remain; the hosted CodeQL check reports no new alerts in changed code.
  • All eight managed-image contract archives have verified candidate, cohort, platform, immutable reference, size, and digest. All eight builds passed. AMD64, ARM64, and rootless Podman activation jobs are running; these contracts do not establish runtime qualification.
  • All nine automatic Advisor reports are verified for this candidate and base. Eight are clear. Migration completion reports one P1 blocker: missing Pi native-local qualification on OpenShell 0.1.7. The existing live Pi test includes fresh native-local onboarding, authenticated requests before and after rebuild, credential isolation, and cleanup; its required current runtime evidence remains missing. The hosted Advisor gate failed.
  • Portable rootless and Podman CPU checks passed. Their reviewed artifacts supplement managed-image activation and full E2E evidence.
  • Local integration validation passed 301 distinct focused tests, with seven platform-dependent skips. All 19 repository checks, CLI type checking, scoped lint and formatting passed. Independent source, security, and writing review and normal publication hooks passed. All 351 PR commits are GitHub Verified.

Admission matches this candidate and base. The verified SDK artifact is OpenShell 0.1.7. The public headless-v1 API remains 0.1.5.

Three governance workflows failed before starting jobs during GitHub's scheduled pull_request_target protection brownout. Its documented window ends November 9 at 18:00 UTC. No policy was weakened and no governance recovery has been performed.

The previous full PR E2E 42307457549 failed before runtime fanout and consumed the authorized run allowance. No further full E2E dispatch, rerun, or base replay is authorized. Current activation results, eligible Pi receipts, resolution of the hosted Advisor blocker, governance gates, and full E2E qualification remain outstanding. Merge and release remain on hold. Recurring monitoring stays stopped.

The following sections preserve historical results and pending work for their named candidates. They do not qualify dead51999.

Historical recovery integration f38bab243

Commit f38bab2435504993420e8ba48cc59f9a81caf5fd integrates main 64c6ffe93acf3714448a5df44ed242ffc2c85b1e (#14153) and preserves OpenShell 0.1.7 native provider routing.

  • Allow recovery of stripped native NVIDIA credentials only when all three slots contain the migration sentinel. Preserve identity, source-digest, provider, model, noncredential configuration and registered-provider denial checks. Healthy and damaged-credential rebuild cases remain separate.
  • Retain the original run-directory descriptor through blueprint resume. Validate its identity before directory synchronization and close it on every exit. Test observations use fresh file descriptors, and the TLS fixture retains certificate verification.
  • Keep native-package test build directories inside their owned fixture. Give Hermes fixture roots the test process’s effective UID and GID before creating descendants.
  • 458 distinct focused tests passed. Two directory-mode assertions remain locally unverified because Seatbelt strips setgid on fresh fixtures. Both assertions remain unchanged and require current-candidate Linux CI. CLI type checking, lint, formatting, architecture and documentation validation passed; documentation reported two existing warnings. Independent source and writing reviews passed. Normal commit hooks passed.
  • The user approved the upstream Hermes test limit of 75 minutes and job limit of 85 minutes, plus named-helper accounting from 661 to 663. Total assertion points remain 3,245. The independent growth gate still requires the refreshed public approval record.

All five failed build logs for the preceding candidate were reviewed. Debian snapshot downloads exhausted their attempts with HTTP 503/504 before activation. These historical results do not qualify this commit. Current code CI, CodeQL, Advisor, images, native and rootless Podman activation, and synthetic-DNS runtime evidence remain required. Monitoring stays paused; E2E has not been dispatched.

Historical main integration d892556a5

Commit d892556a58157338743eebe7191df437568eecb6 integrates main 282ee15fdc8e8dccb391b1c7df16463fcf34c8a8, including #14230 and #14122. It resolves the managed vLLM conflicts while preserving OpenShell 0.1.7 native provider routing.

  • Publish managed vLLM only on 127.0.0.1. Preserve main's default Docker daemon selection, immutable ownership checks, refusal of unsafe retained bindings, and cleanup checks. Preserve native NIM routing and the recorded model and port.
  • Retain physical-host health and unintended-interface denial checks. Adapt the bearerless fixture to loopback publication and preserve the existing native provider and egress-denial checks.
  • All 762 distinct focused tests passed across 24 files. CLI type checking, lint, formatting and documentation validation passed; the documentation build reported two existing warnings. Independent source, security and documentation review passed. Normal commit hooks passed. These results establish local validation only.
  • The user approved eleven additional assertion points, one generated probe block and one condition for this integration. Existing deadlines remain unchanged. Independent enforcement still requires the refreshed public growth approval record.

Publication is verified: the local commit, remote branch and PR commit match, all 343 PR commits are Verified, and the actual test-merge parents are the candidate and integrated main above. Normal pre-push validation and CLI type checking passed. Refreshed upgrade admission was posted once and read back for this candidate and base. Hosted qualification remains pending; historical image passes and skipped activations do not qualify it. The synthetic-DNS runtime evidence and other qualification holds below remain open. Monitoring stays paused, and E2E has not been dispatched.

Historical repair 38b5b86bd

Commit 38b5b86bdfb2df84ef642721f4d7be711b95ece5 repairs directory validation during blueprint recovery and package retrieval during image builds. It changes four files relative to a816c34d; integrated main remains efb44f12012ccbc430f3b4dbcd821065d05b9fe3.

  • Open the recovery run directory with no-follow and directory-only flags. Verify its descriptor type, device and inode before fsync, and close the descriptor on mismatch. Reject platforms without the required flags before remote work. Three real filesystem replacement tests cover a symlink, another directory and a regular file. This repairs CodeQL 3811's directory reopen guard; it does not establish atomic directory-relative receipt publication or a demonstrated exploit.
  • Fetch the Python stdlib and zlib binary packages by Debian snapshot file IDs. All four AMD64/ARM64 archives match the existing SHA-256 pins. Package versions, patches, content checks, retry counts and deadlines remain unchanged. Log each public download URL so a future failure identifies the request. The historical HTTP 404 service cause and permanent download reliability are not established.
  • All 91 distinct focused tests passed: 80 blueprint tests and 11 native-package tests. Lint, ShellCheck and formatting passed. Normal commit hooks passed after a table-driven fixture correction; initial failures remain recorded. Independent writer, correctness and security review passed for all four files. blocker-repair/commit-review.json binds the committed bytes to blocker-repair/independent-review.json.
  • No documentation change is required for this repair. Existing recovery guidance preserves receipts and resources on failure. The repair adds no resource authority or supported surface.

Publication is verified: the local commit, remote branch and PR commit all equal 38b5b86bdfb2df84ef642721f4d7be711b95ece5, and all 342 PR commits are Verified. Normal pre-push validation and the CLI type check passed. The actual test-merge parents are main 525beba5024665def76bd69e81fad4d2b69e7cf6 and repair 38b5b86bd; integrated main and the stale API base field remain efb44f12012ccbc430f3b4dbcd821065d05b9fe3. Admission for this commit and actual test base is absent; earlier admission does not qualify them. New code CI, automated review, image builds, activations and Pi receipts must qualify the repaired image inputs. The recurring monitor is paused at the user's request; no automatic E2E dispatch is scheduled. Runtime, merge and release holds remain.

Remaining review findings

  • The Advisor scope finding remains disputed: chore(deps): upgrade OpenShell runtime and SDK to 0.1.7 #12603 owns the separately authorized dependency update; [Epic] Complete pre-work for the OpenShell 0.1.2 upgrade #12558 owns the inference pre-work. The historical v0.1.5 decision is not presented as v0.1.7 authorization.
  • The Advisor API-version finding remains disputed: the documented headless lifecycle v1 contract supports OpenShell 0.1.5, independently of the CLI's 0.1.7 runtime. Changing that public API requires separate compatibility evidence.
  • The Advisor synthetic-DNS concern remains open. The application exception is address-only. The pinned supervisor trace verifies hostname mapping and destination-policy checks on its normal DNS path, but candidate-runtime resolver ownership and original-host binding outside that path remain unverified. No end-to-end bypass is demonstrated; no application mapping interface was added and no hosted gate was cleared.
  • CodeQL 3812 concerns a test fixture; no production exposure is established and no hosted dismissal is claimed.

Historical candidate a816c34d

Code CI attempt 2 passed all 12 CLI shards and code gates. Image workflow 42100589213 failed four builds on package-download HTTP 404 responses before startup; four image contracts passed and were verified, and all native/Podman activations were skipped. Advisor 42106688209 completed all nine specialists: six clear and the three findings described above. These results do not qualify 38b5b86bd.

The following preserves the earlier publication-time record.

Commit a816c34dd1ea9a733f33925b6496a151b48f766f adds identity-checked recovery for interrupted blueprint inference configuration and integrates main efb44f12012ccbc430f3b4dbcd821065d05b9fe3.

  • Reconcile completes native inference configuration only when the saved run, gateway, sandbox ID and creation nonce, provider, profile, attachment and credential bindings still match. It rechecks those bindings after configuration and persists completion atomically. Existing resources are preserved; rollback refusals remain.
  • The existing plugin reconcile action needs a host-side callback because the CLI owns credential resolution and native provider checks. The new resume helper uses the existing configuration publisher. The blueprint CLI and runner error-path suites cover successful recovery and refusal after identity or receipt changes.
  • Configuration recovery does not create resources, change policies, rotate credentials, continue runtime identity setup or recreate port forwards. The owning runtime-identity documentation now explains that boundary.
  • Resolve the DGX import conflict by retaining main fix(e2e): defer DGX runtime imports during collection #14216's deferred hardware imports and the upgrade's native-provider assertions. Preserve the existing diagnostic-budget-expiry regression that main removed. No deadline, assertion budget or dependency changes.
  • All 256 focused blueprint/runner tests and 89 integration tests passed. CLI/plugin type checks, lint, formatting and architecture checks passed. Documentation validation reported zero errors and two existing warnings. Normal commit hooks passed. The initial fixture and conditional-test-growth failures are preserved with their corrections; no unchanged retry was used.
  • Independent writer, correctness and security review covers all 12 changed files relative to 41f91e35. No secrets, API keys or credentials were added. Live recovery, fresh code CI, automated reviews, images/activations and full default PR E2E remain pending. Admission must bind this published commit and the actual main base; earlier approvals do not qualify it. Runtime, merge and release holds remain.

Historical candidate 41f91e35

Code CI attempt 2 passed all 12 CLI shards and code gates after the approved SDK prerequisite became available. Image qualification failed before startup on six Debian snapshot HTTP 503 responses in OpenClaw ARM64; seven image contracts passed and were verified, while activations were skipped. Advisor completed all nine specialists: seven clear, one disputed scope finding and the blueprint recovery finding addressed by this repair. These results do not qualify the new commit.

Commit 41f91e35896dc4ea52947f51729b0b5582b795af synchronizes the OpenShell 0.1.7 migration with main ffaaf7f65a69e8bc831c8ef9c725e8c3689c0eb8. CI on 347ef55c rejected a test merge whose main parent differed from its approved base. This integration addresses that identity mismatch without changing the admission guard.

  • Integrate ci(deps): stop proposing install-action bumps for v1 #14219's Dependabot exclusion and fix(resources): size memory profiles from allocatable node memory #14232's allocatable-memory parsing repair. All three changed files match main exactly; no merge conflict occurred.
  • All 22 resource tests pass, including equivalent bytes, Ki, Mi and Gi inputs. Strict Pi source parity still passes. The preceding genuine Pi receipt repair is preserved; no image inputs, limits or live assertions change.
  • Existing documentation already describes allocatable capacity and percentage-based resource profiles. Independent writer, correctness and security review covers the three-file integration. Normal pre-commit and commit-message hooks passed.
  • Fresh CI, automated review, image activation and full default PR E2E remain pending for this commit. Admission must bind the published candidate and actual base. Historical failures remain preserved; runtime, merge and release holds remain. The authorized monitor checks qualification before dispatching E2E once.

Historical candidate 347ef55c

The following records the receipt repair before this synchronization.

Commit 347ef55c86595709d11e060c13eea870602c700e refreshes both Pi qualification receipts and their accepted hashes from successful managed-image workflow 41933603090, attempt 7. These three files are the complete repair relative to 47194fd4; Pi image inputs are unchanged.

  • The official collector accepted both AMD64 and ARM64 archives from the same successful attempt on source 47194fd432562c33a1371d007d7435aa0c7ff974. Archive size, SHA-256, immutable image references, source revision and cohort were verified.
  • All 60 focused tests passed. The strict source-parity check reports qualified, and the production receipt reader accepts both actual files with the updated authority hashes. Independent writer, correctness and security review covers the final three-file commit. Normal pre-commit and commit-message hooks passed.
  • Attempt 7 passed all eight image jobs and AMD64, ARM64 and rootless Podman activation. Activation artifacts and scoped cleanup evidence are verified. This is managed-image qualification for source 47194fd4; it does not establish full E2E qualification for this repair commit.
  • Attempt 6's rootless Podman restart failure matches the periodic reconciliation race tracked by bug(podman): polled snapshot moves a restarting sandbox from Starting to Error (ContainerExited) OpenShell#5258 and proposed repair fix(server): skip the reconcile poll of a sandbox whose start is in progress OpenShell#5265. The affected path is also present in OpenShell 0.1.5. Attempt 7's pass does not establish a permanent upstream fix. Earlier failures and evidence remain preserved.
  • Fresh code CI, automated reviews and image qualification are pending for this commit. A new candidate/base admission record is required before full default PR E2E. Runtime, merge and release holds remain; the recurring monitor stays stopped.

Historical candidate 47194fd4

The following records the preceding publication cutoff. Its completed image qualification and receipt repair are summarized above.

Commit 47194fd432562c33a1371d007d7435aa0c7ff974 integrates main 1689c0d6fdd2deb1124db5138a095e874dc9fadb into the OpenShell 0.1.7 migration. It resolves three Pi receipt conflicts and changes one audit digest relative to ec08b61d.

  • Consume fix(ci): correct reviewed OpenClaw 10.5 lock identity #14173's reviewed OpenClaw 2026.10.5 replacement lock identity. The active OpenClaw 2026.9.2 lock and OpenShell SDK 0.1.7 remain unchanged.
  • Preserve the genuine Pi AMD64/ARM64 receipts and their accepted digests. The audit file is a Pi image input, so those historical receipts now require fresh image qualification. The local publication check permits this pending state; strict CI still requires matching receipts.
  • All 108 focused tests passed: 60 reviewed-audit tests, 19 audit-receipt tests and 29 candidate-SDK tests. Independent writer, correctness and security review passed. Normal pre-commit and commit-message hooks passed. No public documentation change is required for the dormant replacement digest correction.
  • The preceding ec08b61d evaluation is complete. JavaScript/TypeScript and Python Code Quality passed. Current-commit admission was missing, and merge conflicts prevented code CI and image qualification. CodeRabbit skipped the bot-authored PR; no new findings or current Advisor qualification were observed.
  • Fresh CI, automated reviews, image contracts, native startup, activation and full default PR E2E remain pending. A new candidate/base admission record is required. The six interactive-shell tests remain unverified locally. Runtime, merge and release holds remain; the recurring monitor stays stopped.

Historical candidate ec08b61d

The following records the preceding publication cutoff. Its later results are summarized above.

Commit ec08b61d19b1a8694ec6a5bc8cc1f74cdffd891a integrates main e996df66cf3d81babc6ea7e7e15863b5daa3a4c5 into the OpenShell 0.1.7 migration. It resolves six conflicts and changes 32 files relative to 160c2660.

  • Retain main's private installer directory checks and actionable gateway-state ownership errors. Correct BSD permission reads so the existing root-owned sticky-parent exception works on macOS; writable executable targets remain rejected. Eight regression cases passed.
  • Refresh Pi qualification receipts from the verified successful AMD64/ARM64 contracts for 160c2660; strict source parity passed. These receipts do not establish live runtime qualification for this new commit.
  • Preserve the installer trust history, upgrade pins, native approval diagnostics, credential filtering and cleanup assertions. Move five installer cases unchanged into their own suite and retain their 15-second timeout. Use an explicit temporary-file template in the shared diagnostic fixture.
  • The repaired diagnostic suite passed all 56 tests. The installer repair batch passed 157 tests, failed one fixture-read test and skipped two platform cases. After the approved sandbox correction, that one test passed. The separately authorized admin-helper retry passed 135 selected tests; six interactive-shell cases remain unverified because the local sandbox blocks pseudo-terminals. Original failures are retained; these overlapping runs are not one aggregate green suite.
  • Watch-trigger tests passed all 96 cases; project membership is exact across 2,983 files and seven projects. Package-contract tests passed all six cases. Documentation validation reported 125 routes, zero errors and two warnings. Independent code and documentation review passed with the stated validation limits. Normal pre-commit and commit-message hooks passed.
  • The preceding 160c2660 evaluation is complete: all eight image contracts, native startup checks and three activation platforms passed with verified evidence. Code CI attempt 2 failed during SDK preparation when the PR merge commit became unavailable after main changed; CodeQL timed out, and Advisor skipped. Those historical results do not qualify ec08b61d.
  • Fresh CI, automated review, image qualification and full default PR E2E remain pending. A new commit-bound upgrade admission record is required. Runtime, merge and release holds remain; the recurring monitor stays stopped.

Historical candidate 160c2660

The following records the preceding publication cutoff. Its later results are summarized above.

Commit 160c2660a5471a4c440b31cf065bcb5d54041284 adds four test repairs to the OpenShell 0.1.7 migration at d79c6e3c. The integrated base remains 12831d050df53d991ec52733680186b080d4e0a0.

  • Align the installer compatibility fixture with the pinned 0.1.7 version. Give external-image rebuild mocks distinct observed runtime IDs so both cleanup scopes are checked.
  • Update survival fixtures for the native approval and plugin audit protocol. Use the owned, credential-filtered sandbox environment for approval and plugin execution after restart. Approval and plugin failures cannot complete the target.
  • All 120 focused tests passed across six files. After replacing mock branches with response tables to satisfy the growth guard, all 47 affected lifecycle tests passed again. These 47 tests are included in the 120, not additional coverage. Independent documentation, correctness and security review passed for all four final files. Normal pre-commit and commit-message hooks passed. Deadlines and live assertions are unchanged.
  • The preceding d79 evaluation is complete. Its five failing tests across three CLI shards are addressed by this repair. The Pi AMD64 image build failed while fetching a pinned package with HTTP 503/504; the strict Pi receipt gate remains unresolved until a matching successful architecture pair supplies genuine receipts. No unchanged image retry was dispatched.
  • On d79, seven image contracts, six direct authenticated startup jobs, and AMD64, ARM64 and rootless Podman activation passed with verified evidence and scoped cleanup. These results are historical for 160c2660. Code CI failed and Advisor skipped; neither is qualified. CodeQL alert 3809 is classified as a test-fixture false positive in the saved review, but its hosted gate has not been cleared.
  • Hosted CI, automated review, image qualification and full default PR E2E remain pending for 160c2660. The published upgrade approval is bound to d79 and its base; it does not admit this new commit. Private-CA MCP and the remaining platform/runtime contracts still need live qualification. Merge and release holds remain. The recurring monitor stays stopped.

Historical integration candidate d79c6e3c

The following records the preceding integration milestone. Later d79 results and the current repair are summarized above.

Published commit d79c6e3cc8b1a08f9f23dac79cd4a7c3a1baafb8 merges required main 12831d050df53d991ec52733680186b080d4e0a0 into the dd0c457d OpenShell 0.1.7 migration. It includes the published 9a0fdc2b installer trust repair and changes 212 files relative to that published candidate. Ten conflicts were resolved. Independent writer, correctness and security review is bound to this commit and its 212 changed files in integration-12831-commit-review.json.

  • Preserve the migration's native provider routes, credential boundaries, legacy state refusals and cleanup ownership. Integrate main's OpenClaw source-maintenance cleanup recovery, protected Deep Agents provider-route metadata, corrected provider/model selection guidance and real plugin agent-turn evidence. Existing genuine Pi receipts remain historical; they do not qualify this candidate.
  • Integration validation initially recorded 454 passing tests, nine failures and 70 Linux-only skips. Three generated-artifact failures came from local fast-uri 3.1.7 differing from locked 3.1.9; restoring locked dependencies and rebuilding made all five selected hash cases pass. Two of those five already passed initially, so the distinct passing count is 457, not 459. This is focused validation, not a full-suite pass.
  • Six unchanged shell-fixture failures remain: five npm-cache cases and one observability-skip case. One captured error confirms mktemp was denied a /var/folders path before the intended assertion. A similar early temporary-path failure is suspected for the other cases but was not individually captured or proved. No unchanged retry or pass is claimed for them. Preserve the earlier migration failures and limits recorded below.
  • Documentation validation passed with 125 routes, zero Fern errors and two warnings. Generated-artifact and assertion-census checks passed. A normal commit attempt rejected a stale source-architecture exception: measured shell-quote fan-in was 20 against its 21 allowance. Lowering the allowance from 21 to 20 passed independent review and the owning checker. All final normal pre-commit, commit-message and pre-push checks passed.
  • The user explicitly approved fix(ci): bound growth fetch time and retain safe diagnostics #14159's fetch wait from 30 to 90 seconds within a 180-second preparation deadline. The user also approved fix(e2e): run the survival plugin through an agent turn #14151's final phase from 15 to 30 minutes, test from 75 to 90 minutes and job from 95 to 110 minutes, including its seven-minute administration phase, one two-minute agent turn, up to five 30-second audit reads with one-second gaps and a ten-second failure diagnostic. These upstream exceptions do not authorize additional retries or weaker assertions.
  • The first push failed after its checks passed because GitHub closed the SSH connection. Subsequent API and SSH readback still showed 9a0fdc2b. The user authorized one guarded resumption. Its immediate API readback lagged; that observation remains preserved. Later read-only reconciliation confirms the PR, SSH branch and local checkout all equal d79c6e3cc8b1a08f9f23dac79cd4a7c3a1baafb8, with base 12831d050df53d991ec52733680186b080d4e0a0. Publication is confirmed. All 334 PR commits are Verified. GitHub returned 250 through its PR connection; 84 exact-commit queries completed the verification. The PR description and opening authoring-session report have not been rewritten.
  • Installer hashes and candidate admission failed because independent E2E approval bound to the current candidate and base is missing. Growth guardrails passed six predicates and failed the assertion-budget predicate: managed-image activation transitive expectation calls increase from 12 to 14 and assertion points from 25 to 26 against this base. It requires the exact independent maintainer record NemoClaw-E2E-Growth: approve 2d90ba8d9b25c798e656b608c7f0754c5ee615278f3967fda8c4f18f0eefda16; the local exception does not satisfy the hosted gate. Other CI and managed-image jobs are ongoing; no aggregate pass is claimed. Current automated reviews, image provenance, Pi receipts, native startup, activation and cleanup remain pending. Independent approval bound to the current candidate/base and full default E2E remain required. Local review and tests do not establish a runtime pass or clear the upstream Personal, GPU and lifecycle blockers. Private-CA MCP remains unqualified live. Merge/release holds remain, and the recurring monitor stays stopped.

Historical local migration dd0c457d

The following preserves the local migration milestone before the required main integration. Its pending statements describe that earlier observation; current status is above.

The local 0.1.7 migration builds on published 9a0fdc2b9a78b57f4686ad065988fdc4b6e5a903. That parent includes the installer trust repair that rejects malformed gateway registrations; it is part of this candidate. The migration is committed locally as dd0c457d7ded3c6644f719d989501cd0133ef27d across 168 files. Normal pre-commit and commit-message hooks passed. Pre-push verification and publication remain pending; no remote identity or GitHub Verified status is claimed.

  • Exact release archives, checksums, image digests, SDK import and source/API consumers were reviewed. The migration retains shorthand network, DNS and MCP audit consumers; structured OCSF JSON is 1.8.0. It does not relax gateway authentication, TLS verification, endpoint binding, credential isolation or retained-state refusals.
  • Focused CA validation passed 187 tests; terminal-stop validation passed 35. The final selected control-volume checks passed 24 with 49 filtered tests skipped. Hermes receipt/onboarding fixture repairs passed 130; selector repairs passed 113; the Homebrew formula repair passed 98. These are separate, overlapping runs and must not be added into a full-suite result.
  • CLI type-checking, CLI/plugin builds, dependency-pin validation and documentation validation passed. Documentation checks cover 125 published routes; Fern reported zero errors and two warnings. The approved architecture exception passed its checker. Current independent reviews bind the reviewed implementation, documentation and repair files by hash; final commit binding remains pending.
  • Preserve original failed evidence: six SDK/gateway cases rejected the isolated HOME ancestor under /private/tmp; eleven unchanged approval-fixture cases could not write their fixed /tmp paths. Those results are not passes. Earlier selector/receipt fixture errors, /dev/fd denial, package setup failures and the package-output buffer failure also remain recorded. Targeted repairs and explicitly authorized retries passed their recorded cases, including 31 Brev checks, three affected CLI cases, one SDK packaging case and ten Blueprint package checks. No broad deterministic-suite pass is claimed.
  • The user approved a narrowly scoped validation environment correction for one tracked public example file and inherited numeric file descriptors. Credential reads, other dotenv files and external network access remain denied. Normal hooks now use this approved profile after the first commit attempt exposed the same public-example denial. The package-output repair removes unused JSON output without changing timeouts, buffer limits or assertions.
  • The first normal commit attempt also found test-file size, fixture branch-count and local assertion-growth registration failures. Move the control-volume checks into their own E2E-support file and the 15 sandbox-digest cases into their own installer test file; replace two test setup branches with explicit cases. The affected CA/receipt/cleanup run passed 92 tests and the split installer run passed 15, separately from the earlier results. Both original files remain below the existing 1,500-line cap. A scoped local assertion-growth exception entry records the approved checks; its independent GitHub approval comment remains pending permission. A later hook attempt required the existing source-shape test title to match its updated 0.1.7 wording; the repair changes no limit. The third normal commit attempt passed all applicable hooks, including source-shape and assertion-growth checks. Original failed attempts remain saved. These repairs do not change product runtime behavior.
  • The user separately approved the upstream Podman API timeout from 30 to 60 seconds, two additional cleanup assertion points and their activation accounting, and a fan-in exception of 21 for the existing safe regular-file reader. All other source-architecture limits and this migration's NemoClaw runtime deadlines remain unchanged.
  • CI, automated reviews, managed-image contracts, native startup, activation, cleanup and full default PR E2E for this final candidate remain pending. Local results do not establish private MCP, Personal web access, GPU compatibility, restart recovery or complete runtime qualification. Check for equivalent active runs before any authorized E2E dispatch. Runtime, merge and release holds remain; the recurring monitor stays stopped.

Historical candidate 98d8d7bc

The following records the earlier 0.1.5 candidate and its observation-time status. It does not qualify dd0c457d7ded3c6644f719d989501cd0133ef27d or the 0.1.7 migration.

Candidate 98d8d7bc9f8238f50ebbcb2c208a6ac1a0094dfe integrates main 91f79b05f8f358868b265d928bcd7703783ac2ad, including merged #14104. OpenShell remains pinned to 0.1.5. Local, SSH branch and PR identities agree; all 329 PR commits are Verified.

  • Resolve the Model Router integration conflicts while preserving configured provider names and endpoints, all four agent paths, scoped credentials, and router process ownership. Preserve custom hosted and owned NIM migration behavior.
  • Restore or verify the recorded native router attachment before completing Ready sandbox reuse. Recheck provider authority, sandbox identity and the attachment receipt before provider commands and completion. Reject drift before recording success.
  • Preserve verified switches from another local or hosted provider. Require explicit recreation for a legacy row already using the same router without its native attachment. Preserve legacy data and owned-resource cleanup.
  • Local validation passed 780 distinct focused tests across the recorded runs. After the final result-helper refactor, all 262 affected tests passed; these overlap the 780 and are not additive. The subsequent return-type annotation repair changed no runtime behavior and passed CLI type-checking. Earlier fixture failures and the default-heap type-check failure remain in the evidence; CLI checking passed with the repository's existing heap setting.
  • Strict Pi receipt validation, normal commit and push hooks, and independent correctness, security and documentation review passed. The review covers all 17 integration paths and the final type-only repair at this commit. Documentation validation passed with 125 routes, zero Fern errors and two warnings. No runtime limits or assertion budgets changed in this integration.
  • As of the publication observation, code CI and managed images are running. No image contracts or activation results have yet qualified this candidate. Admission and installer hashes failed because independent approval bound to this candidate and base is missing.
  • Current CI, automated review, image provenance, native startup, activation and cleanup remain to be collected. After prerequisites and independent candidate/base approval pass, check for equivalent active runs before one full default PR E2E with empty job and target selectors. No full E2E has been dispatched for this candidate.
  • Model Router runtime success, backend recovery and the historical Hermes ARM64 native crash cause are not established by these local results. Later passing runs do not prove permanent repairs. Runtime, merge and release holds remain; the recurring monitor stays stopped.

Previous candidate 23639a47

The following local validation describes 23639a47 and is historical; it does not qualify 98d8d7bc.

Candidate 23639a4788cdee53d74a975c71d2353a22cdbace includes main b4e43015757400346fcbd4bf438ba6a340304523. OpenShell remains pinned to 0.1.5. Local integration conflicts are resolved; hosted qualification for this commit is pending.

  • Preserve credential-scan failures, cleanup failures and failed security-configuration writes as failures. Reject interrupted Hermes HTTP commands, including null exit status, signals and timeouts.
  • Reject missing, unreadable or nonempty snapshot residue directories. Retain the specifically approved assertion-accounting changes; runtime deadlines are unchanged by this repair.
  • Require the agent to execute curl through the exec tool and independently validate the saved weather response. Retain Open-Meteo and the 180-second deadline. Reject a printed command or tool markup as successful execution.
  • Consume main's native plugin agent-turn checks, model-list HTTP 200 health validation, provider timeout diagnostics and rebuild recovery repairs. Retain only the previously authorized upstream timing changes.
  • Main integration validation passed 2,044 tests with six opt-in checks skipped. The subsequent Hermes interruption repair passed 88 tests; the snapshot residue repair passed 46 tests. These are separate validation runs, not a single full-suite result. Documentation validation reported zero errors, two warnings and 125 routes. Normal commit hooks passed; independent reviews bind the changes to their committed source bytes.
  • Source and artifact reviews preserve unobserved runtime configuration, unreached lifecycle stages and incomplete cleanup inventories as evidence gaps. Source review does not establish runtime success.
  • Fresh CI, automated review, image qualification and independent candidate/base E2E approval remain required before the next full default PR E2E. Runtime, merge and release holds remain. The recurring monitor stays stopped.

Previous candidate ec878588

Full default PR E2E run 41675670035, attempt 1, completed with 69 successful jobs, 19 skipped jobs and 14 failed jobs: 13 scenarios plus the summary. All failed-job logs and the summary were reviewed. The protected GPU job passed with nine provider children and three rollback children, verified provenance, artifacts and cleanup. Native AMD64/ARM64 startup jobs passed; their evidence does not establish complete resource absence. These historical results do not qualify 98d8d7bc.

Previous candidate 027c4516

Candidate 027c451606c16e84288b7a9bd846f9d71735e7bb integrates main 8a24149de8ad15251b0f67319b0f7711cba17a1a, including merged #14062, and resolves ten merge conflicts. OpenShell remains pinned to 0.1.5.

  • Import fix(e2e): keep Ollama cleanup out of login shells #14062’s shared Ollama cleanup helper and local llama.cpp workflow selection repair. Preserve native authenticated routes, gateway lifecycle cleanup and process ownership. Retain the previously approved assertion-budget exception for the added helper and its cleanup checks.
  • Import fix(rebuild): frame early preflight stops (Fixes #13808) #14058’s early rebuild preflight and host fence. Preserve native provider metadata, credential checks, state retirement and failure cleanup.
  • Resolve seven documentation conflicts while preserving native inference routing, supervisor network and private-CA limitations, credential reset refusals and matching-session NIM recovery.
  • The targeted validation run passed 488 tests and failed three imported cleanup-fixture tests because the fixture omitted native lifecycle mocks. After adding those mocks and assertions for cleanup ordering, all three affected tests passed. The original failed run is retained; this was not a single passing 491-test run.
  • Documentation validation passed: 125 routes, zero Fern errors and two warnings. The live assertion census passed with 1,260 direct assertions across 77 test files. Normal commit hooks passed. Independent review covers the final integration commit.
  • Fresh CI, automated review and managed-image qualification are pending. Independent candidate/base E2E approval and runtime qualification remain required. The recurring monitor remains stopped; merge and release holds remain.

Previous candidate f906f3e

Code CI and all eight managed-image contracts passed. Native AMD64 and ARM64 activation passed, with verified candidate/image identities, all 13 phases, cleanup and final resource absence. Rootless Podman activation failed during Deep Agents Code public stop/start. The gateway recorded Starting to Error/ContainerExited before the new containers started and the start RPC succeeded. Both containers were running at diagnostic capture. This supports a reconciliation/start race, but the exact OpenShell cause remains unproved. Nine fixture cleanup callbacks passed; full resource absence after this failure remains unverified.

All nine Advisor specialists completed. Two findings were classified as false positives: the scope finding contradicts the accepted maintainer decision above, and the NIM documentation finding omitted the caller’s matching-session metadata restoration. The hosted Advisor blocker remained failed. CodeQL was cancelled and was not retried. Admission and installer-hash checks required independent candidate/base E2E approval. These results do not qualify 027c4516.

Previous candidate a3f1fd22

Code CI, CodeQL, all nine Advisor specialists, all eight managed-image contracts and all three activation platforms passed, with verified artifacts and recorded cleanup. Candidate-upgrade admission and installer-hash checks still required independent E2E approval for that candidate/base. No new full PR E2E was dispatched. Those results do not qualify f906f3e.

Previous candidate 675c1e10

Candidate 675c1e10e31c4642d4accd8ba2718312255fffd1 rechecks sandbox identity immediately before native provider configuration writes. It retains main 82a1a8f9cb263b6fecdb508e407c5f84f72fd685 and OpenShell 0.1.5.

  • Reject identity drift after asynchronous verification, before writing credentials or reconciling the native timeout. Preserve retained resources, receipts and existing refusal behavior.
  • All 146 focused tests passed. CLI type-checking passed with the repository's existing 8 GB Node.js heap. Documentation built with zero errors and two existing warnings. Normal commit hooks and independent source, security and documentation review passed.
  • This repair addresses the previous Advisor security finding. Fresh CI, automated review, managed images and full PR E2E remain pending. The recurring monitor remains stopped; runtime, merge and release holds remain.

Previous candidate 4c6560

Code CI and CodeQL passed. Advisor reported the configuration-write identity race repaired above. Seven of eight managed-image contracts were verified. Hermes ARM64 terminated with a native segmentation fault after the Switchyard probe printed its success message. The native crash cause remains unresolved; image activations were skipped. No full E2E was dispatched for that candidate.

Candidate 4c6560bca8f7a4dbd6daaf5935c77a2114fe015b adds the missing forward-port release classification after the rootless Podman activation failure on be981db9. It retains main 82a1a8f9cb263b6fecdb508e407c5f84f72fd685 and OpenShell 0.1.5.

  • Report bound or indeterminate/<fixed-kind> without adding raw errors, command output or credentials. Update stop, destroy and rebuild messages to describe unverified release accurately.
  • Preserve the five-second verification deadline, failure result, registry retention, process ownership and cleanup behavior. This diagnostic does not establish or repair the original listener failure.
  • Focused tests passed: 111 tests in the initial run, 95 in the caller update run, and 38 after the typed fixture update. These runs overlap and are not additive. Documentation built with zero errors and two existing warnings. The first push was rejected by CLI type-checking in the new test fixture. The corrected fixture passed CLI type-checking and all 38 focused tests. Normal commit hooks and independent source, security and documentation review passed.
  • The 325-predicate source review and complete 4,310-line failed-job log review preserve the remaining runtime evidence gaps. Those local results do not qualify the new candidate.

Previous candidate be981db9

The runtime identity timing diagnostic passed code CI and all nine Advisor specialists. All eight image contracts and native AMD64 and ARM64 activations were verified. Rootless Podman activation failed because external OpenClaw destroy returned exit 1 after host-port release could not be proved. The old message omitted whether the result was bound or indeterminate.

Final sandbox/container absence and registered cleanup were verified. Gateway recreation occurred before later successful cleanup, so that later success does not prove the original port released on its own. OpenClaw receipt and disclosure predicates after the failed destroy check were not evaluated; additional false predicates are not excluded. No full E2E was dispatched for this candidate.

Previous candidate 9902508

Candidate 9902508b3942114ed3e4fd239bd064adfa163bca added bounded categories for failed OpenClaw pairing observations. Code CI, all nine Advisor specialists, image contracts and all three activation platforms passed. JavaScript/TypeScript CodeQL was cancelled at its existing timeout; it was not retried. Its full E2E result is recorded below. Historical approval and qualification evidence do not apply to a later commit.

Previous candidate e977a2f

Candidate e977a2f0eec46e88c6ed6f07b0947b01800b57d6 adds bounded evidence for the OpenClaw restart readiness failure observed on 3a2b73a. It retains integrated main 82a1a8f9cb263b6fecdb508e407c5f84f72fd685, OpenShell 0.1.5, the receipt correction, #13997 diagnostics, #14027 DRM policy, and the explicitly approved upstream timeouts.

  • On OpenClaw readiness failure, retain the last 32 probe observations, total and dropped counts, native restart status, command/transport status, HTTP status, JSON parse result and Boolean readiness. Exclude raw bodies, stderr, URLs, configuration and credentials.
  • Capture the existing bounded post-failure readiness artifact after native-model restoration restart. Preserve the original failure, cleanup, commands, retries, deadlines and readiness acceptance rule.
  • All 81 focused CLI and E2E-support tests passed. Documentation validation passed: 125 routes, zero errors and two existing warnings. Independent correctness, security and documentation writer review passed for all five changed files. Standalone CLI type-checking exhausted the default Node heap. The actual isolated pre-push hook subsequently passed publication validation and CLI TypeScript checking with its existing configured heap. Normal commit hooks also passed.
  • This change adds diagnostic evidence. It does not establish the historical restart failure's root cause. New candidate CI, reviews, image activation and runtime qualification remain pending. Runtime, release and merge holds remain.

Previous candidate 3a2b73a

Candidate 3a2b73af55138dc8bb0d77af2c513e4cc216f241 integrates main 82a1a8f9cb263b6fecdb508e407c5f84f72fd685 to resolve the Tavily test conflict and repairs plugin coverage. OpenShell remains pinned to 0.1.5. The receipt correction, #13997 diagnostics, #14027 DRM policy and explicitly authorized upstream timeouts remain included.

  • Retain test(e2e): keep the Tavily check credential-free in hosted CI (#13082) #14025's credential-free hosted Tavily check. Hosted CI forwards no Tavily key or authenticated-mode flag and runs check 09 whether a key is missing, empty or present. Preserve failure and skip rejection, manual authenticated checks, audit evidence and cleanup tests.
  • Keep Tavily tests in their existing extracted file while applying upstream behavior changes. Clarify the hosted and manual qualification paths in the E2E README.
  • Move 18 existing pure host-pattern tests from the CLI caller suite to the shared plugin suite that owns the matcher. Add nine matcher cases and six endpoint-pin admission/refusal cases. Keep registered-provider security, ownership and transport tests, runtime source and coverage thresholds unchanged.
  • All 160 focused CLI and E2E-support tests passed. All 1,038 plugin tests passed. Plugin coverage passed the unchanged ratchet: statements 96.10%, branches 89.13%, functions 99.55% and lines 96.95%. The live census remains 1,260 direct assertions across 77 files. Documentation validation passed with 125 routes, zero errors and two existing warnings. Normal commit hooks passed. Independent correctness, security and documentation writer review passed for all eight changed paths at this commit. Gitleaks and private-key checks passed; the diff contains no secrets, API keys or credentials.
  • Code CI, CodeQL, all nine Advisor specialists, eight image contracts and AMD64/ARM64/rootless Podman activation passed. The full default PR E2E result below passed protected runtime but failed eight other scenarios. These results do not qualify a later candidate.

Previous candidate 1892a2b

Candidate 1892a2bf42a016c3247fdf509b7a94ab524da350 integrated main 444ce08acf2aa036060448357a0e36cfc6eb7b23, repaired the image-trigger and registered-provider transport findings, and retained custom-endpoint IP-pin conflict checks.

  • Local integration validation initially passed 433 tests and failed two fixture expectations because the fixture already installed a fake curl executable. Comparing the original directory inventory repaired those expectations, and all 37 affected tests passed. Later compiled/shared checks passed 213 tests; final hook repairs passed 162 policy/matcher tests and 76 action tests. These runs overlap and are not additive. CLI build, docs (125 routes, zero errors, two existing warnings), the 1,260-assertion census, independent review of all 45 integration paths, and normal commit/push hooks passed.
  • All eight image contracts and AMD64, ARM64 and rootless Podman activations passed in image run 41139855238. Archive hashes, candidate/cohort/image identities, recorded cleanup, external-image retention and legacy-volume protection were verified.
  • Code CI failed only plugin coverage; all 1,005 plugin tests passed. The unchanged-source reproduction identified matcher tests in the wrong coverage project. The current candidate repairs that defect. All CLI shards and the aggregate CLI coverage job passed.
  • The code-CI-triggered Advisor skipped because CI failed; no specialist qualification was claimed. Portable and Podman CPU checks passed with verified artifacts and their recorded cleanup limits. Hermes image entrypoint checks passed on both architectures; they do not establish live GPU enforcement or the historical ARM64 failure cause.
  • CodeQL exceeded its unchanged 15-minute JavaScript limit during SARIF export after all 203 queries completed. The recorded base passed with the same tool versions and limit. The slowdown cause remains unresolved; no unchanged retry, timeout increase or main-failure exclusion was used.
  • Candidate/base E2E admission passed. No full PR E2E was dispatched. Complete paginated feedback added no further source finding. These results do not qualify the current candidate.

Previous candidate a98ef85d

Candidate a98ef85d3749c69e676e3a82708dc4bef07e09fa refreshed Pi image receipts and integrated main 85a3a8b29146e1e2e03a76a57ede184aa8231aa8, including #13515. The explicitly authorized WSL shard 1 limit of 300 minutes and expanded dashboard limit of 115 minutes remain included.

  • AMD64 and ARM64 Pi receipts came from successful image run 41118794250 on 43c50f4, with verified immutable references, source identity and receipt authority. All 69 receipt tests and 645 distinct integration tests across 21 files passed. Nine initial failures were local loopback denials; all 45 tests in the two affected files passed after localhost fixture traffic was allowed, with assertions and limits unchanged. Documentation validation passed with 125 routes, zero errors and two warnings; independent review covered all 54 changed files. Normal commit and push hooks passed.
  • Code CI passed. All eight image contracts and AMD64, ARM64 and rootless Podman activation passed, with verified identities, archive hashes and recorded cleanup.
  • All nine Advisor specialists completed. The catalog-trigger and registered-transport findings were valid and are repaired in the current candidate. The blueprint-use finding contradicted production runner calls; the scope finding repeated the accepted maintainer decision linked above. The hosted blocker remained failed.
  • CodeQL exceeded its 15-minute JavaScript/TypeScript limit after query execution. Matching main completed under the same limit; the slowdown cause remains unproven. No retry, limit increase or main-failure exclusion was used.
  • Candidate/base E2E admission passed. No full PR E2E was dispatched for this candidate. Its historical results do not qualify the current commit.

Previous candidate 43c50f4

Candidate 43c50f4ac677ba36ac8edbddcc4c9db015a6b824 integrated main 81fe4746e00d66c4ffc28dccda1d9931458d536b, including #14027's DRM read grant. Its 84 policy tests and documentation validation passed.

  • All eight image contracts and three activation jobs passed. Verified AMD64, ARM64 and rootless Podman artifacts cover startup, retained images, identity drift, legacy-volume protection and recorded cleanup.
  • Code CI failed the strict Pi source-parity check because historical receipts did not match the changed image inputs. The current candidate refreshes those receipts. The other code CI jobs passed; the code-triggered Advisor skipped without specialist qualification.
  • CodeQL's JavaScript/TypeScript job exceeded its 15-minute limit. Python and ShellCheck passed. No unchanged retry or timeout increase was performed.
  • Candidate/base E2E admission passed. No full PR E2E was dispatched for this candidate. These historical results do not qualify later candidates.

Previous candidate 6d4b87b

Candidate 6d4b87b6412321b0f91f0cae8abc58ac0dc78e2c integrates main f0be87d73f43338b99e12b1530c9317cf407d534, including Discord PR #13873 and fetch/restart diagnostics PR #13997. OpenShell remains pinned to 0.1.5. The receipt correction, answer diagnostic and nested fetch evidence repair remain included.

  • Resolve the Discord integration conflicts while preserving native inference, ownership, Pi receipt authority, credential checks and all existing assertions. Regenerate the direct runtime bundle and verify its recorded hash.
  • Make the local tar fixture omit macOS AppleDouble metadata, matching the Linux sandbox archive producer. Production archive inventory validation remains unchanged.
  • Add bounded HTTP failure evidence and a separate HTTPS diagnostic probe. The later probe cannot prove the original response or change the failed assertion into success.
  • Preserve raw OpenShell stop/start and original listener observations. Follow the accepted restart contract with explicit NemoClaw recovery and dashboard checks under both destruction policies. Require cleanup of the separate observer process.
  • Preserve nested fetch run/parent correlation, strict success evidence, retry classification and all existing limits. Extract diagnostic status parsing within the serialized reducer to satisfy the unchanged complexity limit.
  • The Discord integration passed 775 distinct targeted tests. Its managed-Hermes-only package test was skipped on this host. The diagnostics integration passed 279 targeted tests; all 95 affected tests passed again after the helper extraction. These sets overlap and are not a combined distinct count.
  • CLI build, exact test-project membership and assertion census passed. Documentation validation passed with 125 routes, zero errors and two warnings. Independent correctness, security and documentation writer review passed. Normal commit and push hooks passed.
  • At the next required dependency integration, hosted CI, reviews and image qualification for this candidate were still incomplete. Its early admission and installer-hash checks required a fresh candidate/base approval. Static checks then rejected the historical Pi receipts because their image inputs no longer matched. The documented source-first publication permits collecting new image receipts afterward; this is not a CI pass. No approval or full E2E was dispatched for this candidate. No historical Wikimedia cause, original forward exit cause or current runtime pass is claimed. Runtime, release and merge holds remain.

Previous candidate 8fef778

Candidate 8fef778a09bc149669d7b3bc17f712e1877890a3 integrated Tavily revocation PR #13662. Its 566 distinct targeted tests, later 164-test rerun, CLI build, docs and normal hooks passed. CodeQL passed. New main conflicts prevented code CI, images and Advisor from starting; admission required a new candidate-bound approval. Complete paginated feedback contained no new actionable source finding. This candidate did not run full E2E.

Previous candidate 893bef

Candidate 893bef0ac6c9f3ab99cd5fa504c1097b409477e5 adds evidence parsing for nested web_fetch results from pinned OpenClaw 2026.9.2. It retains the main integration, receipt repair and runtime diagnostics in 62b22a9b9d2618b19cc4b30acb0d3107d18b1007.

  • Accept only bounded nested records tied to the selected completed run and an allowed wrapper in both the session and selected trajectory snapshot. Wrong-parent, wrong-run, malformed and error records cannot establish a successful fetch.
  • Preserve existing URL, tool, response and credential-isolation assertions. Reduce raw tool data inside the sandbox; retain only the existing counts, flags and host/protocol fields in evidence.
  • All 71 tests across two files passed after the final edit, including the generated SQLite reducer subprocess test. Independent correctness, security and documentation writer review passed for all four committed file hashes.
  • This repairs a deterministic downstream evidence defect. Personal onboarding still refuses overlapping provider/web policies before this parser runs; no live Personal pass is claimed.
  • CodeQL passed. Merge conflicts prevented code CI, image qualification and Advisor from starting. Admission required a new commit-bound E2E approval. Complete paginated feedback contained no new actionable source findings; this candidate did not run full E2E.

Previous candidate 62b22

Candidate 62b22a9b9d2618b19cc4b30acb0d3107d18b1007 integrates main 4ec4ec634e5e9cf5f00c6bb2d2786a5b5b73eef9 to resolve the merge conflict. OpenShell remains pinned to 0.1.5; the receipt correction, answer diagnostic and ba9214d fixture repairs remain included.

  • Retain fix(onboard): verify dual-stack inference and accept maintainer reports #13767's direct-inference behavior with explicit user authorization: check every resolved IPv4/IPv6 address and accept connection refusal or network/host unreachable as unavailable access. A reachable response must satisfy the policy-denial contract, including the existing native typed fields. Transport failure does not establish policy enforcement.
  • Preserve timeout and byte limits, model/tool checks, credential isolation and ownership checks. No additional retries or timeout increases were introduced.
  • Add four native IPv6-to-IPv4 regression cases. Move the existing shell smoke cases without changing their assertions to keep both suites below the file-size limit.
  • All 172 targeted tests passed: 126 inference smoke tests and 46 backup tests. Test-project membership passed. Documentation build passed with zero errors and two existing warnings.
  • Independent correctness, security and documentation writer review passed for all 14 integrated files. Normal pre-commit, commit-msg and pre-push hooks passed. All 290 PR commits are Verified; local, SSH and PR identities agree.
  • Code CI, CodeQL, documentation, growth and managed images passed. All eight image contracts have verified archive hashes, candidate/cohort identities and immutable image references.
  • AMD64, ARM64 and rootless Podman activation each passed two scenarios. Verified artifacts record 13 activation phases, 13 cleanup actions, five final resource-absence pairs, external-image retention and identity-drift rejection, plus legacy-volume preservation and fixture cleanup. These results do not qualify protected GPU inference or the full E2E suite.
  • All nine Advisor specialists completed. Eight are clear. Customer value repeats the scope objection addressed by the accepted maintainer decision linked above; the hosted blocker remains failed. CodeRabbit skipped the bot-authored PR.
  • Admission initially lacked this candidate’s approval. The authorized candidate/base approval was published and verified before the full E2E run below.
  • Hermes ARM64 image qualification passed this run. The native-exit diagnostic archives are retained, but the prior crash cause remains unproven. Full default PR E2E subsequently failed as detailed below. Runtime, release and merge holds remain.

Historical repair candidate ba9214d

Candidate ba9214d17fdca2f0932d3ece814ae9f75027224a adds two test-fixture repairs and a bounded Hermes native-exit diagnostic on top of 29bde. OpenShell remains pinned to 0.1.5.

  • Mock the gateway failure classifier in status rendering tests so they do not start real Docker or network probes. Assert the expected classification and classifier call.
  • Preserve descriptor 3 through the snapshot test's tar wrapper. Production restore reads the validated, unlinked archive from that descriptor.
  • Enable Python faulthandler in the Hermes Switchyard probe and record whether the library remains mapped after shutdown. Preserve all 22 Python assertions, the required zero exit status, timeouts and cleanup.
  • All 74 focused status/snapshot tests and 64 managed-image workflow/installer tests passed. Syntax and assertion-preservation checks passed. Independent review passed for all four changed files; no public documentation change is required.
  • Complete review of the 18,328-line Hermes failed-job log and 340 source predicates confirms the failure occurs after the Python assertions. The native fault frame remains unknown. This diagnostic is not a crash fix or runtime qualification.
  • Normal pre-commit, commit-msg and pre-push hooks passed. All 289 commits were Verified. CodeQL and growth checks passed; admission required a new candidate approval. A merge conflict prevented code CI and image qualification. Full default PR E2E was not dispatched.

Main integration candidate 29bde

Candidate 29bdeabb1f1ce3247d5bd3f921dccaae0ab8fb10 integrates main de00977585d04f3bac7b090a0870b0d2dca4972d to resolve merge conflicts. It retains the host receipt correction from #13887 and the bounded answer diagnostic from #13932. The OpenShell CLI and SDK remain pinned to 0.1.5.

  • Preserve detached sandbox creation, mTLS Health probes, native provider policies, credential isolation, ownership and retained data during integration.
  • Accept complete OpenShell 0.1.x sandbox inventories during portable transaction cleanup. Reject partial pages, malformed rows, duplicate names and transport failures.
  • Keep the providers_v2 refusal regression on its legacy runtime branch; retain the separate native projection tests.
  • Retain ci(e2e): retain portable Hermes failure diagnostics and cleanup #13686's upstream portable rootless timeouts with explicit user authorization: 46 minutes 15 seconds for the test and 85 minutes for its job. No further increases were made.
  • Initial focused validation: 356 passed, 1 skipped and 1 failure in the legacy refusal fixture. After repair, all 103 targeted tests passed across five files, including 13 cleanup inventory cases. These runs overlap.
  • Test project membership passed for 2,923 candidate files across seven disjoint projects. Documentation build passed with zero errors and two existing warnings.
  • Independent review passed for all conflict resolutions and affected integration overlaps. Normal pre-commit, commit-msg and pre-push hooks passed, including publication validation and CLI type checks. All 288 commits in the PR are Verified on GitHub.
  • Code CI failed in the status-flow and native snapshot test fixtures. Hermes ARM64 image qualification failed after the Switchyard probe printed success and exited 139; five other root-entrypoint scenarios passed. Seven other image contracts passed, but dependent activation was skipped. Advisor was skipped after CI failed. Full default PR E2E was not dispatched.

Historical candidate validation

Preceding candidate bfa084f396c11ae1aa504f286aaae88d56909737 integrated main b10117ecdf3318da48e882362d971dce6879750c. Its 566 focused tests, later 185-test overlap run, documentation build and publication hooks passed. CodeQL and growth checks passed. E2E admission required a new candidate approval, and subsequent merge conflicts prevented normal PR code CI and image qualification.

Earlier candidate 5dfa15c completed code CI, CodeQL, admission and image qualification, including eight image contracts and three activation platforms. Its registered-provider HTTPS correction remains included. Nine Advisor specialists completed; the hosted scope blocker remained red despite the documented accepted scope decision. Historical results do not qualify the current candidate or bypass a current gate.

Historical full PR E2E on 9902508

Run 41189216914, attempt 1 tested 9902508b3942114ed3e4fd239bd064adfa163bca, starting October 31 at 09:34:02Z (2:34 AM Pacific). Empty job and target selectors selected the full default PR suite. Base and executing workflow: 82a1a8f9cb263b6fecdb508e407c5f84f72fd685.

Result: 73 successful jobs, 19 skipped, nine failed scenarios and the failed Relevant E2E summary.

Failed scenarios Count Established result
Private MCP TLS 3 Private TLS servers recorded unknown-CA alerts before HTTP. The upstream CA feature is absent from the pinned release.
Personal web access and policy ordering 2 The Personal compatibility guard refused after onboarding. The specific overlap or unverifiable-endpoint branch was not captured.
Hermes GPU compatibility and fallback 2 The selector rejected the supervisor/workload pair. A selector-only repair cannot provide the required OpenShell-owned bootstrap and recreation contract.
Runtime identity 1 Two OAuth issuances preceded the first resource assertion. All 17 probes authenticated with version 2, while the assertion required version 1. Exact initiating callers remain unproved.
Protected managed-image runtime 1 All three agents passed Ollama and vLLM. NIM image preparation exhausted the shared deadline before NIM agent checks or rollback. Buffered child output does not distinguish pull from tag at interruption.

Both public-reference fetch scenarios and the concurrent dashboard lifecycle passed. These results do not establish the historical failures' causes. Both native startup architectures passed with verified artifacts. Failed-job content, candidate/workflow provenance, result receipt bindings and the retained protected-runtime cleanup evidence were reviewed.

Registered cleanup callbacks passed within their recorded limits. Full protected-runtime resource absence remains unverified. The failed identity scenario did not reach its provider/profile deletion commands, which are not registered failure cleanup callbacks. No resource leak is confirmed. No unchanged retry, relaxed assertion or additional runtime limit was used. This run does not qualify the new diagnostic commit.

Historical full PR E2E on 3a2b73a

Run 41151876561, attempt 1 tested 3a2b73af55138dc8bb0d77af2c513e4cc216f241, starting October 31 at 00:45:23Z (October 30 at 5:45 PM Pacific). Empty job and target selectors selected the full default PR suite. Base and executing workflow: 82a1a8f9cb263b6fecdb508e407c5f84f72fd685.

Result: 74 successful jobs, 19 skipped, eight failed scenarios and the failed Relevant E2E summary. Release qualification was skipped as expected for manual PR mode.

Failed scenarios Count Established result and remaining work
Private MCP: OpenClaw, Hermes, Deep Agents Code 3 Private discovery failed with unknown-CA TLS alerts. OpenShell #3292 merged, but its fix is absent from pinned 0.1.5 and latest stable 0.1.6. A released runtime containing the fix and gateway CA integration need qualification.
Hermes GPU compatibility-only and fallback 2 The legacy container guard conflicts with the native workload/supervisor pair. A selector-only change would not preserve runtime-owned bootstrap, identity and network authority. OpenShell #4837 remains open; its WSL prototype is unpublished and does not qualify these scenarios.
Personal public fetch and policy preset ordering 2 NemoClaw refused overlapping Personal/custom-provider policy before later assertions. OpenShell #4662 still requires an accepted policy-composition design.
OpenClaw security posture 1 Native model invocation returned PONG; model restoration and validation passed. The subsequent restart failed its readiness wait. The retained evidence lacks the HTTP/readiness result; this revision adds bounded diagnostics.

Protected managed-image runtime passed all nine agent/provider combinations across OpenClaw, Hermes and Deep Agents Code with Ollama, vLLM and NIM. All three bootstrap rollback cases, five phases, four registered cleanup actions, final owned provider/sandbox/network inventory, child cleanup guards and workflow registry/auth cleanup passed. Archive bytes and SHA-256, candidate/workflow identity, seven projected/restored sources and all 39 command artifacts were verified. The executing harness belongs to trusted workflow 82a1a8f; this does not claim execution of the differing candidate helper. NIM's recorded image ID binds its mutable requested tag.

Both public-reference jobs and concurrent dashboard lifecycle passed. These passes do not establish the causes of the historical Wikimedia or forward-lifetime failures. Both native startup architectures also passed with verified evidence. All eight failed scenario logs and the source/runtime reconciliation are complete. No failure was excluded as inherited without evidence, and no unchanged retry, relaxed assertion or increased runtime limit was used. This run does not qualify the next commit or clear full runtime, release or merge holds.

Historical full PR E2E on 62b22

Run 41087961129, attempt 1 tested 62b22a9b9d2618b19cc4b30acb0d3107d18b1007 on October 30, from 16:13:52Z to 17:32:21Z. Empty job and target selectors selected the full default suite. Base and trusted workflow were 4ec4ec634e5e9cf5f00c6bb2d2786a5b5b73eef9.

Result: 74 successful jobs, 19 skipped, eight failed scenarios and the failed summary job.

Failed scenario Established result and remaining limit
OpenClaw private MCP Private endpoint recorded unknown-CA TLS alerts and no secure connection. Private discovery failed.
Hermes private MCP Same private TLS rejection; provider attachment and pins do not establish successful discovery.
Deep Agents Code MCP Docker readiness exceeded its 15-second limit before sandbox creation. The Docker stall cause is absent from retained output.
Hermes GPU fallback Compatibility cutover failed after the main process exited. Native workload/supervisor layout is incompatible with legacy recreation; the precise rejected guard predicate is not captured.
Hermes GPU compatibility-only Same startup/cutover boundary. A selector-only repair would not establish runtime-owned bootstrap and network authority.
Personal public fetch NemoClaw refused overlapping Personal/custom-provider policy. Later fetch and parser assertions were not reached.
Concurrent dashboard Sibling destruction preserved the survivor. Dashboard probes refused connections after raw stop/start; the original forward exit branch was not captured.
Protected managed-image GPU OpenClaw/Ollama passed. Hermes/Ollama failed startup; later agents, vLLM, NIM, rollback and final inventory were not reached. The narrow DRM policy prerequisite merged through #14027 and is integrated; a new runtime result is still required.

Both public-reference jobs passed in this run. This does not prove the cause of the historical Wikimedia failure. Native startup passed for all three agents on AMD64 and ARM64, with verified artifacts.

All failed scenario logs, the summary log and 1,806 source predicates are reviewed. Candidate/workflow provenance and downloaded artifact hashes are verified. Registered cleanup actions passed within their recorded contracts; full protected sandbox-record and volume absence is not established. No leak is confirmed. No unchanged retry, relaxed assertion or additional timeout increase was used.

Historical full PR E2E on 909db

Run 40630819405, attempt 1 tested preceding candidate 909db53d941a772a778940ce5033f32afd2f2781: 73 passed jobs, 19 skipped, nine failed scenarios plus the failed summary check. Empty job and target selectors selected the full default suite. Base 1864afdba and trusted workflow 3619e535e are verified. No failure is excluded as already present on main.

Failed scenarios Count Evidence and required work
Private MCP: Deep Agents, Hermes, OpenClaw 3 Private discovery fails with unknown-CA TLS alerts and no secure private connections after provider attachment and matching pins. The Docker supervisor CA gap remains unresolved.
Hermes GPU compatibility and fallback 2 Canonical startup exits before compatibility replacement. The rejected startup-guard predicate remains unproven. Preserve the guard and qualify runtime-owned GPU handling.
Personal public fetch 1 Onboarding explicitly rejects provider/Personal policy overlap. Safe coexistence must preserve provider restrictions.
OpenClaw public reference 1 The agent reports Wikimedia 503; no raw HTTP evidence confirms it. Two failed tools and no successful tool names leave an incomplete replay that the parser correctly rejects.
Concurrent gateway lifecycle 1 The survivor gateway, registry and Ready state remain intact, but dashboard port 18789 refuses all twelve probes after raw unscoped stop/start. OpenShell forward lifetime is a plausible cause, without captured process-exit proof.
Protected managed-image GPU/local inference 1 OpenClaw bootstrap, CUDA initialization and the direct provider probe pass. The host receipt check then lacks authority because it receives the filtered sandbox environment. The trusted harness correction merged through #13887 and is included in this candidate; full live qualification is pending.

All nine failure archives have verified identities and successful cleanup. Complete failed-job logs and the affected source assertion audit are reviewed. In that historical PR run, protected NIM/vLLM and later agent phases were unreached. Source diagnosis and local tests do not establish live success.

For tested candidate 909db, code CI, admission, installer hashes and managed images passed. All eight builds and AMD64, ARM64 and rootless Podman activation passed; their archives and cleanup are verified. CodeQL passed its one bounded cancellation retry. These results do not qualify the current candidate.

Documentation Writer Review

  • Documentation writer subagent reviewed the completed changes

  • Result: docs-updated

  • Historical evidence: Independent review covers all 46 paths in the integration at 027c451606c16e84288b7a9bd846f9d71735e7bb, including these 19 documentation files: docs/deployment/deploy-to-headless-server.mdx, docs/get-started/quickstart-langchain-deepagents-code.mdx, docs/inference/configure-model-capabilities.mdx, docs/inference/set-up-llama-cpp.mdx, docs/inference/set-up-ollama.mdx, docs/inference/switch-models.mdx, docs/inference/switch-providers.mdx, docs/inference/use-nvidia-endpoints.mdx, docs/inference/verify-inference-route.mdx, docs/manage-sandboxes/backup-restore.mdx, docs/manage-sandboxes/recover-rebuild-sandboxes.mdx, docs/manage-sandboxes/uninstall-nemoclaw.mdx, docs/reference/architecture.mdx, docs/reference/commands.mdx, docs/reference/network-policies.mdx, docs/reference/troubleshooting.mdx, docs/security/best-practices.mdx, docs/security/credential-rotation.mdx, docs/security/credential-storage.mdx. The review checks the writing rules, documentation style, implementation and validation evidence. Earlier changes retain their recorded reviews and evidence limits.

  • Historical evidence: Independent correctness, security and documentation writer review covers all 17 integration paths at 98d8d7bc9f8238f50ebbcb2c208a6ac1a0094dfe, including .agents/references/provider-profile-inventory.md, ci/platform-matrix.json, docs/reference/platform-support.mdx and src/lib/onboard/lifecycle-contracts.md. The final return-type repair was independently reviewed and reconciled to the committed bytes. The review checks the writing rules, documented behavior and saved validation evidence; it does not establish runtime qualification.

  • Historical evidence: Independent writer, correctness and security review passed for all 212 changed files at d79c6e3cc8b1a08f9f23dac79cd4a7c3a1baafb8, including the OpenShell 0.1.7 migration, required main integration and subsequent repairs. integration-12831-commit-review.json binds the reviewed file hashes to the final commit. The review checks the writing rules, documented behavior, preserved contracts and saved validation failures as well as passes; it does not establish runtime qualification.

  • Historical evidence: Independent writer, correctness and security review passed for the four-file repair at 160c2660a5471a4c440b31cf065bcb5d54041284. ci-repair-commit-review.json binds all four files and the complete diff to ci-repair-independent-review-2.json. No public documentation change is required for this test repair. Historical migration reviews remain applicable to unchanged files; runtime qualification remains pending.

  • Historical evidence: Independent writer, correctness and security review passed for all 32 integration and repair files at ec08b61d19b1a8694ec6a5bc8cc1f74cdffd891a. integration-e996/commit-review.json binds the complete diff and file hashes to this commit. The review covers the installer permission repair, conflict resolutions, refreshed Pi receipts, documentation and validation evidence. Six interactive-shell tests remain unverified locally; runtime qualification remains pending.

  • Agent: Codex Desktop

  • Historical evidence: Independent writer, correctness and security review passed for the one-file integration at 47194fd432562c33a1371d007d7435aa0c7ff974. integration-1689/commit-review.json binds the audit digest correction and verifies that all three conflict resolutions preserve the prior receipt and authority bytes. Pi qualification is pending; no runtime pass is claimed.

  • Historical evidence: Independent writer, correctness and security review passed for the three-file Pi receipt repair at 347ef55c86595709d11e060c13eea870602c700e. images-attempt7/receipt-repair/independent-review.json binds both receipt files and their authority hashes to the commit. All 60 focused tests, strict source parity and unmocked production receipt reads passed. No public documentation change is required. Full runtime qualification remains pending.

  • Historical evidence: Independent writer, correctness and security review passed for the three-file main integration at 41f91e35896dc4ea52947f51729b0b5582b795af. integration-ffaaf7/independent-review.json binds the integrated files and validation evidence. All 22 resource tests and strict Pi source parity passed; no documentation change is required. Runtime qualification remains pending.

  • Historical evidence: Independent writer, correctness and security review passed for the seven-file blueprint repair and five-file main integration at a816c34dd1ea9a733f33925b6496a151b48f766f. The review binds the committed file hashes, preserves the upgrade assertions and verifies the 345 distinct passing tests. Documentation covers configuration-only recovery; live recovery and hosted qualification remain pending.

  • Historical evidence: Independent writer, correctness and security review passed for the four-file repair at 38b5b86bdfb2df84ef642721f4d7be711b95ece5. blocker-repair/commit-review.json verifies that the committed bytes match blocker-repair/independent-review.json. All 91 focused tests passed. No additional documentation change is required: the repair enforces the existing recovery boundary and retrieves unchanged verified package contents. New hosted qualification remains pending.

  • Historical evidence: Independent source, security and documentation writer review passed for the 50-file main integration at d892556a58157338743eebe7191df437568eecb6. integration-282ee15/commit-review.json binds the committed bytes to the source review and approved assertion budget. All 762 focused tests passed. Documentation explains loopback publication, retained-state refusal and physical-host access checks; its build passed with two existing warnings. Normal commit hooks passed. Hosted qualification and runtime evidence remain pending.

Review notes

Independent writer, correctness and security review passed for the committed 0.1.7 migration and required main integration at d79c6e3cc8b1a08f9f23dac79cd4a7c3a1baafb8; its 212 file bindings are recorded in integration-12831-commit-review.json. Hosted qualification remains pending. Independent review of the 17-path integration and final type-only repair at 98d8d7bc9f8238f50ebbcb2c208a6ac1a0094dfe is historical. The earlier 46-path integration review at 027c451606c16e84288b7a9bd846f9d71735e7bb remains historical. Repair reviews and runtime evidence retain their recorded limits. Source review does not supply the independent candidate/base E2E approval or approve runtime qualification.

The PR author, nvidia-nemopatch-writer[bot], posted the opening authoring-session report. The report marks the original session evidence unavailable and excludes later repair and qualification work. Exact bot identity, unchanged report text and complete comment pagination were verified; the retrieved report passes the repository validator.

Main integration includes the receipt-authority correction from #13887 and the bounded answer diagnostic from #13932. Main protected-runtime run 40877717150 passed all-agent Ollama/vLLM phases and the OpenClaw NIM command, then exhausted the shared 45-minute deadline during Hermes NIM. That historical main run did not qualify Hermes/Deep Agents Code NIM or rollback, and interrupted-child resource absence was not established. Historical PR run 41151876561 on 3a2b73a completed those phases. Neither run proves a permanent repair for the historical empty-answer behavior.

Controller repairs #13635 and #13763 and SDK prerequisite #13796 remain integrated. Historical candidate 98d8d7bc integrated main 91f79b05f8f358868b265d928bcd7703783ac2ad after its preceding candidate completed scheduled feedback. It preserves the prior runtime identity diagnostics. Runtime qualification, release and merge holds remain.

The historical Podman restart race remains tracked by OpenShell #4932. Later activation passes do not prove that race fixed. No restart workaround, readiness relaxation or unsupported main-failure exclusion was introduced.

Sensitive paths in the overall PR include workflows, runtime scripts and images, policy, inference, messaging, onboarding and validation tooling. Independent review covers the recorded repair files; all nine Advisor specialists passed for previous candidate a3f1fd22. The two hosted Advisor findings for f906f3e are classified above; its hosted blocker remains failed. Hosted review of d79c6e3cc8b1a08f9f23dac79cd4a7c3a1baafb8 remains pending; historical hosted results do not qualify it. Full qualification, approval and merge remain blocked.


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

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

@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
Base automatically changed from nemopatch/openshell-upgrade/13d8cdd37d346ace/trust to main October 7, 2026 14:57
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

@github-code-quality

github-code-quality Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Code coverage overview

Languages: TypeScript

TypeScript / code-coverage/plugin

main 63002cd nemopatch/openshell-... aa347a1 +/-
96% 97% +1%
View coverage of the 10 most impacted files.
File main 63002cd nemopatch/openshell-... aa347a1 +/-
nemoclaw/src/onboard/config.ts 98% 96% -2%
nemoclaw/src/ru...time-context.ts 100% 99% -1%
nemoclaw/src/bl...print/runner.ts 95% 95% 0%
nemoclaw/src/sh...cy-boundary.cts 100% 100% 0%
nemoclaw/src/bl...ime-identity.ts 97% 97% 0%
nemoclaw/src/bl...est-fixtures.ts 98% 99% +1%
nemoclaw/src/index.ts 94% 99% +5%
nemoclaw/src/de...search-state.ts 0% 100% +100%
nemoclaw/src/on...native-route.ts 0% 100% +100%
nemoclaw/src/search-config.ts 0% 100% +100%

TypeScript / code-coverage/cli

main 63002cd nemopatch/openshell-... aa347a1 +/-
84% 86% +2%
View coverage of the 10 most impacted files.
File main 63002cd nemopatch/openshell-... aa347a1 +/-
src/lib/onboard...model-router.ts 80% 0% -80%
src/lib/actions...ess-recovery.ts 65% 83% +18%
src/lib/inferen...ollama/proxy.ts 41% 61% +20%
src/lib/onboard...mage-runtime.ts 52% 74% +22%
src/lib/domain/...y/dimensions.ts 0% 75% +75%
src/lib/actions...ry/operation.ts 0% 76% +76%
src/lib/actions...try/snapshot.ts 0% 84% +84%
src/lib/inferen...er/lifecycle.ts 0% 87% +87%
src/lib/inferen...er/blueprint.ts 0% 93% +93%
src/lib/hermes-...yard-routing.ts 0% 95% +95%

ℹ️ Calculations represent line coverage. Results may change as calculations are updated.


Updated November 11, 2026 03:28 UTC

@prekshivyas

Copy link
Copy Markdown
Collaborator

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor
⚠️ Action not completed

Review skipped.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

prekshivyas added a commit that referenced this pull request Oct 9, 2026
…2847)

## Outcome

PR E2E uses the upgrade commit's reviewed dependency inputs instead of
forcing main's versions. This change consolidates #12848's Deep Agents
controller fix and extends candidate selection through protected CPU/GPU
image builds and the OpenShell host runtime.

The acceptance target is at most two PRs for upgrades to existing
supported dependencies: normally one upgrade PR, plus one
trust/bootstrap prerequisite when necessary. Ordinary version bumps must
not need a third workflow-fix PR.

## Reason

OpenShell #12603 needs candidate runtime qualification, and Deep Agents
#12376 needs its candidate base in the protected controller. Selecting
candidate artifacts only in ordinary jobs leaves protected consumers on
main's dependencies. Pi also needs to publish source before it can
attach the resulting qualification receipts.

## Changes

- Resolve a reviewed OpenShell release from fixed files at the candidate
commit. Run this resolver only for its selected gateway consumers.
Candidate source remains inert input to pin and operational-template
verification.
- Derive image prerequisites from the existing workflow dependency
graph. Gateway-only and native-producer selections do not wait for
unused image publication. Image consumers and full release qualification
retain their gates.
- Reuse the existing candidate image path for OpenClaw, Hermes, Deep
Agents, Pi, OpenShell and shared npm inputs. Published base reuse now
checks Dockerfiles, parser inputs, ignore rules and copied files for all
three managed agents.
- Build candidate OpenClaw, Hermes and Deep Agents bases on native CPU
runners. Export each as OCI content with its agent, source, workflow,
platform and run identity. Protected GPU consumers verify those bytes
and identities before offline use; they reject published-base
substitution for PR runs.
- Project only reviewed OpenShell modules and release literals into the
trusted GPU controller. Select the reviewed candidate SDK archive,
retain the trusted dependency graph, then build and verify the CLI.
Restore the seven projected source files after qualification. These
steps reuse existing pin, archive and dependency-resolution controls
because arbitrary candidate host code cannot run with protected
credentials.
- Reuse main's Pi `--publication` check for local source publication,
including later repairs in the same PR. The same PR then adds both
published receipts and matching authority. CI remains strict; partial
refreshes and source drift fail.
- Retain verified-byte receipt parsing, staging Launchable opt-in,
failure propagation, resource cleanup and full-release gates. Update the
owning E2E guidance.
- Refresh both Pi qualification receipts from the successful candidate
image publication. Correct the managed-base fixture's platform and
image-label inputs. Validate and read protected files through the same
descriptor, with symlink and hardlink rejection tests. Add fixed,
non-secret approval-selector failure categories without changing its
acceptance rules.

## Verification

Current commit: `da4ce1d219e538cab23cb519aa65e90fda55c8e7`; base:
`6a02aac7f0053978a20eaed73159386e0ad2aff9`.

- [Core CI](https://github.com/NVIDIA/NemoClaw/actions/runs/37865126626)
passed, including all twelve CLI shards, coverage, static checks and the
final gate. [Security
scanning](https://github.com/NVIDIA/NemoClaw/actions/runs/37865126621)
passed.
- [Managed-image publication and
activation](https://github.com/NVIDIA/NemoClaw/actions/runs/37865126620)
passed. Both native Pi producers and all three managed-agent producers
succeeded. Docker and Podman artifacts bind the current commit and image
digests. Each reports 28 controlled-inference turns, zero activation
builds and 13 successful cleanup callbacks.
- [Self-hosted GPU
qualification](https://github.com/NVIDIA/NemoClaw/actions/runs/37865127484)
passed on attempt 2. The initial selector timed out before managed
publication completed; one affected-job rerun after publication
succeeded passed selection and the live test. Verified evidence binds
`da4ce1d`, records full GPU offload, an authenticated real OpenClaw
agent turn, public runtime destruction and provider resources already
absent. All three cleanup callbacks passed.
- [Focused manual
qualification](https://github.com/NVIDIA/NemoClaw/actions/runs/37869966568)
passed from trusted main, including Relevant E2E. All five selected jobs
passed: cloud onboarding, full OpenClaw E2E, Hermes E2E, and
OpenClaw/Hermes security posture. Verified artifacts bind the current PR
commit, workflow and dispatch correlation; each reports one passed test
with no failures, skips or errors. All recorded cleanup callbacks
passed. These tests do not establish candidate OpenShell 0.1.2 coverage.
Jetson, DGX Spark queue and staging Launchable opt-ins were false; full
Release qualification was not selected.
- Focused local validation of the expanded repair passed 13 files / 571
distinct tests. Projection tests cover immutable commits, reviewed
templates, SDK integrity, dependency metadata, tampering, filesystem
redirection, rollback and restoration. Executable SDK fixtures exercise
installation/import without lifecycle scripts or package credentials.
- Image handoff tests cover three agents and both native platforms. They
reject wrong-agent, source, workflow, run, platform and digest evidence.
Dependency-input regressions select candidate artifacts without workflow
edits and reject fallback to main after failed candidate publication.
- OpenShell #12603 package and lock inputs at
`f473315ca9b64cab56305f3bf4a15a877f0904b2` select reviewed SDK `0.1.2`
through the pure projector. This is not live SDK/runtime qualification.
- All four Pi checker/runner conflicts are resolved; those files match
the recorded main commit. The isolated checker/runner suite passed 57
tests. Normal commit hooks, isolated pre-push publication validation and
CLI TypeScript passed. All six PR commits are GitHub Verified.
- Local broad coverage could not finish under the approved macOS
isolation. The current Linux CI coverage result above supplies the
completed broad gate; no local broad-check pass or waiver is claimed.
- The diff contains no secrets, API keys or credentials.

## Review notes

Sensitive paths include `.github/workflows/e2e.yaml`, changed
`scripts/**`, `tools/e2e/**` and
`tools/pr-review-advisor/REVIEW-QUEUE.md`. Source self-review covers
candidate admission, protected execution, prerequisite propagation,
OCI/SDK verification and cleanup.

The [actual Advisor
run](https://github.com/NVIDIA/NemoClaw/actions/runs/37866718854)
reviewed current commit `da4ce1d` against base `6a02aac7`. All nine
specialists completed with no findings. Their artifacts and published
review were read. The deterministic E2E floor remains required; clear
reviews do not waive it.

[CodeRabbit's actual
review](#12847 (comment))
covers the final repair from `2cde38759` to `da4ce1d` and reports no
actionable comments. All three recorded review threads are resolved.
Earlier parity, receipt, fixture, pathname-race and diagnostic findings
were repaired; current core CI and security scanning passed afterward.

All reported PR checks and the focused manual E2E run are green on
`da4ce1d`. GitHub reports no merge conflicts, but human review remains
required. The protected qualification boundary below remains unresolved;
no automated review grants human approval or merge authority.

### Remaining qualification boundary

Current trusted main accepts only the v1 protected activation contract;
this PR introduces the v2 controller needed by candidate builds. Running
that known-rejected protected path before adoption would not qualify it.
Live protected candidate OpenShell/SDK projection therefore still needs
the adopted trusted controller, followed by testing the existing upgrade
PR. No third workflow PR should be needed for that supported path.

The completed Docker/Podman tests do not establish OpenShell 0.1.2
coverage or every dependency combination. Both current native Pi
publications and strict CI passed; Pi source publication and receipt
attachment remain within this PR. New release trust, SDK dependency
graphs, permissions or controller protocols may require the one allowed
trust/bootstrap prerequisite.

This PR does not claim full release qualification, waive missing
evidence, resolve the separate inference epic, or authorize merge.

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

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

* **Reliability**
* E2E checks can skip managed-image publication when selected checks
don’t require those images, while still enforcing publication for
dependent checks.
* Protected runtime checks verify candidate image artifacts and use
reviewed OpenShell sources and SDK versions.
* Admin approval selection errors now produce specific diagnostics
without exposing sensitive details.
* **Compatibility**
* OpenShell gateway checks resolve the version from the selected
candidate rather than relying on a fixed version.
* **Documentation**
* Added guidance on managed-image handling, E2E prerequisites, and
protected runtime checks.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
@prekshivyas

Copy link
Copy Markdown
Collaborator

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor
⚠️ Action not completed

Review skipped.

prekshivyas added a commit that referenced this pull request Oct 12, 2026
…13041)

## Outcome

Trust the OpenShell 0.1.2 supervisor operational template that results
from main's #12928 thread-group process reader, so the base-trusted
installer-pin verifier accepts the 0.1.2 upgrade (#12603).

## Reason

#12597 trusted the 0.1.2 release manifests and template hashes, but
#12928 later changed the supervisor operational template. The 0.1.2
selection now hashes to
`31e6923609575d64ac36943e58218c801be366b782def8d33406df6e938ef5dd`,
which `scripts/checks/extract-installer-pins.mts` does not list. Because
`installer-hash-check.yaml` runs the verifier from the PR base, #12603
cannot approve this itself: `check-hash` fails, and the manual E2E
planner stops at "Resolve reviewed candidate OpenShell version".

## Changes

- Append the exact hash to the 0.1.2 `runtimeTemplateSha256` list. No
existing trust record is changed or removed.

## Verification

- Against #12603's tree (`0b34b45f6`), main's parser fails with
`supervisor runtime operational template is not base-trusted ...
actual_sha256=31e69236…`. With this change the same command succeeds and
emits the 0.1.2 `release-tsv` records.
- Added `test/install/installer-hash-check.test.ts` coverage for the
0.1.2 thread-group template: it accepts the exact template and rejects
it after the runtime bytes are altered. Without the trust line the
acceptance case fails with `actual_sha256=31e69236…`. File: 96 passed,
at its 1500-line budget.
- Commit hooks passed, including secret scan and growth guardrails;
pre-push typechecks passed.
- This does not touch #12603's other blocker (the activation E2E
inference-route observation), which is tracked separately in #12558.

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

🤖 Generated with [Claude Code](https://claude.com/claude-code)


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

* **Chores**
* Updated verification data for the OpenShell 0.1.2 runtime templates.
No user-facing behavior changed.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
@prekshivyas

Copy link
Copy Markdown
Collaborator

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor
⚠️ Action not completed

Review skipped.

@prekshivyas prekshivyas changed the title chore(deps): upgrade OpenShell runtime and SDK to 0.1.2 chore(deps): upgrade OpenShell runtime and SDK to 0.1.3 Oct 15, 2026
prekshivyas added a commit that referenced this pull request Oct 15, 2026
…dits (#13183)

## Outcome

Let an independently reviewed upgrade PR supply OpenShell installer
trust records and an SDK identity as data, while keeping verification
code on the trusted base. Preserve reviewed records after merge,
distribute verified SDK archives to ordinary PR CI, and build candidate
managed images on native AMD64 and ARM64 runners.

Main remains pinned to OpenShell 0.0.116. This prerequisite prepares
support for #12603; it does not activate or qualify OpenShell 0.1.3.

## Reason

Ordinary upgrades should reuse the existing qualification infrastructure
instead of requiring a new workflow PR for every version or template
change. The accepted scope uses at most the existing prerequisite and
upgrade PRs. Candidate code must not gain shared protected-host
authority.

### Related issues

Refs #12603. Inference migration remains tracked separately in #12558.

## Changes

- Add a bounded OpenShell trust registry to the existing verifier.
Preserve historical artifact identities, complete manifest sets and
template revocations. Authenticate changed candidate trust against an
exact upstream PR head/base and an independent maintainer's current
approval. Approval does not replace upstream artifact hashing.
- Connect installer-hash checks and E2E version selection to that
admission path. Refresh the complementary commit status using
trusted-base code and inert API data. Reject stale identities, edited or
revoked approvals, forks and incomplete observations.
- Extend the existing SDK producer and npm verifier to approval-bound
official SDK archives. Validate matching manifests/locks, archive bytes,
workflow provenance and unchanged npm/audit policy. Remove API
credentials before candidate dependency installation. Support GitHub's
verified merge checkout without executing the PR source as the
controller.
- Extend managed-image production to native AMD64 and ARM64, retaining
rootless Podman on AMD64. Validate platform-specific digests, catalogs
and lifecycle contracts. Add a Pi receipt collector that verifies both
architecture artifacts from one successful run and emits a patch without
applying it or dispatching work.
- Close the reviewed installer bypass: a newer installed CLI no longer
skips inspection of retained legacy state. Revoke the unsafe prospective
template fingerprint and retain real shell-process denial regressions.
- Prepare the prospective OpenShell 0.1.3 trust record and SDK identity
while retaining the active 0.0.116 producer.
- Make dependency-pin consistency checking use the existing strict
registry parser and resolver instead of scanning the old inline release
table. This lets registry-only 0.1.3 records be checked while retaining
legacy identities and rejecting malformed, duplicate, incomplete or
conflicting records. Regression tests cover these boundaries and
consumer/formula drift.
- Consolidate duplicated fixture and npm-preparation code within the
existing architecture and growth budgets. No budget limit, required gate
or live assertion is weakened.

## Verification

Latest registry-checker repair
`6ac688cfeaf7dc9b2f00fc198d9092da86d604b0`:

- Dependency-pin integration tests: 19/19 passed.
- Existing candidate trust/admission support tests: 41/41 passed.
- Repository checks: all 18 passed, including dependency pins,
architecture, assertion ratchet, Pi receipt refresh and growth checks.
- Formatting and `git diff --check` passed.
- Normal commit hooks and pre-push publication validation passed,
including CLI TypeScript. GitHub marks the new signed commit Verified.
An independent documentation writer reviewed the two-file diff and found
no documentation impact.
- Broad `npm run check` exited 1 in the initial isolated test wrapper.
Focused reproductions found its long `HOME` broke a Unix socket, its
temporary root inherited the wrong group, and its file policy denied a
test-owned `/private/tmp` directory. Corrected isolated runs passed the
pairing and snapshot files; the unrelated Google Chat proxy file passed
8/8 with an empty environment outside the sandbox. The full broad check
has not been repeated, so no local broad-pass claim is made.
- Latest-head [core CI
38703064782](https://github.com/NVIDIA/NemoClaw/actions/runs/38703064782)
and [managed images
38703065346](https://github.com/NVIDIA/NemoClaw/actions/runs/38703065346)
completed successfully. The managed-image run includes direct OpenClaw,
Hermes and Deep Agents Code startup on AMD64 and ARM64 and real rootless
Podman activation. GitHub reports 49 successful checks, 14 skipped
checks, and no failed or pending checks for this head. These runs use
the prerequisite's active OpenShell 0.0.116.

Previous published head `d1cf7ea4203144f688b23f8176aee0fa222d60c7`:

- [Core CI
38684851255](https://github.com/NVIDIA/NemoClaw/actions/runs/38684851255)
passed.
- [Managed images
38684851036](https://github.com/NVIDIA/NemoClaw/actions/runs/38684851036)
passed, including Docker AMD64/ARM64 and rootless Podman activation.
These results use the prerequisite's active OpenShell 0.0.116, not the
0.1.3 upgrade.
- Both Pi receipts were acquired from successful [managed-images run
38678295208](https://github.com/NVIDIA/NemoClaw/actions/runs/38678295208)
on `0394cd43a`. Archive/receipt hashes, both platform identities and
common cohort were verified. Receipt tests and the refresh guard passed.
These are managed-image receipts, not full Pi lifecycle qualification.
- Earlier installer, registry, admission, SDK provenance, workflow,
platform/catalog and receipt suites passed their recorded focused
checks. Their historical results do not establish latest-head CI or full
runtime qualification.

Repository checks and the actual Git hooks ran in a credential-free
filesystem/network sandbox. A non-secret out-of-boundary canary was
denied; GitHub token and SSH-agent environment variables were absent.
Git signing and SSH transport remain outside that boundary. Diff
inspected: no secrets or credentials. No live 0.1.3 E2E result is
claimed.

## Review notes

Sensitive paths include `.github/workflows/**`, `.github/actions/**`,
`scripts/**` and `tools/e2e/**`. Self-review covers immutable artifacts,
independent admission, credential isolation, fail-closed errors,
merged-source provenance, lifecycle and cleanup. For the latest two-file
checker repair, self-review checked that the inspected registry is
parsed as data, historical identities cannot be replaced, complete
manifests remain required, and formula/consumer comparisons remain
enforced. This is consistency checking, not independent authorization of
candidate trust.

Actual CodeRabbit review of `d1cf7ea42` completed without actionable
findings. No CodeRabbit review is posted for `6ac688c`. All nine
specialist findings artifacts in the [latest-head Advisor run
38705459213](https://github.com/NVIDIA/NemoClaw/actions/runs/38705459213)
bind `6ac688c` and contain no findings; its blocker gate passed. A human
review of the latest head is still required.

The human [changes-requested
review](#13183 (review))
identified the installer early-return bypass, repaired in `1edc1af4e`
with retained-state regressions. That human review has not been
dismissed. Earlier CodeRabbit registry-subset, documentation, SDK
merge-checkout and Git PATH findings are repaired; all five observed
review threads were resolved on `d1cf7ea42`. Independent acceptance
remains required.

Remaining qualification boundaries: protected hosts still use finite
trusted projections; full isolated candidate product/helper execution
and SDK/transitive coverage there are incomplete. Jetson's operator
protocol, complete Pi lifecycle qualification, consolidated preflight
and full live 0.1.3 qualification are not established. This PR is not
proof that every dependency upgrade can use at most two PRs.
Image-publication gates remain enforced. Inference, unrelated and
baseline exclusions are not passing E2E results.

---
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 15, 2026
## Outcome

Upgrade admission accepts a same-repository PR authored by a GitHub App
bot. It still requires an approval from a different human with current
`maintain` or `admin` permission, bound to the exact head and base
commits.

## Reason

The trusted verifier on `main` rejects
[#12603](#12603) before it reads
approvals because its author is `nvidia-nemopatch-writer[bot]`. This
blocks candidate admission and check-hash even though the PR's
repository, head, and base match the expected values.

### Related issues

Refs #12603.

## Changes

- Accept the GitHub App `[bot]` suffix only when parsing the PR author's
login. Keep the existing human login and account-type checks for
approvers.
- Add regression tests for bot-authored PR admission with and without
independent approval, and for a malformed bot login.
- Clarify the bot-author and human-approval rule in the E2E README.

## Verification

- `npx vitest run --project e2e-support
test/e2e/support/candidate-upgrade-admission.test.ts` — 46 tests passed
after rebasing onto current `main`.
- `npm run checks:repository` — all 18 checks passed.
- `npm run docs` — 0 errors, 2 warnings.
- `git diff --check` — passed.
- Normal `pre-commit`, `commit-msg`, and `pre-push` hooks — passed. The
pre-push hook ran through a credential restricted macOS sandbox while
SSH transport stayed outside it.
- The three-file diff contains no secrets, API keys, or credentials.

## Review notes

`tools/e2e/candidate-upgrade-admission.mts` is a sensitive enforcement
path. An independent documentation writer reviewed the code, tests, and
README for writing and documentation accuracy: PASS, no findings. The
trusted verifier change still awaits independent maintainer review. This
draft does not claim approval or successful live E2E.

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


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

## Summary by CodeRabbit

* **New Features**
* Candidate upgrade pull requests authored by GitHub App bots are
accepted when an independent human maintainer approves them.
* **Bug Fixes**
* Bot-authored pull requests are rejected if their author login is
malformed or the required approval is removed.

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

Copy link
Copy Markdown
Collaborator

NemoClaw-Upgrade-E2E: approve 50904c2 150284c

@prekshivyas

Copy link
Copy Markdown
Collaborator

NemoClaw-Upgrade-E2E: approve 64f2b44 8041f9b

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 568514a 7757000

Read each blueprint plan snapshot through its own no-follow descriptor.
Supply cold-recovery fixture identities and health responses, and keep
all sandbox observations on the owned gateway.

Retain every assertion, cleanup variant, credential boundary and timeout.

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

Copy link
Copy Markdown
Collaborator

NemoClaw-Upgrade-E2E: approve c93de5b 7757000

@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

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

sandl99 pushed a commit that referenced this pull request Nov 7, 2026
## Outcome
Trusted E2E planning can resolve the reviewed OpenShell 0.1.7 MCP
runtime before candidate checkout.

## Reason
PR #12603 selected 0.1.7 through upgrade admission, but trusted main
lacked its MCP provenance mapping. Full E2E run
[42307457549](https://github.com/NVIDIA/NemoClaw/actions/runs/42307457549)
failed in the planner before runtime fanout.

### Related issues
Refs #12603.

## Changes
- Add the existing reviewed 0.1.7 source, supervisor digest, and Linux
AMD64 binary identities to the trusted resolver.
- Extend both installer consumers' success and altered-binary denial
cases. Retain 0.1.5 coverage.

## Verification
- `vitest run --project e2e-support
test/e2e/support/candidate-openshell-version.test.ts` — 54 passed.
- `vitest run --project e2e-support
test/e2e/support/mcp-workflow-boundary.test.ts
test/e2e/support/workflow-prerequisites.test.ts` — 57 passed.
- Scoped Oxlint — zero warnings and errors; formatting and normal commit
hooks passed.
- The diff contains no secrets, API keys, or credentials.

## Review notes
Independent local review covered both changed files in NVIDIA/NemoClaw
at commit `d8f36a801e8a2df6f6afd265277bb76eb2cd34cf`:
`tools/e2e/candidate-openshell-version.mts` and its support test.
Source, security, and writing review found no issues. The
enforcement-tooling path is sensitive under main's policy. Independent
CI and maintainer review remain pending; this PR stays draft.

The identities match cached upstream release archives and producer
evidence. OCI signatures were not independently verified; no
reproducible rebuild is claimed. Installer tests use synthetic binaries.
Development dependencies were reused from the upgrade checkout,
including its optional SDK 0.1.7; these focused tests do not load that
SDK.

Default runtime pins, admission rules, permissions, existing runtime
assertions, and limits are unchanged. The failed full run remains
failed. This PR does not authorize another dispatch, merge, or release.

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


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

<!-- coderabbit-ai-generated:v1 -->

## Summary by CodeRabbit

* **New Features**
* Added OpenShell 0.1.7 to the runtime versions recognized by the
candidate-version workflow, with recorded release artifact metadata.

* **Tests**
* Expanded coverage for selecting and upgrading to reviewed versions,
including checks that unapproved versions are rejected.

<!-- 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 dead519 4d5d613

@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor finished for commit dead519. 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 prekshivyas changed the title chore(deps): upgrade OpenShell runtime and SDK to 0.1.5 chore(deps): upgrade OpenShell runtime and SDK to 0.1.7 Nov 9, 2026
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
rsliter pushed a commit that referenced this pull request Nov 10, 2026
## Outcome

Manual PR E2E can prepare an independently admitted OpenShell SDK
upgrade before compiling and running the candidate. The protected GPU
controller retains its trusted dependency graph. If admission is revoked
after preparation, verification rejects candidate use and cleanup
restores trusted originals. Cleanup also reconciles a failed projection
whose rollback failed.

## Reason

PR #12603 selects SDK 0.1.7. Full E2E run 42696682762 failed before
runtime because trusted preparation selected only older reviewed SDK
packages. Restoration also depended on live approval, which could leave
projected files behind after revocation.

## Changes

- Reuse candidate/base admission and SDK packaging for manual PR runs.
Preserve reviewed packages for main and exact-base runs.
- Pass PR identity through direct and reusable consumers. Remove API
tokens before npm cache staging, dependency installation, and SDK
import.
- Verify the protected controller's SDK-only projection, unchanged
dependency metadata and transitive graph, current approval, and archive
bytes before staging. Ordinary consumers retain full candidate manifest
and lock parity.
- Pin SDK installer callers to implementation commit
`855b8b80e13c4dbd59411672e3c3dd7720bc590f`. Align workflow environment
contracts, MCP read permissions, compile-action token expectations, and
complete-object hashes without weakening their rejection cases.
- Execute the inline manual-dispatch producer in a regression test.
Assert candidate identity, API-token forwarding, the admitted artifact
path, and rejection of the reviewed fallback for that admitted case.
- Record dispatch identity and original/projected digests before
projection writes in a mode-0600 receipt under trusted Git metadata. The
existing restore CLI validates this receipt and all seven fixed
destinations, then reads replacement bytes and modes only from the
immutable trusted Git commit. This lets recovery proceed without live
approval or the candidate checkout; preparation and verification retain
live admission.
- Keep completed trusted writes after a partial restoration failure so
recovery can resume. Retain the receipt for idempotent recovery and
replace it only after a later preparation validates clean trusted
sources and admission.
- Run workflow recovery with `always()` when preparation succeeded or a
receipt entry remains. Preserve cleanup failure for missing required,
malformed, or dangling receipts. Remove API credentials from restoration
and bind its environment only to preparation outcome. Test the actual
workflow shell with a real CLI after failed preparation and rollback;
update the owning guidance.

- Bind protected file reads and replacements to opened directory
descriptors. Use the controller’s isolated Python standard library for
descriptor-relative operations because Node lacks descriptor-relative
rename. Projection, rollback, receipt publication, and restoration share
the helper. Reject linked files, detached parents, and changed
replacement preimages. Keep temporary creation, rename, and cleanup
bound to the opened parent.

## Verification

- Directory-race repair: 56 workspace cases and 22 filesystem cases
passed. These include real descriptor-bound reads/writes, directory
swaps at parent/file/temp/rename boundaries, root detachment,
matching-content leaf links, external-file preservation, descriptor
cleanup, credential isolation, and recovery after rejection.
- The Python watch mapping passed 94 cases; seven growth guardrails
passed. All 19 repository checks, scoped Oxlint/Oxfmt, source-shape
checks, and the installed pre-commit/commit-message hooks passed. No
test deadline or live assertion changed.
- Three deliberate attachment/root/leaf-protection mutations each failed
the regression suite. Original source was restored after every probe.
The same directory-swap reproduction succeeded against both recorded
base and previous candidate before the repair.
- The earlier SDK producer and cleanup-caller selections remain recorded
in the prior review history. This repair preserves their admission,
archive, workflow, and receipt contracts.
- Final publication commit: `13fd0f4ecba328e95383a2f5b86e744208cd52b2`.
Actual isolated publication hooks passed, including publication
validation and the applicable CLI type check. Fresh branch and PR
readbacks match this commit, and all seven commits have valid GitHub
verification. Source CI
[42760095761](https://github.com/NVIDIA/NemoClaw/actions/runs/42760095761),
security
[42760096034](https://github.com/NVIDIA/NemoClaw/actions/runs/42760096034),
and managed images
[42760095782](https://github.com/NVIDIA/NemoClaw/actions/runs/42760095782)
passed. All nine Advisor specialists and the blocker gate passed in
[42762557930](https://github.com/NVIDIA/NemoClaw/actions/runs/42762557930).
CodeRabbit review was requested for this final commit and remains
pending. Gitleaks passed; the diff includes no secrets or credentials.

Previous candidate `32b47b1` passed source CI
[42742397422](https://github.com/NVIDIA/NemoClaw/actions/runs/42742397422),
security
[42742397403](https://github.com/NVIDIA/NemoClaw/actions/runs/42742397403),
managed images
[42742397502](https://github.com/NVIDIA/NemoClaw/actions/runs/42742397502),
and CodeRabbit. Runtime activation passed on amd64, arm64, and rootless
Podman. Those passes do not establish the new candidate’s results. This
PR does not complete PR #12603’s Pi native-local qualification.

## Review notes

The user authorized both receipt-based restoration after
revocation/failed preparation and repair of the inherited directory
race. Advisor
[42744943062](https://github.com/NVIDIA/NemoClaw/actions/runs/42744943062)
completed all nine specialists on `32b47b1`: eight were clear, including
recovery and verification. Its security P1
`F-security-built-in-quality-bcb22538ebbd4723fab0` is addressed by this
descriptor-bound repair, confirmed clear by the security, recovery, and
verification specialists in the current Advisor run. The old failed gate
was not waived or rerun unchanged.

The sensitive paths received local source/security review across SDK
admission, credential custody, all seven recovery destinations,
descriptor attachment, partial writes, rollback, and cleanup. The
receipt cannot supply replacement bytes or authorize candidate
execution; immutable trusted Git blobs remain the source authority. The
filesystem child receives no inherited environment and installs no
dependencies. Tests execute the real helper with deterministic syscall
interleavings. The PR remains draft pending CodeRabbit review;
copied-branch self-hosted qualification and independent maintainer
review remain necessary. Advisor recommends the existing
managed-image-protected-runtime job as additional operational evidence.
That recommendation does not independently authorize or require manual
full E2E under the publication contract; no manual qualification is
claimed here.

CodeRabbit’s inherited multiarch extra-permission validator concern
remains advisory; actual permissions remain read-only. Fallback
execution cases and an explicit missing-step diagnostic remain deferred
test improvements. Proposed redirect-policy hardening remains advisory.
CodeQL posted two duplicated descriptor-close warnings. They are false
positives: each successful parent-directory open immediately registers
os.close with contextlib.ExitStack, which closes all acquired
descriptors on normal and exceptional context exit. The real helper’s
hard-link rejection test records every acquired descriptor and verifies
that all close. No warning suppression, gate waiver, or maintainer
approval is claimed.

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

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

## Summary by CodeRabbit

* **New Features**
* Manual end-to-end runs can test an approved SDK upgrade candidate
against its pull request and base revision.
* Candidate SDK packages are validated before use; runs report an error
if approval or package checks fail.
* **Improvements**
* Standard end-to-end runs continue using reviewed SDK packages when no
eligible candidate is selected.
* API credentials are limited to eligible candidate preparation and
removed before SDK connection checks.
* Protected workspaces can restore trusted files after interrupted or
failed preparation, with recovery support for incomplete restorations.
<!-- 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>
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 prekshivyas left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Recording my explicit maintainer approval, as instructed in the authoring chat, for the OpenShell CLI/SDK 0.1.7 candidate inputs and policy at 1b860ac. The frozen headless-v1 API remains 0.1.5. This approval does not assert that qualification is complete: the ARM64 Google Chat inspection timeout remains unresolved. Existing merge/release and manual E2E holds remain in effect.

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
@wscurran wscurran added the platform: macos Affects macOS, including Apple Silicon label Nov 10, 2026
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>

@prekshivyas prekshivyas left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Recording the maintainer’s explicit approval of the OpenShell input/policy changes at aa347a1: the bounded SDK artifact wait within the existing 10-minute job limit, verified Pi receipt refresh, and secret-safe inspection diagnostics. The 60-second inspection deadline and all provenance and cleanup checks remain. This records the user’s decision; independent source review is retained separately. Merge, reviewer-request, and manual E2E holds remain.

@github-actions

Copy link
Copy Markdown
Contributor

PR Review Advisor finished for commit aa347a1. 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: ci CI workflows, checks, release automation, or GitHub Actions area: docs Documentation, examples, guides, or docs build area: e2e End-to-end tests, nightly failures, or validation infrastructure area: install Install, setup, prerequisites, or uninstall flow area: observability Logging, metrics, tracing, diagnostics, or debug output area: onboarding Onboarding FSM, provider setup, sandbox launch, or first-run flow area: packaging Packages, images, registries, installers, or distribution area: providers Inference provider integrations and provider behavior area: sandbox OpenShell sandbox lifecycle, runtime, config, or recovery area: security Security controls, permissions, secrets, or hardening chore Build, CI, dependency, or tooling maintenance integration: dcode LangChain Deep Code integration behavior integration: hermes Hermes integration behavior integration: openclaw OpenClaw 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 platform: macos Affects macOS, including Apple Silicon

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants