Skip to content

fix(security): refresh MCP runtime audit locks - #8180

Merged
ericksoa merged 15 commits into
mainfrom
codex/fix-mcp-runtime-audit
Aug 4, 2026
Merged

fix(security): refresh MCP runtime audit locks#8180
ericksoa merged 15 commits into
mainfrom
codex/fix-mcp-runtime-audit

Conversation

@jyaunches

@jyaunches jyaunches commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Updates the locked Model Context Protocol (MCP) tool-discovery runtime so sandbox image builds pass the unchanged production audit.
The reviewed dependency releases are outside the reported advisory ranges.
The final correction updates regression coverage and dependency-review text without changing production proxy behavior.
The proxy-test correction is included because the stale fixture prevented the CLI shard from validating the dependency update.

Related Issue

Fixes #8177

Changes

  • Pin @hono/node-server@2.0.12, fast-uri@3.1.5, hono@4.12.34, and ip-address@10.3.1.
  • Bind package versions, registry URLs, SHA-512 integrities, and review records in the committed lock and regression test.
  • Preserve @modelcontextprotocol/sdk@1.30.0 and the existing npm audit --omit=dev --audit-level=low requirement.
  • Record package licenses, registry signatures, provenance attestations, advisory ranges, and source-review evidence.
  • Test Undici 8.10 plain HTTP proxy forwarding through the request method, host, and full target URL.
  • For the plain HTTP fixture, return HTTP 502 on CONNECT so tunneling fails.
  • Record that NemoClaw-managed image registry requests use HTTPS and continue to use CONNECT.
  • Update tools/mcp-tool-discovery-runtime/dependency-review.md and docs/security/openclaw-2026.7.1-dependency-review.md.
  • Leave production proxy source and configuration unchanged.

PR #8172 overlaps this dependency graph but also changes audit policy and remains a separate sequencing decision.
PR #8175 overlaps the advisory remediation but does not bind the reviewed graph and audit command in the image contract.
No work was transferred between these branches.

Type of Change

  • Code change (feature, bug fix, or refactor)
  • Code change with doc updates
  • Doc only (prose changes, no code sample modifications)
  • Doc only (includes code sample changes)

Quality Gates

  • Tests added or updated for changed behavior
  • Existing tests cover changed behavior — justification:
  • Tests not applicable — justification:
  • Docs updated for user-facing behavior changes
  • Docs not applicable — justification: No public API, CLI, configuration, workflow, default, or supported behavior changes. The existing security and runtime dependency reviews now record the dependency and transport evidence.
  • Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging)
  • Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: The nine-category security review for commit 90b95be3af1856d0d59cc34581dd6cb94571ee61 returned PASS in every category. No security findings remain.
  • Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue:

Documentation Writer Review

  • Documentation writer subagent reviewed the completed changes
  • Result: docs-updated
  • Evidence: Reviewed all seven changed files in commit 90b95be3af1856d0d59cc34581dd6cb94571ee61 against base 6a838ffc. Its tree 39e3f5f8c74cee608e56e4fea82677b6663e07a4 matches the previously reviewed tree. The security page accurately documents Undici 8.10 plain HTTP proxy forwarding and unchanged HTTPS CONNECT behavior. The runtime review records the four pinned dependencies, integrity values, licenses, provenance, advisory ranges, and unchanged audit commands. Tests bind those records and proxy behavior to observable assertions. No public API, CLI, configuration, or supported workflow changed. The changed documentation paths are docs/security/openclaw-2026.7.1-dependency-review.md and tools/mcp-tool-discovery-runtime/dependency-review.md.
  • Agent: Codex Desktop, independent documentation-writer subagent

DGX Station Hardware Evidence

  • Tested on DGX Station
  • Tested commit: Not applicable
  • Station profile/scenario: Not applicable
  • Result: Not applicable
  • Supporting evidence: Not applicable

