fix(sandbox): acknowledge unchanged policy revisions - #2557
Conversation
|
All contributors have signed the DCO ✍️ ✅ |
|
I have read the DCO document and I hereby sign the DCO. |
drew
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: This concentrated sandbox-policy fix directly addresses confirmed issue #2518 and has no duplicate candidate.
Head SHA: 182ef51768dfa66becb6847e0349170621cbddab
Review findings:
- Warning — missing stateful regression coverage: the added predicate tests do not exercise the poll loop, so they cannot catch duplicate or premature acknowledgements. Please add a scripted-poll test proving
v1/H → v2/Hemits exactly oneLOADED(2)without reloading OPA, a failed required middleware reconciliation emits nothing and retries, and a later success emits exactly one acknowledgement. Include the relevant negative scopes (local override, global source, changed/empty hash, and equal/older version). - See the inline warning about emitting success telemetry before gateway acknowledgement succeeds.
Docs: The architecture invariant is documented. No Fern docs/navigation update is required because this fixes existing --wait semantics without changing a command or user workflow.
Tests: No local tests were run. The author reports pre-commit and two focused predicate tests passing; required CI is still waiting for the copy-PR mirror.
Next state: gator:in-review pending an author update. A test:e2e pipeline run will be required after review feedback is resolved because this changes sandbox policy-enforcement reconciliation.
182ef51 to
c20b6b8
Compare
|
Addressed in The poll loop now accepts a scripted gateway and middleware connector in tests,
I also carried the acknowledgement event kind and policy hash in Validation: I additionally mutation-checked the two critical guards: allowing equal |
drew
left a comment
There was a problem hiding this comment.
gator-agent
Re-check After Author Update
Thanks @NaveCohenMonday. I reviewed current head c20b6b8c365dd5821594673d5fe06bf4cbe2ae93 after your update explaining the new scripted poll-loop coverage and post-RPC acknowledgement telemetry.
Validation: This concentrated sandbox-policy fix directly addresses confirmed issue #2518.
Head SHA: c20b6b8c365dd5821594673d5fe06bf4cbe2ae93
What I checked: the full current-head diff, the same-hash candidate and reconciliation gates, status-reporter delivery path, stateful positive/negative poll tests, and the architecture invariant.
Disposition: the two prior gator findings are resolved. The poll-loop tests now cover same-hash exactly-once acknowledgement, middleware failure/retry, and the requested negative scopes; success OCSF telemetry now follows a successful gateway status RPC. The independent review found no blocking correctness or security issue. It left one non-blocking determinism warning and one optional telemetry-test suggestion inline.
Docs: architecture/sandbox.md accurately documents the invariant. No Fern docs/navigation update is required because this fixes existing semantics without adding a direct UX workflow.
Tests: Code-only review; no local tests were run. A test:e2e pipeline run is required because this changes sandbox policy-enforcement reconciliation.
Next state: gator:watch-pipeline.
|
Label |
|
/ok to test c20b6b8 |
|
@NaveCohenMonday you're hitting some flakey tests which have been turned off as of today. i'd rebase to see if we can get the pipeline green so we can prep to merge |
Author Follow-Up NudgeThis PR has been in @NaveCohenMonday, please rebase onto current |
Signed-off-by: Nave Cohen <nave@monday.com>
Signed-off-by: Nave Cohen <nave@monday.com>
4e6ed1b to
25202b2
Compare
|
Rebased onto current main (4cb77a9) as requested and force-updated the existing fork branch. New head: 25202b2 The two-commit range-diff is patch-identical to the previously reviewed head, and both commits retain the Nave Cohen DCO sign-off. Validation on the rebased head:
This fork head now needs /ok to test 25202b2 so the copy-PR branch checks can rerun. |
|
/ok to test 25202b2 |
Re-check After Author UpdateThanks @NaveCohenMonday. I checked current head Head SHA: What I checked: the durable Gator feedback ledger, current patch identity, prior marked reviews and inline findings, and the current required-check state. The ledger confirms this rebase is patch-equivalent to the last reviewed head, so I did not re-review the unchanged effective patch. Drew's original findings and their later resolutions remain preserved. Disposition: resolved. No blocking review findings remain. Tests: Next state: |
Monitoring CompleteMonitoring is complete because this PR has merged. Head SHA: Final status: Gator preserved Drew's original review and inline findings, their subsequent resolutions, and the patch-equivalent same-SHA disposition. Required branch, Helm, and E2E gates passed, maintainer approval was present, and the PR merged from I removed the active |
<!-- 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>
Summary
Decouple sandbox policy-revision acknowledgement from OPA policy loading. A
newer sandbox revision whose effective policy hash is already loaded can now be
acknowledged without reloading identical policy content, allowing desired and
current revisions to converge.
Related Issue
Fixes #2518
Changes
policy hash.
effective policy hash.
before acknowledging the revision.
hashes, and different policy content from the shortcut.
loaded-status report.
Testing
CARGO_INCREMENTAL=0 mise run pre-commitpassestest:e2eafter review)Validation:
The scripted poll-loop tests cover
v1/H → v2/Hexactly-once acknowledgementwithout an OPA reload, failed middleware reconciliation with no premature
status followed by retry and one acknowledgement, and the local/global,
changed/empty-hash, equal, and older-version scopes.
Checklist