Skip to content

fix(e2e): separate Podman Machine loopback listeners - #2622

Merged
matthewgrossman merged 5 commits into
mainfrom
fix-podman-e2e-loopback/mg
Aug 7, 2026
Merged

fix(e2e): separate Podman Machine loopback listeners#2622
matthewgrossman merged 5 commits into
mainfrom
fix-podman-e2e-loopback/mg

Conversation

@matthewgrossman

@matthewgrossmanmatthewgrossman commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

TL;DR: Running mise run e2e:podman on macOS previously failed because Podman Machine routed its internal host callback to the same address and port as the main OpenShell gateway listener. The harness now gives the main gateway and Podman callbacks distinct loopback addresses, so the command can spin up the gateway and run the Podman E2E suite successfully on macOS.

Related Issue

Fixes#2607

Changes

  • Bind the macOS Podman E2E primary gateway listener to [::1]:PORT; keep native Linux on 127.0.0.1:PORT.
  • Register the macOS CLI endpoint as https://localhost:PORT, relying on standard macOS IPv6-first localhost resolution while preserving a valid TLS DNS name.
  • Preserve that CLI authority for SSH follow-on connections when the gateway reports ::1.
  • Keep the Podman callback listener on 127.0.0.1:PORT with its restricted authorization scope; do not broaden either listener to 0.0.0.0.
  • Add focused SSH authority regression coverage and align the published driver guide and debug-openshell-cluster guidance.

Testing

  • mise run pre-commit passes
  • mise run test passes
  • cargo test -p openshell-core resolve_ssh_gateway passes
  • mise run e2e:podman passes on macOS Podman Machine

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
@github-actions

Copy link
Copy Markdown

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
@matthewgrossmanmatthewgrossman added test:e2e Requires end-to-end coverage gator:watch-pipeline Gator is monitoring PR CI/CD status labels Aug 6, 2026

@matthewgrossmanmatthewgrossman left a comment

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

gator-agent

PR Review Status

Validation: PR #2622 is project-valid because it is a maintainer-authored, concentrated fix for validated issue #2607 covering macOS Podman Machine gateway loopback behavior, with matching driver-guide and debugging-skill updates.
Head SHA: eb77ee64c2ebc5df36e1726b4a096f563260025a
Base SHA: 85d992f768bf2152fc5b815fc4031c61eae1ac52
Merge base SHA: f383ee1038f91921e104405cd01e4150d533fdbe
Patch ID: bdb936589103f37cbb7d356b0f62788ea662bd19
Gator payload: 2
Review mode: initial
Previous reviewed SHA: none

Blocking findings:

  • No blocking findings remain.

Carried findings:

  • None

Non-blocking suggestions:

  • None

Docs: Updated in docs/reference/sandbox-compute-drivers.mdx; no navigation change needed because the existing Reference folder already includes this page.

E2E: Applied test:e2e because the change affects Podman gateway listener/callback behavior and the Podman e2e harness.

Next state: gator:watch-pipeline

@github-actions

Copy link
Copy Markdown

Label test:e2e applied for eb77ee6. Open the existing run and click Re-run all jobs to execute with the label set. The run will execute the standard E2E suite after building the required gateway and supervisor images once. The matching required CI gate status on this PR will flip green automatically once the run finishes.

@matthewgrossmanmatthewgrossman added gator:approval-needed Gator completed review; maintainer approval needed and removed gator:watch-pipeline Gator is monitoring PR CI/CD status labels Aug 6, 2026
krishicks
krishicks previously approved these changes Aug 6, 2026
Comment threade2e/with-podman-gateway.sh
@matthewgrossmanmatthewgrossman added gator:merge-ready and removed gator:approval-needed Gator completed review; maintainer approval needed labels Aug 6, 2026
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>

@matthewgrossmanmatthewgrossman left a comment

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

gator-agent

PR Review Status