Verification

  • PR description includes a Signed-off-by: line and every commit appears as Verified in GitHub — All 15 commits are verified, and the DCO check passed for commit 90b95be3af1856d0d59cc34581dd6cb94571ee61.
  • Normal pre-commit, commit-msg, and pre-push hooks passed, or npm run validate:pr passed after refreshing origin/main when hooks were skipped or unavailable — All normal hooks passed for the final correction.
  • Targeted behavior tests pass for the current change set, or tests are marked not applicable above — GitHub CI is authoritative for commit 90b95be3af1856d0d59cc34581dd6cb94571ee61. All eight CLI shards passed, including the proxy regression, and the reviewed production audit passed. No duplicate local test suite was run after the final correction.
  • Applicable broad gate passed — npm test for broad runtime/test-harness changes; npm run check for repo-wide validation/coverage changes — command/result: The required checks result and E2E gate passed on commit 90b95be3af1856d0d59cc34581dd6cb94571ee61. GitHub CI is authoritative; no duplicate local suite was run for the final correction.
  • Quality Gates section completed with required justifications or waivers
  • No secrets, API keys, or credentials committed
  • npm run docs builds without warnings (doc changes only) — The GitHub Fern preview prepared and validated the documentation on commit 90b95be3af1856d0d59cc34581dd6cb94571ee61.
  • Doc pages follow the style guide (doc changes only) — Independent writing review and the normal Markdown hook passed.
  • New doc pages include SPDX header and frontmatter (new pages only) — Not applicable; no page was added.

Security Review

Commit 90b95be3af1856d0d59cc34581dd6cb94571ee61 has no security findings.

Category Verdict Evidence
Secrets and Credentials PASS No credentials, credential-bearing values, or credential paths changed.
Input Validation and Data Sanitization PASS The image contract rejects drift in package identity, version, registry URL, integrity, review record, and audit commands.
Authentication and Authorization PASS No authentication or authorization behavior changed.
Dependencies and Third-Party Libraries PASS The reviewed pins are outside the reported advisory ranges. The SDK, @hono/node-server, hono, and ip-address use MIT licenses. fast-uri uses BSD-3-Clause.
Error Handling and Logging PASS Production error and logging behavior is unchanged. The test returns HTTP 502 for an unexpected CONNECT request.
Cryptography and Data Protection PASS The committed lock retains SHA-512 package integrity values. Registry verification reported 98 signatures and 12 provenance attestations.
Configuration and Security Headers PASS The low-severity production audit and proxy configuration remain unchanged. No ports, permissions, users, or headers changed.
Security Testing PASS The image contract binds the reviewed graph and audit commands. The proxy regression verifies Undici 8.10 plain HTTP forwarding.
System Security PASS The change does not alter image privileges, sandbox controls, or network policy.

Signed-off-by: Julie Yaunches jyaunches@nvidia.com
Signed-off-by: Prekshi Vyas prekshiv@nvidia.com
Signed-off-by: Carlos Villela cvillela@nvidia.com

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
@jyaunches jyaunches added area: e2e End-to-end tests, nightly failures, or validation infrastructure area: packaging Packages, images, registries, installers, or distribution bug-fix PR fixes a bug or regression security labels Aug 3, 2026
@jyaunches jyaunches self-assigned this Aug 3, 2026
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The MCP tool discovery runtime now pins reviewed dependency versions, documents the security refresh, and adds contract coverage for the fail-closed production audit. The managed image registry proxy test now validates a successful proxied response.

Changes

MCP runtime security refresh

Layer / File(s) Summary
Runtime overrides and security review
tools/mcp-tool-discovery-runtime/package.json, tools/mcp-tool-discovery-runtime/dependency-review.md
The runtime pins @hono/node-server@2.0.12, fast-uri@3.1.5, hono@4.12.34, and ip-address@10.3.1. The review records verification evidence and a clean production audit.
Dependency contract validation
test/mcp-tool-discovery-image-contract.test.ts, ci/source-shape-test-budget.json
The contract test validates dependency metadata and the installer audit command. The test receives a security source-shape exception.

Managed image registry proxy test

Layer / File(s) Summary
Proxy request assertions
src/lib/onboard/managed-image-registry-fetch.test.ts
The proxy handler returns a successful 200 response with "proxied". The test verifies the response body and tunnel target.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant ContractTest
  participant RuntimeArtifacts
  participant Installer
  participant npm
  ContractTest->>RuntimeArtifacts: Load manifest, lockfile, and security review
  ContractTest->>RuntimeArtifacts: Validate pinned dependency metadata
  ContractTest->>Installer: Verify production audit command
  Installer->>npm: Run low-severity production audit
  npm-->>ContractTest: Return audit result
Loading

Possibly related PRs

Suggested labels: dependencies

Suggested reviewers: apurvvkumaria, ericksoa

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning The proxy transport test change is unrelated to issue #8177's MCP runtime lock and audit objectives. Move the proxy transport test update to a separate pull request unless the dependency refresh directly requires it.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The PR updates vulnerable runtime versions, preserves the fail-closed audit, and adds deterministic coverage for the reviewed graph and audit boundary.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: refreshing the MCP runtime security audit locks.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/fix-mcp-runtime-audit

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

@github-code-quality

github-code-quality Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in commit 90b95be in the codex/fix-mcp-runtim... branch remains at 96%, unchanged from commit 6a838ff in the main branch.

TypeScript / code-coverage/cli

The overall coverage in commit 90b95be in the codex/fix-mcp-runtim... branch remains at 81%, unchanged from commit a7237ea in the main branch.

Show a code coverage summary of the most impacted files.
File main a7237ea codex/fix-mcp-runtim... 90b95be +/-
src/lib/domain/.../connect-env.ts 97% 89% -8%
src/lib/shields/index.ts 69% 69% 0%
src/lib/cli/oclif-runner.ts 98% 98% 0%
src/lib/messagi...nnels/policy.ts 100% 100% 0%
src/lib/sandbox...rce-identity.ts 88% 88% 0%
src/lib/state/config-io.ts 93% 93% 0%
src/lib/tunnel/services.ts 76% 76% 0%
src/lib/platform.ts 84% 89% +5%

Updated August 04, 2026 02:28 UTC

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — No blocking findings reported

Advisor assessment: No blocking advisor findings reported
Next action: No advisor follow-up needed.
Findings: 0 blockers · 0 warnings · 0 suggestions

Model lanes

  • GPT-5.6 Terra (primary): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Model comparison: normalized findings match; normalized terminology decisions differ; normalized E2E selections differ; severity counts match.
6 terminology differences from the second opinion

Advisory only. These are normalized differences from the primary terminology receipt.

  • proxyTunnel at docs/security/openclaw-2026.7.1-dependency-review.md:174: selected only by the second-opinion lane as established.
  • managed image registry at docs/security/openclaw-2026.7.1-dependency-review.md:176: selected only by the second-opinion lane as established.
  • fail-closed audit at tools/mcp-tool-discovery-runtime/dependency-review.md:45: selected only by the second-opinion lane as justified.
  • bundle-input exclusion at tools/mcp-tool-discovery-runtime/dependency-review.md:43: selected only by the second-opinion lane as define.
  • production audit at test/mcp-tool-discovery-image-contract.test.ts:17: selected only by the second-opinion lane as justified.
  • MCP-AUDIT at tools/mcp-tool-discovery-runtime/dependency-review.md:42: selected only by the second-opinion lane as established.
2 additional E2E selections from the second opinion

Advisory only. The primary lane did not select these E2E jobs or targets.

  • ubuntu-repo-cloud-langchain-deepagents-code: The completed second-opinion lane identified E2E coverage that the primary lane omitted.
  • ubuntu-repo-cloud-openclaw: The completed second-opinion lane identified E2E coverage that the primary lane omitted.

Second-opinion terminology and E2E selections are advisory. They do not change the primary assessment or E2E / PR Gate.

3 semantic terminology decisions

Terminology decisions are advisory. They affect the assessment only when a separate finding identifies concrete semantic impact.

  • justified — absolute-form request target at docs/security/openclaw-2026.7.1-dependency-review.md:174: Retain the term. The adjacent CONNECT contrast defines the modifier and explains the proxy behavior.
  • established — installed production graph at tools/mcp-tool-discovery-runtime/dependency-review.md:23: Retain the established term and its contrast with the executable bundle.
  • define — security refresh at tools/mcp-tool-discovery-runtime/dependency-review.md:25: Define the term at its first heading as the dated dependency-remediation event, then reuse it consistently in later evidence references.

E2E guidance

Advisory only. E2E / PR Gate selects and runs jobs independently.

Recommended E2E: cloud-onboard

Workflow run details

This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge.