Validation: PR #2622 remains project-valid because it is a maintainer-authored, concentrated fix for validated issue #2607 covering macOS Podman Machine gateway loopback behavior, with matching driver-guide and debugging-skill updates.
Head SHA: 7debf050bffd19d810b520867ba4f7c09ea28880
Base SHA: 85d992f768bf2152fc5b815fc4031c61eae1ac52
Merge base SHA: f383ee1038f91921e104405cd01e4150d533fdbe
Patch ID: e6e560d6d4e65571a575f5efaf76b529b42191a6
Gator payload: 2
Review mode: follow_up
Previous reviewed SHA: eb77ee64c2ebc5df36e1726b4a096f563260025a

Blocking findings:

  • GATOR-7debf050-01: The latest delta removed the explicit proxy bypass from the managed Podman gateway health probe, so proxied developer or CI environments can fail before the E2E command runs even when the gateway is healthy.

Carried findings:

  • None

Docs: Already updated in docs/reference/sandbox-compute-drivers.mdx; no navigation change needed because the existing Reference folder already includes this page.

E2E: test:e2e remains required because the change affects Podman gateway listener/callback behavior and the Podman E2E harness.

Next state: gator:in-review

Comment threade2e/with-podman-gateway.sh Outdated
@matthewgrossmanmatthewgrossman added gator:in-review Gator is reviewing or awaiting PR review feedback and removed gator:merge-ready labels Aug 6, 2026
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>

@matthewgrossmanmatthewgrossman left a comment

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

gator-agent

PR Review Status

Validation: PR #2622 remains project-valid because it is a maintainer-authored, concentrated fix for validated issue #2607 covering macOS Podman Machine gateway loopback behavior, with matching driver-guide and debugging-skill updates.
Head SHA: 4962e225e7834fb88a47ee0d82a125824cc92be4
Base SHA: 85d992f768bf2152fc5b815fc4031c61eae1ac52
Merge base SHA: f383ee1038f91921e104405cd01e4150d533fdbe
Patch ID: e6186410199d33f4e291dd37e98a84f9a354fc08
Gator payload: 2
Review mode: follow_up
Previous reviewed SHA: 7debf050bffd19d810b520867ba4f7c09ea28880

Blocking findings:

  • No blocking findings remain. GATOR-7debf050-01 is resolved by the latest delta restoring curl --noproxy '*' on the managed Podman gateway health probe.

Carried findings:

  • None

Docs: Already updated in docs/reference/sandbox-compute-drivers.mdx; no navigation change needed because the existing Reference folder already includes this page.

E2E: test:e2e remains required because the change affects Podman gateway listener/callback behavior and the Podman E2E harness.

Next state: gator:watch-pipeline

@matthewgrossmanmatthewgrossman added gator:watch-pipeline Gator is monitoring PR CI/CD status and removed gator:in-review Gator is reviewing or awaiting PR review feedback labels Aug 6, 2026
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
@matthewgrossman
matthewgrossman added this pull request to the merge queueAug 7, 2026
Merged via the queue into main with commit 4cb77a9Aug 7, 2026
55 of 56 checks passed
@matthewgrossman
matthewgrossman deleted the fix-podman-e2e-loopback/mg branch August 7, 2026 17:55
@matthewgrossman

Copy link
Copy Markdown
ContributorAuthor

gator-agent

Monitoring Complete

PR #2622 has been merged, so gator monitoring is complete.

Head SHA: 0e3069a5dcaaf31f8b8bd425ee3da1f73c7a7cb3
Gator payload: 2
Merged at: 2026-08-07T17:55:27Z

Final action: removing active gator:* monitoring labels.