cv and others added 2 commits August 3, 2026 17:40
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
cv and others added 4 commits August 3, 2026 17:56
Replace the intermittently rejected @hono/node-server 2.0.11 package
with the reviewed 2.0.12 patch release.

Bind its registry identity in the lock and image contract. Record the
upstream compatibility and provenance review.

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Restore the ordinary HTTP forward-proxy fixture used by locked Undici 8.10.0.

The client does not enable CONNECT tunneling for plain HTTP targets.

Signed-off-by: Carlos Villela <cvillela@nvidia.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
tools/mcp-tool-discovery-runtime/dependency-review.md (1)

16-24: 🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win

Strengthen the image contract for the SDK pin and audit boundary.

The contract test does not bind the documented @modelcontextprotocol/sdk integrity. Its audit check also uses toContain, so npm audit ... || true could bypass the fail-closed boundary. Add the SDK metadata and assert the exact non-suppressed audit invocation.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tools/mcp-tool-discovery-runtime/dependency-review.md` around lines 16 - 24,
Strengthen the contract test for the documented `@modelcontextprotocol/sdk` pin by
adding and validating its exact integrity metadata alongside the existing
dependency overrides. Update the audit assertion to require the exact
fail-closed npm audit invocation, including its intended arguments, rather than
using toContain. Ensure the expected command cannot be satisfied when npm audit
is followed by || true or otherwise suppresses failures.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/lib/onboard/managed-image-registry-fetch.test.ts`:
- Around line 58-60: Update the fetch test around session.fetchImpl to assert
response.status is 200 alongside the existing response body assertion, while
preserving the tunnel expectation and avoiding implementation-specific
assertions.

---

Outside diff comments:
In `@tools/mcp-tool-discovery-runtime/dependency-review.md`:
- Around line 16-24: Strengthen the contract test for the documented
`@modelcontextprotocol/sdk` pin by adding and validating its exact integrity
metadata alongside the existing dependency overrides. Update the audit assertion
to require the exact fail-closed npm audit invocation, including its intended
arguments, rather than using toContain. Ensure the expected command cannot be
satisfied when npm audit is followed by || true or otherwise suppresses
failures.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 19bd8713-0325-4255-9f22-73e03c49fc3e

📥 Commits

Reviewing files that changed from the base of the PR and between 7d0c9dc and 0e4135d.

📒 Files selected for processing (4)
  • ci/source-shape-test-budget.json
  • src/lib/onboard/managed-image-registry-fetch.test.ts
  • test/mcp-tool-discovery-image-contract.test.ts
  • tools/mcp-tool-discovery-runtime/dependency-review.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • test/mcp-tool-discovery-image-contract.test.ts
  • ci/source-shape-test-budget.json

Comment thread src/lib/onboard/managed-image-registry-fetch.test.ts Outdated
jyaunches and others added 5 commits August 3, 2026 21:20
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Align the proxy fixture with locked Undici 8.10.0, which forwards plain HTTP requests.

Bind the SDK lock identity, response status, and exact audit commands so drift fails closed.

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>

@apurvvkumaria apurvvkumaria 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.

Reviewed exact head 8397801. Approve: the four overrides advance the exact locked production graph beyond the reported advisory ranges without weakening the low-severity audit, signature, integrity, or bundle allowlist boundaries. The contract now binds the SDK and override metadata and requires the two exact unsuppressed audit commands. The focused image-contract and bounded-proxy suites passed 9 of 9 tests locally, including the restored CONNECT fixture and HTTP status assertion. Current required CI is still rerunning after superseded jobs; the normal merge gate should remain authoritative.

@jyaunches

Copy link
Copy Markdown
Contributor Author

Current head 330b13d1c reproduces the managed-image proxy timeout locally:

npm exec -- vitest run src/lib/onboard/managed-image-registry-fetch.test.ts --project cli
Test Files  1 failed (1)
Tests       1 failed | 4 passed (5)
routes the default registry fetch through the bounded host proxy: timed out in 5000ms

For the locked runtime in this checkout, ProxyAgent sends CONNECT registry.invalid:80 even though the target URL is plain HTTP. A request-handler-only fixture never receives that request and deadlocks. The deterministic fixture must handle the server connect event, acknowledge the tunnel, then return the synthetic HTTP response over the socket. That version passes all 5 tests immediately.

Please preserve the CONNECT fixture while the current-head CI run completes; the ordinary forward-proxy handler has now reproduced the same timeout on 3359af23c, b2593b2f9, and 330b13d1c.

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
@ericksoa
ericksoa enabled auto-merge (squash) August 4, 2026 01:53

@apurvvkumaria apurvvkumaria 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.

Re-reviewed exact head 330b13d. The only new delta replaces the CONNECT fixture with the forward-proxy request shape used by the branch-locked Undici 8.10.0 while retaining the response-status, body, and exact destination assertions. With an exact npm ci for this revision, the focused transport suite passes 5 of 5 tests; the dependency, integrity, audit-command, and image-contract changes from the prior approved revision are unchanged. No blocking defect found; current CI remains the normal merge gate.

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

@apurvvkumaria apurvvkumaria 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.

Comment — reviewed exact head cb6f948. The production dependency remediation remains safe, but this latest test-only commit needs a narrow non-blocking correction: after an exact npm ci for this revision (Undici 8.10.0), the focused managed-image registry transport suite deterministically times out at the CONNECT fixture (1 failed, 4 passed). The immediately preceding forward-proxy fixture passed 5 of 5 with the same exact dependencies, showing that this EnvHttpProxyAgent path sends an ordinary absolute-form HTTP proxy request rather than CONNECT for the HTTP registry URL. Please restore that forward-request fixture and retain the status, body, and exact destination assertions. This is explicitly non-blocking review feedback because it does not change supported runtime behavior; the required CI merge gate should enforce the test correction before merge.

@apurvvkumaria apurvvkumaria 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.

Re-reviewed exact head 1058aa9. The prior non-blocking proxy-fixture failure is resolved: the fixture now handles both ordinary forward requests and CONNECT while still proving exactly one bounded proxy route, a 200 response, the expected body, and an exact allowed destination. With this revision’s exact Undici 8.10 dependency set, the focused transport suite passes 5 of 5 tests. The reviewed dependency, integrity, signature, audit, and image-contract boundaries are unchanged. Approve; no blocking defect found.

Assert the method, host, and full target URL for the plain HTTP request.

Return HTTP 502 for CONNECT and record the Undici 8.10 default.

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

@ericksoa
ericksoa merged commit 1ee723a into main Aug 4, 2026
58 of 74 checks passed
@ericksoa
ericksoa deleted the codex/fix-mcp-runtime-audit branch August 4, 2026 02:29
ericksoa added a commit that referenced this pull request Aug 4, 2026
## Summary

Add deterministic regression coverage for cancelling an HTTPS registry
request after its configured proxy has completed the CONNECT handshake.

The independent MCP runtime audit fix is already merged on `main`
through #8180. This branch now integrates that exact base and
intentionally carries no dependency, lockfile, review-record, or
production-code delta.

## Changes

- Retain `main`'s plain HTTP forward-proxy coverage.
- Add a loopback HTTPS CONNECT fixture that sends `200 Connection
Established` before aborting the request signal.
- Assert the public fetch boundary returns `AbortError`, the tunnel
targets `registry.invalid:443`, and the accepted socket is cleaned up in
`finally`.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: The effective diff adds only
test coverage and changes no production or user-visible contract.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: Independent exact-head
nine-category security review passed with no findings at
`ade9f9cfc588124d0ffac8ced6e594cc0b40aba7`.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Documentation Writer Review

- [x] Documentation writer subagent reviewed the completed changes
- Result: `no-docs-needed`
- Evidence: Reviewed the complete effective diff from base `1ee723a3c`
to head `ade9f9cfc`. It adds only a 32-line HTTPS proxy CONNECT
cancellation regression test. No production or user-visible behavior
changed. The test title follows the writing guide. Findings: none. `git
diff --check` passed, and the focused Vitest file passed 6/6.
- Agent: Codex Desktop
<!-- docs-review-head-sha: ade9f9c -->
<!-- docs-review-agents-blob-sha:
3dd7c24 -->

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed
- [x] Targeted behavior tests pass for the current change set — the
complete registry transport file passed 6/6, ten consecutive focused
reruns passed, source-shape and test-size gates passed, and CLI build
plus TypeScript checks passed
- [ ] Applicable broad gate passed — exact-head CI is authoritative and
is still running
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only)
- [ ] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