@matthewgrossmanmatthewgrossman removed the gator:watch-pipeline Gator is monitoring PR CI/CD status label Aug 7, 2026
prekshivyas added a commit to NVIDIA/NemoClaw that referenced this pull request Aug 20, 2026
<!--
patch-walker:action=sha256:47430dbc6774dd610e8f5f19a5f0a109c20fb0826f48ba6e0078acf197cc0998
-->
<!--
patch-walker:manifest=sha256:c1309329c618a280d91c328265aead642cd983a37a19273b0b76a8f128d6894e
-->
<!-- patch-walker:dependency=OpenShell -->
<!-- patch-walker:target=0.0.106 -->
<!-- markdownlint-disable MD041 -->
## Summary
Updates OpenShell from 0.0.101 to 0.0.106 using the sealed NemoPin
migration evidence. Release-trust prerequisite #9224 is merged on
`main`, and the E2E-selector work from #9378 is included in this branch.
The PR is reconciled with current `main` at latest PR commit
`e3a53c96f`.
<!-- 1-3 plain sentences: what changes and why. Describe
before-and-after behavior when it applies. Follow the NemoClaw Writing
Guide: https://github.com/NVIDIA/NemoClaw/blob/main/WRITING.md. Do not
add unrelated prose cleanup. -->
## Related Issue
- #6256: owner decision
- #3136: open upstream work
- #6871: open upstream work
- #7367: open upstream work
- #7937: open upstream work
- #7957: open upstream work
- #8769: open upstream work
- #8887: open upstream work
- #8893: open upstream work
<!-- Fixes #NNN or Closes #NNN. Remove this section if none. -->
## Changes
- Applies only paths authorized by
`sha256:65355e5c4180f3716fd8e0d0431d432a876460a7005db6099fa18a8599c3037e`.
- Migrates the exact base `44c2636d85f788f81767fbb451717566e0a8d475`
across 5 adjacent release ranges.
- Reconciles the migration with current `main` at base commit
`40dc27283`, includes the reviewed E2E-selector work from #9378, adopts
the upstream messaging-plan fixture fix from #9517, and hardens
runtime-identity qualification for cold 0.0.106 onboarding while
recording the attached-provider post-state.
- Changed paths: `.github/workflows/e2e.yaml`,
`.github/workflows/podman-cpu-proof.yaml`, `agents/hermes/Dockerfile`,
`agents/hermes/mcp-config-transaction.py`,
`agents/hermes/runtime-config-guard.py`, `agents/hermes/start.sh`,
`docs/deployment/set-up-mcp-bridge.mdx`,
`docs/manage-sandboxes/add-mcp-server.mdx`,
`docs/manage-sandboxes/update-sandboxes.mdx`,
`docs/reference/commands.mdx`,
`docs/reference/configure-runtime-identity.mdx`,
`docs/reference/troubleshooting.mdx`,
`docs/security/best-practices.mdx`,
`docs/security/gateway-authentication-controls.mdx`,
`internal/security-reviews/openshell-0.0.72-compatibility-review.mdx`,
`nemoclaw-blueprint/blueprint.yaml`,
`nemoclaw/src/shared/openshell-policy-boundary.cts`,
`scripts/brev-launchable-ci-cpu.sh`,
`scripts/checks/dependency-pins.mts`,
`scripts/checks/managed-image-protected-runtime-contract.ts`,
`scripts/install-openshell.sh`, `scripts/install.sh`,
`scripts/update-hermes-agent.sh`,
`src/lib/actions/sandbox/mcp-bridge-input-validation.test.ts`,
`src/lib/actions/sandbox/mcp-bridge-url-validation.ts`,
`src/lib/actions/sandbox/mcp-bridge-validation.ts`,
`src/lib/actions/sandbox/openshell-child-visible-credentials.v0.0.106.json`,
`src/lib/onboard/docker-driver-gateway-config-toml.test.ts`,
`src/lib/onboard/docker-driver-gateway-runtime.test.ts`,
`src/lib/onboard/docker-driver-gateway-runtime.ts`,
`src/lib/onboard/experimental/portable-demo-lifecycle.ts`,
`src/lib/onboard/forward-start.ts`,
`src/lib/onboard/managed-bootstrap/podman-held-workload.test.ts`,
`src/lib/onboard/managed-bootstrap/podman-held-workload.ts`,
`src/lib/onboard/openshell-feature-gate.test.ts`,
`src/lib/onboard/openshell-feature-gate.ts`,
`src/lib/onboard/openshell-install.test.ts`,
`src/lib/onboard/openshell-install.ts`,
`src/lib/onboard/openshell-version.ts`,
`src/lib/onboard/runtime-provider/podman-lifecycle.ts`,
`src/lib/policy/index.ts`,
`test/brev-launchable-ci-cpu-checksum.test.ts`,
`test/deepagents-mcp-legacy-lifecycle.test.ts`,
`test/dependency-pins-check.test.ts`,
`test/e2e/fixtures/openshell-v0106-qualification.ts`,
`test/e2e/fixtures/security-posture.ts`,
`test/e2e/live/mcp-bridge-sandbox.ts`,
`test/e2e/live/network-policy.test.ts`,
`test/e2e/live/openclaw-plugin-runtime-exdev.test.ts`,
`test/e2e/live/openshell-gateway-auth-source-contract-helpers.ts`,
`test/e2e/live/openshell-gateway-auth-source-contract.test.ts`,
`test/e2e/live/openshell-gateway-upgrade.test.ts`,
`test/e2e/live/openshell-v0106-tls-server-name-source.ts`,
`test/e2e/live/podman-cpu-lifecycle-helpers.ts`,
`test/e2e/live/podman-cpu-lifecycle.test.ts`,
`test/e2e/support/mcp-bridge-runtime-compatibility.test.ts`,
`test/e2e/support/mcp-bridge-sandbox.test.ts`,
`test/e2e/support/mcp-workflow-boundary.test.ts`,
`test/e2e/support/openshell-gateway-auth-contract-workflow-boundary.test.ts`,
`test/e2e/support/openshell-v0106-tls-server-name-source.test.ts`,
`test/e2e/support/workflow-plan.test.ts`,
`test/exit-code-user-error-surfaces.test.ts`,
`test/fixtures/openshell-v0.0.106`,
`test/gateway-state-reconcile-2276.test.ts`,
`test/hermes-doctor-config-hash.test.ts`,
`test/hermes-mcp-config-transaction.test.ts`,
`test/hermes-mcp-credential-boundary-manifest.test.ts`,
`test/install-openshell-version-check.test.ts`,
`test/install-openshell-version-pin.test.ts`,
`test/installer-hash-check.test.ts`,
`test/installer-sandbox-build-trust.test.ts`,
`test/installer-supervisor-manifest-trust.test.ts`,
`test/mcp-add-crash-consistency.test.ts`,
`test/mcp-destroy-lifecycle.test.ts`,
`test/mcp-policy-key-ownership.test.ts`,
`test/mcp-restart-policy-order.test.ts`,
`test/onboard-gateway-port-conflict-fast-fail.test.ts`,
`test/openshell-0.0.85-migration-review.test.ts`,
`test/openshell-channel-workflow.test.ts`, `test/pr-risk-plan.test.ts`,
`test/rebuild-credential-preflight.test.ts`, `test/runner.test.ts`,
`test/sandbox-provisioning.test.ts`,
`test/sandbox-rlimit-hooks.test.ts`,
`test/update-hermes-agent-script.test.ts`,
`tools/e2e/mcp-workflow-boundary.mts`,
`tools/e2e/openshell-gateway-auth-contract-workflow-boundary.mts`,
`tools/e2e/workflow-boundary.mts`
### Release ranges
| Range | Commits | State | Concerns |
|---|---|---|---|
| 0.0.101 → v0.0.102 | `8ddd98c3dff6` → `f48b05e31228` | published | 3 |
| v0.0.102 → v0.0.103 | `f48b05e31228` → `c825b1f8efac` | published | 2
|
| v0.0.103 → v0.0.104 | `c825b1f8efac` → `dd2b4e3bc068` | published | 1
|
| v0.0.104 → v0.0.105 | `dd2b4e3bc068` → `0f8fad23c471` | published | 3
|
| v0.0.105 → v0.0.106 | `0f8fad23c471` → `c4b500a7de64` | published | 5
|
### Concern dispositions
| Concern | Surface | Planned disposition | Failure prevented |
Remaining gate |
|---|---|---|---|---|
| `openshell-0.0.101..v0.0.102-network-1` | network | test | v0.0.102
reports network: ### Quick install * fix(e2e): separate Podman Machine
loopback listeners by @matthewgrossman in
NVIDIA/OpenShell#2622 * fix(pol... | none |
| `openshell-0.0.101..v0.0.102-runtime-topology-2` | runtime topology |
test | v0.0.102 reports runtime topology: ### Quick install * fix(e2e):
separate Podman Machine loopback listeners by @matthewgrossman in
NVIDIA/OpenShell#2622 ... | runtime-proof |
| `openshell-0.0.101..v0.0.102-security-identity-3` | security identity
| guard | v0.0.102 reports security identity: ### Quick install *
fix(e2e): separate Podman Machine loopback listeners by @matthewgrossman
in NVIDIA/OpenShell#2622... | none |
| `openshell-v0.0.102..v0.0.103-network-1` | network | test | v0.0.103
reports network: ### Quick install * fix(sandbox): acknowledge unchanged
policy revisions by @NaveCohenMonday in
NVIDIA/OpenShell#2557 * fix(gat... | none |
| `openshell-v0.0.102..v0.0.103-runtime-topology-2` | runtime topology |
test | v0.0.103 reports runtime topology: ### Quick install *
fix(sandbox): acknowledge unchanged policy revisions by @NaveCohenMonday
in NVIDIA/OpenShell#2557 ... | runtime-proof |
| `openshell-v0.0.103..v0.0.104-runtime-topology-1` | runtime topology |
test | v0.0.104 reports runtime topology: ### Quick install *
feat(build): add glibc-static supervisor libc variant by @EmilienM in
NVIDIA/OpenShell#2682 * fix(... | runtime-proof
|
| `openshell-v0.0.104..v0.0.105-compatibility-change-1` | compatibility
change | test | v0.0.105 reports compatibility change: ### Quick install
* fix(gator): separate review budget from approval gate by @johntmyers
in NVIDIA/OpenShell#2704 ... | none |
| `openshell-v0.0.104..v0.0.105-network-2` | network | test | v0.0.105
reports network: ### Quick install * fix(gator): separate review budget
from approval gate by @johntmyers in
NVIDIA/OpenShell#2704 * perf(superv... | none |
| `openshell-v0.0.104..v0.0.105-runtime-topology-3` | runtime topology |
test | v0.0.105 reports runtime topology: ### Quick install *
fix(gator): separate review budget from approval gate by @johntmyers in
NVIDIA/OpenShell#2704 * pe... | runtime-proof |
| `openshell-v0.0.105..v0.0.106-lifecycle-state-1` | lifecycle state |
test | v0.0.106 reports lifecycle state: ### Quick install *
ci(cargo-deny): add dependency audit with cargo-deny by @Ygnas in
NVIDIA/OpenShell#2677 * feat(sdk/... |
runtime-proof |
| `openshell-v0.0.105..v0.0.106-code-impact-configuration-1` | mapped
configuration | test | The exact-ref diff reports configuration changes
in crates/openshell-cli/src/commands/common.rs,
crates/openshell-cli/src/main.rs, crates/openshell-cli/src/run.rs.
Mapped NemoCl... | runtime-proof |
| `openshell-v0.0.105..v0.0.106-code-impact-contract-or-schema-2` |
mapped contract or schema | test | The exact-ref diff reports contract
or schema changes in crates/openshell-core/src/middleware.rs,
crates/openshell-core/src/provider_credentials.rs,
crates/openshell-driver-kube... | runtime-proof |
| `openshell-v0.0.105..v0.0.106-code-impact-security-3` | mapped
security | test | The exact-ref diff reports security changes in
crates/openshell-bootstrap/src/build_windows.rs,
crates/openshell-cli/src/commands/common.rs,
crates/openshell-cli/src/main.rs. Ma... | runtime-proof |
| `openshell-v0.0.105..v0.0.106-code-impact-test-4` | mapped test | test
| The exact-ref diff reports test changes in
crates/openshell-cli/tests/ensure_providers_integration.rs,
crates/openshell-cli/tests/mtls_integration.rs,
crates/openshell-cli/tests... | runtime-proof |
### Immutable artifacts
| Artifact | SHA-256 |
|---|---|
| openshell-aarch64-apple-darwin.tar.gz | `969493205e3d3462…` |
| openshell-aarch64-unknown-linux-musl.tar.gz | `ce981904ae8febd9…` |
| openshell-checksums-sha256.txt | `7421aaf9d5550dc1…` |
| openshell-gateway-aarch64-apple-darwin.tar.gz | `de8f90db9dd0d3b4…` |
| openshell-gateway-aarch64-unknown-linux-gnu.tar.gz |
`22b7781249e34870…` |
| openshell-gateway-checksums-sha256.txt | `26e4345449e02475…` |
| openshell-gateway-x86_64-unknown-linux-gnu.tar.gz |
`b7760cb752a4363c…` |
|
openshell-gateway-x86_64-unknown-linux-gnu.tar.gz::executable:openshell-gateway
| `e6cde8a54568aa19…` |
| openshell-sandbox-aarch64-unknown-linux-gnu.tar.gz |
`5e5d758d53c6abc6…` |
|
openshell-sandbox-aarch64-unknown-linux-gnu.tar.gz::executable:openshell-sandbox
| `0031c6b257a23ecc…` |
| openshell-sandbox-checksums-sha256.txt | `88bc98ffdc915fb7…` |
| openshell-sandbox-x86_64-unknown-linux-gnu.tar.gz |
`559b8aaad3a8eeab…` |
|
openshell-sandbox-x86_64-unknown-linux-gnu.tar.gz::executable:openshell-sandbox
| `019301ec8618abbe…` |
| openshell-x86_64-unknown-linux-musl.tar.gz | `d1a885a91b3e5aaa…` |
| openshell-x86_64-unknown-linux-musl.tar.gz::executable:openshell |
`98ecf95113fea999…` |
| openshell.rb | `f0f86519e227b3b3…` |
| openshell-source:crates/openshell-core/src/google_cloud.rs |
`2583a04a0557f069…` |
| openshell-source:crates/openshell-core/src/provider_credentials.rs |
`7e8e05efcb725807…` |
| openshell-source:crates/openshell-core/src/secrets.rs |
`b122b4a5af5a5823…` |
| ghcr.io/nvidia/openshell/supervisor:index | `722f44669722961b…` |
### Validation receipt
| Gate | Current result |
|---|---|
| targeted | Passed: 609 assertions with 1 intentional skip across the
migration/runtime suites, 290/290 E2E registry/workflow overlap
assertions, and 73/73 onboarding-preflight overlap assertions on
`cc9167892`. After the final main reconciliation, 32/32
conflict-sensitive gateway/TLS assertions and `npm run validate:pr`
passed on latest PR commit `d1990537d`. |
| brev-integration-fresh-onboarding | Passed on Brev before
reconciliation; latest PR commit GitHub CI passed |
| brev-integration-existing-upgrade | Passed on Brev before
reconciliation; latest PR commit GitHub CI passed |
| brev-integration-recovery-rollback | Passed on Brev before
reconciliation; latest PR commit GitHub CI passed |
| full-e2e | Exact inference run
[32199961381](https://github.com/NVIDIA/NemoClaw/actions/runs/32199961381)
on PR commit `cc9167892` with trusted base/workflow `a9fc8045d` passed
5/7 cases. TC-INF-12 and TC-INF-13 both completed cold onboarding,
plan/apply, provider attachment, token refresh, and post-attach
inference; OpenShell 0.0.106 then failed to project `E2E_ACCESS_TOKEN` /
`ENTRA_ACCESS_TOKEN` into 19 fresh sandbox execs over 35 seconds.
Protected managed-image runtime was not launched because inference is
its prerequisite. This is a repeated upstream runtime-credential
projection blocker, not a waived gate. |
<!-- List concrete changes. If this adds an abstraction, configuration,
fallback, migration, or compatibility path, name its current requirement
and consumer, explain why a direct change is insufficient, and identify
the test that protects it. -->
## Type of Change
- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)
## Quality Gates
<!-- Check one tests line and one docs line. Check other lines when
applicable. Add every requested justification or approval reference. -->
- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [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-commit review passed for the OpenShell 0.0.106 migration and
stacked E2E selector.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:
## Documentation Writer Review
<!-- Required for code and documentation changes after the changes and
applicable validation are complete. Keep one review checkbox and one
instance of each visible or hidden field. For Evidence, list changed
documentation paths. For documentation-only changes, also state that the
writing rules and documentation style were reviewed. For other results,
explain why no documentation change is needed or why the review is
blocked. For Agent, use a consistent product and surface name, such as
Codex Desktop, Codex CLI, Claude Code, or Cursor. After committing all
review changes, put `git rev-parse --short HEAD` and `git rev-parse
--short HEAD:AGENTS.md` in the hidden metadata below. Rerun the review
and refresh that metadata after any new commit. This receipt is advisory
during the data-collection pilot. -->
- [x] Documentation writer subagent reviewed the completed changes
- Result: `docs-updated`
- Evidence: `docs/deployment/set-up-mcp-bridge.mdx`,
`docs/manage-sandboxes/add-mcp-server.mdx`,
`docs/manage-sandboxes/manage-mcp-servers.mdx`,
`docs/reference/commands.mdx`, and
`docs/reference/troubleshoot-mcp-servers.mdx`
- Agent: Codex Desktop
<!-- docs-review-head-sha: e3a53c9 -->
<!-- docs-review-agents-blob-sha:
513518c -->
## DGX Station Hardware Evidence
<!-- Required only when scripts/prepare-dgx-station-host.sh changes.
Maintainers must review the linked evidence before approving or merging.
This is human-reviewed evidence, not authenticated hardware provenance.
Exceptional bypasses use existing repository governance and must be
documented on the PR. -->
- [ ] Tested on DGX Station
- Tested commit:
- Station profile/scenario:
- Result:
- Supporting evidence:
## Verification
<!-- Check each applicable item only when supported by the requested
evidence. Run targeted tests once per relevant change set and rerun
after later edits or hook autofixes that can affect the tested behavior.
Do not rerun hook-covered checks. -->
- [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 — 609 assertions passed with 1
intentional skip across the migration/runtime suites, followed by
290/290 E2E registry/workflow overlap assertions and 73/73
onboarding-preflight overlap assertions on `cc9167892`; 32/32
conflict-sensitive gateway/TLS assertions and `npm run validate:pr` then
passed after the final main reconciliation on latest PR commit
`d1990537d`.
- [x] Applicable broad gate passed — GitHub reports no required checks
for this branch. Optional checks do not gate review unless they expose a
PR defect.
- [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)
- [x] 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)
---
<!-- DCO sign-off is required in this PR description, and every commit
must appear as Verified in GitHub. Run: git config user.name && git
config user.email -->
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
<!-- patch-walker-status:start -->
## NemoPatch current-head status
- Status: **blocked**
- Latest PR commit: `d1990537d9b9c8579c3197cba33faddaeb9aa101`
- Checked: 2026-08-19T02:46:48Z
- Reconciled with `main` at base commit `ee6762b99`; 32/32
conflict-sensitive gateway/TLS assertions, local PR validation, and all
45 applicable current-commit GitHub checks pass. The two advisor
services failed analysis without findings. Exact inference on
`cc9167892` with trusted base/workflow `a9fc8045d` passed 5/7 and
repeatedly isolated an OpenShell 0.0.106 runtime-credential projection
failure after successful provider attachment and refresh. Protected
managed-image E2E remains gated; maintainer/upstream resolution is
required.
<!-- patch-walker-status:end -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Added support for OpenShell `0.0.106`, including updated CLI, gateway,
sandbox, supervisor, and credential-boundary assets.
- Added stronger installation integrity checks for reviewed binaries and
release artifacts.
- Added TLS server-name verification across Docker, Podman, and VM
environments.
- **Bug Fixes**
- Improved MCP bridge destination validation before connections are
established.
- Added supervisor TLS-name sanitization protections.
- **Documentation**
- Updated setup, compatibility, security, installation, and
troubleshooting guidance for OpenShell `0.0.106`.
- Added guidance for resolving Docker credential-store failures in
headless environments.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
Co-authored-by: Senthil Ravichandran <senthilr@nvidia.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:e2eRequires end-to-end coverage

Projects

None yet

2 participants

@matthewgrossman@krishicks