## Security Review

No findings at exact head `ade9f9cfc588124d0ffac8ced6e594cc0b40aba7`.

The effective diff is one test file with 32 additions. The fixture is
loopback-only, completes the CONNECT handshake before cancellation,
asserts the abort-specific public error, and deterministically destroys
the socket and closes the dispatcher in `finally`. No dependencies,
production configuration, authentication, TLS trust, credentials, or
runtime controls change. All nine review categories pass.

---
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>

---------

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Co-authored-by: Carlos Villela <cvillela@nvidia.com>
Co-authored-by: Julie Yaunches <jyaunches@nvidia.com>
cv added a commit that referenced this pull request Aug 4, 2026
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
prekshivyas added a commit that referenced this pull request Aug 4, 2026
<!-- markdownlint-disable MD041 -->
## Summary

Keep the reviewed npm-audit provenance tests fail-closed after #8156
merged the clean root, OpenClaw, and mcporter dependency graphs.

Derive the expected mcporter audit status and advisory list from the
parsed checked-in exception policy instead of hard-coding one policy
state. Keep generic audit tests independent from that production file
while separately asserting that the checked-in registry remains empty.

## Related Issue

Post-remediation contract follow-up to #8156. The separate MCP discovery
runtime remediation remains owned by #8177 and #8180.

## Changes

- Derive mcporter base-provenance fixtures and mocked audit results from
the checked-in exception policy.
- Keep the generic empty-policy fixture immutable and independently
assert that `ci/npm-audit-exceptions.json` contains no entries.
- Remove all seven temporary transition exceptions and all duplicated
MCP dependency changes from this PR now that #8156 is on `main` and
#8180 owns the MCP fix.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: the effective diff changes
test fixtures and assertions only; no supported API, CLI, configuration,
workflow, default, error, or user-facing behavior changes.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: the exact effective
diff only derives expected audit provenance from the parsed checked-in
policy and retains fail-closed mismatch coverage. The production policy
remains empty and no exception or enforcement behavior changes.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue: no exception is
requested; exact-head CI is authoritative.

## Documentation Writer Review

- [x] Documentation writer subagent reviewed the completed changes
- Result: `no-docs-needed`
- Evidence: The independent writer reviewed the two-file effective diff
and confirmed that it changes test fixtures and assertions only. The
checked-in exception registry remains empty. The focused provenance and
reviewed-audit suites pass 84/84, and `git diff --check` passes.
- Agent: Codex Desktop, independent documentation-writer subagent
<!-- docs-review-head-sha: 76ef46a -->
<!-- docs-review-agents-blob-sha:
3dd7c24 -->

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit: Not applicable; DGX Station preparation is unchanged.
- Station profile/scenario: Not applicable.
- Result: Not applicable.
- Supporting evidence: Not applicable.

## Verification

- [x] PR description includes a `Signed-off-by:` line and every pushed
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run validate:pr` passed after refreshing `origin/main` when hooks
were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set — 84/84
tests passed across the reviewed-audit and OpenClaw integrity-pin
suites.
- [ ] Applicable broad gate passed — `npm test` for broad
runtime/test-harness changes; `npm run check` for repo-wide
validation/coverage changes — not applicable to this two-test-file
contract hardening; required CI remains authoritative.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) — not
applicable; no documentation changes remain in the effective diff.
- [x] Doc pages follow the style guide (doc changes only) — not
applicable.
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

Additional evidence:

- Current base: merged #8156 commit
`15069f9262d52b74d8916b7a0d7969a9ae4d3ee1`.
- Effective diff: `test/openclaw-integrity-pin-suite.ts` and
`test/reviewed-npm-audit.test.ts` only.
- Checked-in `ci/npm-audit-exceptions.json`: schema version 1 with an
empty `exceptions` array.
- No MCP manifest, lock, dependency-review, audit exception, or runtime
file changes remain in this PR.

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

---------

Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: J. Yaunches <jmyaunch@gmail.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Julie Yaunches <jyaunches@nvidia.com>
apurvvkumaria added a commit that referenced this pull request Aug 4, 2026
<!-- markdownlint-disable MD041 -->
## Summary

Prepares the canonical v0.0.102 release documentation from the current
release-labeled scope.
The change adds a dated changelog for all 38 user-facing shipping PRs
and corrects the OpenClaw agent command reference for the behavior
delivered by #8191.

## Changes

- Add `docs/changelog/2026-08-04.mdx` with the v0.0.102 release summary,
detailed behavior changes, support boundaries, security evidence links,
and links to durable documentation.
- Update `docs/reference/commands.mdx` to describe non-JSON OpenClaw
output capture, its combined limit, marker handling, stream suppression,
recovery guidance, and exit behavior.
- [#8167](#8167) ->
`docs/changelog/2026-08-04.mdx`: Records authenticated attachment of
operator-managed llama.cpp servers.
- [#8129](#8129) ->
`docs/changelog/2026-08-04.mdx`: Records the Experimental managed vLLM
profile for two DGX Spark systems.
- [#7983](#7983) ->
`docs/changelog/2026-08-04.mdx`: Records qualification of the May 2026
GB300WS factory image.
- [#8207](#8207) ->
`docs/changelog/2026-08-04.mdx`: Records the qualified DGX Station
driver transaction.
- [#8208](#8208) ->
`docs/changelog/2026-08-04.mdx`: Records mode-bound Express resume
state.
- [#8158](#8158) ->
`docs/changelog/2026-08-04.mdx`: Records recovery of host-global
dual-Station runtime ownership.
- [#8145](#8145) ->
`docs/changelog/2026-08-04.mdx`: Records Windows-host Ollama validation
from Docker Desktop's network context.
- [#8190](#8190) ->
`docs/changelog/2026-08-04.mdx`: Records HTTP model pulls when WSL has
no local Ollama executable.
- [#8195](#8195) ->
`docs/changelog/2026-08-04.mdx`: Records reuse of a healthy
installer-managed CLI.
- [#8053](#8053) ->
`docs/changelog/2026-08-04.mdx`: Records early rejection of incompatible
OpenShell gateway versions.
- [#8098](#8098) ->
`docs/changelog/2026-08-04.mdx`: Records the bounded
package-service-to-standalone gateway recovery transition.
- [#8216](#8216) ->
`docs/changelog/2026-08-04.mdx`: Records the final dashboard port
selected during multi-sandbox onboarding.
- [#8146](#8146) ->
`docs/changelog/2026-08-04.mdx`: Records managed startup-state
restoration for stopped sandboxes.
- [#8092](#8092) ->
`docs/changelog/2026-08-04.mdx`: Records gateway watchdog recovery for
classified not-serving states.
- [#8182](#8182) ->
`docs/changelog/2026-08-04.mdx`: Records consistent managed-recovery
wait configuration.
- [#8040](#8040) ->
`docs/changelog/2026-08-04.mdx`: Records Docker sandbox rollback
authority through late validation.
- [#8130](#8130) ->
`docs/changelog/2026-08-04.mdx`: Records bounded Shields deadline
recovery and durable containment.
- [#8086](#8086) ->
`docs/changelog/2026-08-04.mdx`: Records repair of narrowly validated
permission-only configuration drift.
- [#8122](#8122) ->
`docs/changelog/2026-08-04.mdx`: Records prompt failure and guidance for
corrupt transition locks.
- [#8124](#8124) ->
`docs/changelog/2026-08-04.mdx`: Records policy restoration flags,
previews, and target revalidation.
- [#7886](#7886) ->
`docs/changelog/2026-08-04.mdx`: Records explicit destruction after
pre-delete Shields hardening failures while preserving recovery
authority.
- [#7901](#7901) ->
`docs/changelog/2026-08-04.mdx`: Records multi-port uninstall behavior
and shared-resource preservation.
- [#7984](#7984) ->
`docs/changelog/2026-08-04.mdx`: Records one classified transient remote
MCP startup retry.
- [#7954](#7954) ->
`docs/changelog/2026-08-04.mdx`: Records bounded hosted-inference probe
replies.
- [#7574](#7574) ->
`docs/changelog/2026-08-04.mdx`: Records preservation of validated
reasoning capabilities through onboarding.
- [#8089](#8089) ->
`docs/changelog/2026-08-04.mdx`: Records proxy routing for Hermes
WhatsApp pairing and media traffic.
- [#7682](#7682) ->
`docs/changelog/2026-08-04.mdx`: Records native Hermes session deletion
and identifier validation.
- [#8150](#8150) ->
`docs/changelog/2026-08-04.mdx`: Records corporate CA trust for
LangChain Deep Agents Code image builds.
- [#8156](#8156) ->
`docs/changelog/2026-08-04.mdx`: Records reviewed managed runtime
dependency remediation.
- [#8180](#8180) ->
`docs/changelog/2026-08-04.mdx`: Records reviewed MCP discovery runtime
dependency updates.
- [#8196](#8196) ->
`docs/changelog/2026-08-04.mdx`: Records private npm dependency
remediation across managed images.
- [#8203](#8203) ->
`docs/changelog/2026-08-04.mdx`: Records reviewed Hermes and LangChain
Deep Agents Code Python dependency updates.
- [#8125](#8125) ->
`docs/changelog/2026-08-04.mdx`: Records bounded diagnostics for invalid
enumerated CLI values.
- [#8193](#8193) ->
`docs/changelog/2026-08-04.mdx`: Records bounded diagnostics for
unresolved sandbox base images.
- [#8118](#8118) ->
`docs/changelog/2026-08-04.mdx`: Records bounded diagnostics for changed
gateway authority.
- [#8191](#8191) ->
`docs/changelog/2026-08-04.mdx`, `docs/reference/commands.mdx`: Records
output capture, marker handling, recovery guidance, and exit behavior
for non-JSON OpenClaw agent commands.
- [#8187](#8187) ->
`docs/changelog/2026-08-04.mdx`: Records the aligned
interactive-installation start across supported agents.
- [#8153](#8153) ->
`docs/changelog/2026-08-04.mdx`: Records current product capabilities
and support boundaries.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [x] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [ ] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [x] Tests not applicable — justification: This documentation-only
release preparation does not change executable behavior. Existing
changelog and published-route tests pass.
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [ ] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Documentation Writer Review

- [x] Documentation writer subagent reviewed the completed changes
- Result: `docs-updated`
- Evidence: Independently reviewed `docs/changelog/2026-08-04.mdx` and
`docs/reference/commands.mdx` at commit `b89913780`. All 38 user-facing
v0.0.102 PRs are represented, #8191 behavior matches the implementation,
and the writing rules, documentation style, controlled terminology,
route structure, and skip policy pass review. Targeted tests pass 36/36
and the documentation build completes with 0 errors.
- Agent: Codex Desktop independent documentation writer
<!-- docs-review-head-sha: b899137 -->
<!-- docs-review-agents-blob-sha: 3dd7c24 -->

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit: Not applicable
- Station profile/scenario: Not applicable
- Result: Not applicable
- Supporting evidence: Not applicable

## Verification

- [x] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run validate:pr` passed after refreshing `origin/main` when hooks
were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — `npx vitest run --project integration
test/changelog-docs.test.ts test/check-docs-published-routes.test.ts`
passed 36/36.
- [x] Applicable broad gate passed — not applicable to
documentation-only changes; `npm run docs` completed successfully with 0
errors.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) —
completed with 0 errors and 2 existing Fern warnings.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [x] New doc pages include SPDX header and frontmatter (new pages only)
— the native dated changelog uses the required parser-safe MDX SPDX
comment and intentionally has no frontmatter.

---
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>


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

## Summary by CodeRabbit

- **Documentation**
- Added release notes for v0.0.102, covering authentication, hardware
setup, WSL, installer recovery, sandbox resilience, policy management,
inference reliability, CLI improvements, and unified quickstarts.
- Updated command documentation to explain how non-JSON agent output is
collected, replayed, and reported.

- **Bug Fixes**
- Improved command-output recovery guidance when output exceeds limits
or contains unsupported fallback markers.
- Preserved accurate command exit-status reporting after output
processing.

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

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: e2e End-to-end tests, nightly failures, or validation infrastructure area: packaging Packages, images, registries, installers, or distribution bug-fix PR fixes a bug or regression security

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MCP discovery runtime audit blocks exact-source image builds

5 participants