Skip to content

feat(runtime): activate qualified native Podman - #9923

Merged
ericksoa merged 573 commits into
mainfrom
feat/b4-h-podman-activation-9145
Sep 2, 2026
Merged

feat(runtime): activate qualified native Podman#9923
ericksoa merged 573 commits into
mainfrom
feat/b4-h-podman-activation-9145

Conversation

@ericksoa

@ericksoa ericksoa commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Starts B4-H native Podman activation on the buildless onboarding cutover in #9323. This first candidate slice replaces the dormant Podman workload profile with the exact immutable managed-image contract already exercised by trusted native qualification. Production registration remains fail-closed until the complete exact-head 24-case aggregate passes.

Related Issue

Closes #9145.

Stacked on #9323.

Changes

  • Accept only managed-image receipts for the qualified Linux amd64 and arm64 platforms.
  • Reject legacy Dockerfile and ambiguous workload receipts for Podman.
  • Make the protected native-runtime executor verify the activation workload contract.

Type of Change

  • Code change with doc updates

Quality Gates

  • Tests added or updated for changed behavior
  • Sensitive paths changed
  • Sensitive-path review completed

Verification

  • Focused Podman and native qualification tests: 40 passed
  • CLI typecheck passed
  • Commit and push hooks passed
  • Complete supported PR E2E matrix
  • Complete 24-case trusted native Podman qualification aggregate
  • Evidence-matched installer and support documentation

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

@copy-pr-bot

copy-pr-bot Bot commented Aug 21, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 477 files, which is 177 over the limit of 300.

To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: d1ba65ae-4b16-4ee0-9727-6d12569b6ffc

📥 Commits

Reviewing files that changed from the base of the PR and between 16c21af and bf03efe.

📒 Files selected for processing (477)
  • .github/actions/setup-native-podman-e2e/action.yaml
  • .github/actions/stage-native-podman-e2e-toolchains/action.yaml
  • .github/workflows/e2e-standard-profile.yaml
  • .github/workflows/e2e.yaml
  • .github/workflows/managed-images.yaml
  • agents/hermes/Dockerfile
  • agents/hermes/mcp-config-transaction.py
  • agents/hermes/runtime-config-guard.py
  • agents/hermes/start.sh
  • agents/hermes/validate-env-secret-boundary.py
  • ci/platform-matrix.json
  • ci/source-architecture-budget.json
  • ci/test-file-size-budget.json
  • docs/reference/architecture.mdx
  • docs/reference/commands.mdx
  • docs/reference/platform-support.mdx
  • docs/reference/troubleshooting.mdx
  • scripts/checks/layer-import-boundaries.mts
  • scripts/checks/run-managed-image-openshell-e2e.ts
  • scripts/e2e/package-cli-artifact.sh
  • scripts/e2e/restore-cli-artifact.sh
  • scripts/install.sh
  • scripts/lib/entrypoint-env-wrapper.sh
  • scripts/lib/refresh-openclaw-wechat-placeholder.py
  • scripts/managed-bootstrap-entrypoint.c
  • scripts/managed-gateway-control.py
  • scripts/nemoclaw-start.sh
  • scripts/openclaw-config-guard.py
  • scripts/runtime_state_mutation_hermes_publisher.py
  • scripts/state-dir-guard.py
  • src/lib/actions/inference-set-compatible-provider.test.ts
  • src/lib/actions/inference-set-provider.ts
  • src/lib/actions/inference-set-route-containment.ts
  • src/lib/actions/inference-set.ts
  • src/lib/actions/maintenance.test.ts
  • src/lib/actions/maintenance.ts
  • src/lib/actions/sandbox/connect-flow.test.ts
  • src/lib/actions/sandbox/connect-inference-gateway.ts
  • src/lib/actions/sandbox/connect-probe-observe.test.ts
  • src/lib/actions/sandbox/connect-route-repair.test.ts
  • src/lib/actions/sandbox/connect.ts
  • src/lib/actions/sandbox/destroy-container-identity.test.ts
  • src/lib/actions/sandbox/destroy-execution.ts
  • src/lib/actions/sandbox/destroy-flow.test.ts
  • src/lib/actions/sandbox/destroy-presence.ts
  • src/lib/actions/sandbox/destroy.test.ts
  • src/lib/actions/sandbox/destroy.ts
  • src/lib/actions/sandbox/gateway-failure-classifier.test.ts
  • src/lib/actions/sandbox/gateway-failure-classifier.ts
  • src/lib/actions/sandbox/gateway-state.ts
  • src/lib/actions/sandbox/launch-readiness-ordinary-pairing.test.ts
  • src/lib/actions/sandbox/launch-readiness-runtime-provider.test.ts
  • src/lib/actions/sandbox/launch-readiness.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-hermes.ts
  • src/lib/actions/sandbox/mcp-bridge-adapter-registration.test.ts
  • src/lib/actions/sandbox/mcp-bridge-remove.ts
  • src/lib/actions/sandbox/mcp-bridge-render.ts
  • src/lib/actions/sandbox/mcp-bridge-status-resolution.test.ts
  • src/lib/actions/sandbox/mcp-bridge-tool-discovery.test.ts
  • src/lib/actions/sandbox/mcp-bridge-tool-discovery.ts
  • src/lib/actions/sandbox/mcp-bridge.ts
  • src/lib/actions/sandbox/policy-channel-agent-gate.test.ts
  • src/lib/actions/sandbox/policy-channel-dependencies.ts
  • src/lib/actions/sandbox/policy-channel.ts
  • src/lib/actions/sandbox/process-recovery.test.ts
  • src/lib/actions/sandbox/process-recovery.ts
  • src/lib/actions/sandbox/rebuild-agent-base-image-preflight.test.ts
  • src/lib/actions/sandbox/rebuild-dcode-preflight.ts
  • src/lib/actions/sandbox/rebuild-destroy-phase.test.ts
  • src/lib/actions/sandbox/rebuild-destroy-phase.ts
  • src/lib/actions/sandbox/rebuild-flow-helpers.ts
  • src/lib/actions/sandbox/rebuild-flow-recovery.test.ts
  • src/lib/actions/sandbox/rebuild-hermes-cron-restore.test.ts
  • src/lib/actions/sandbox/rebuild-mcp-phase.ts
  • src/lib/actions/sandbox/rebuild-target-runtime.test.ts
  • src/lib/actions/sandbox/rebuild-target-runtime.ts
  • src/lib/actions/sandbox/runtime-env.test.ts
  • src/lib/actions/sandbox/sandbox-gateway-routing.ts
  • src/lib/actions/sandbox/snapshot/backup-authority.test.ts
  • src/lib/actions/sandbox/snapshot/backup-authority.ts
  • src/lib/actions/sandbox/status-preflight.ts
  • src/lib/actions/sandbox/status-snapshot.ts
  • src/lib/actions/sandbox/stopped-sandbox-backup.test.ts
  • src/lib/actions/sandbox/stopped-sandbox-backup.ts
  • src/lib/actions/sandbox/supervisor-relaunch.ts
  • src/lib/actions/sandbox/terminal-runtime-health.ts
  • src/lib/actions/uninstall/hermes-uninstall-cleanup.ts
  • src/lib/actions/uninstall/run-plan-hermes-state-volume.test.ts
  • src/lib/actions/uninstall/run-plan.ts
  • src/lib/adapters/container-engine.ts
  • src/lib/adapters/openshell/sandbox-observer-cli.test.ts
  • src/lib/adapters/openshell/sandbox-observer-cli.ts
  • src/lib/adapters/podman/index.test.ts
  • src/lib/adapters/podman/index.ts
  • src/lib/adapters/sandbox/command-transport.test.ts
  • src/lib/adapters/sandbox/command-transport.ts
  • src/lib/agent/base-image.ts
  • src/lib/agent/list-command.ts
  • src/lib/agent/onboard.ts
  • src/lib/core/gateway-address.ts
  • src/lib/core/version.test.ts
  • src/lib/core/version.ts
  • src/lib/inference/gateway-route-mutation-lock.test.ts
  • src/lib/inference/gateway-route-mutation-lock.ts
  • src/lib/inference/https-pin-runtime-adapter.test.ts
  • src/lib/inference/https-pin-runtime-adapter.ts
  • src/lib/inference/serving/profile-list.test.ts
  • src/lib/messaging/applier/agent-config.ts
  • src/lib/messaging/applier/setup-applier-credential-env.test.ts
  • src/lib/messaging/channels/discord/policy/hermes.yaml
  • src/lib/messaging/channels/slack/policy/hermes.yaml
  • src/lib/messaging/channels/teams/policy/hermes.yaml
  • src/lib/messaging/channels/telegram/policy/hermes.yaml
  • src/lib/messaging/channels/wechat/hooks/implementations.test.ts
  • src/lib/messaging/channels/wechat/hooks/seed-openclaw-account.ts
  • src/lib/messaging/channels/wechat/policy/hermes.yaml
  • src/lib/onboard.ts
  • src/lib/onboard/__test-helpers__/sandbox-gpu-create-flow.ts
  • src/lib/onboard/compute/plan.test.ts
  • src/lib/onboard/compute/plan.ts
  • src/lib/onboard/created-sandbox-finalization.test.ts
  • src/lib/onboard/created-sandbox-finalization.ts
  • src/lib/onboard/credential-provider-registration.test.ts
  • src/lib/onboard/credential-provider-registration.ts
  • src/lib/onboard/dashboard-forward-control.test.ts
  • src/lib/onboard/dashboard-forward-control.ts
  • src/lib/onboard/dashboard.ts
  • src/lib/onboard/docker-driver-gateway-config-toml.test.ts
  • src/lib/onboard/docker-driver-gateway-config.ts
  • src/lib/onboard/docker-driver-gateway-env.test.ts
  • src/lib/onboard/docker-driver-gateway-env.ts
  • src/lib/onboard/docker-driver-gateway-local-tls.test.ts
  • src/lib/onboard/docker-driver-gateway-local-tls.ts
  • src/lib/onboard/docker-driver-gateway-process-identity.ts
  • src/lib/onboard/docker-driver-gateway-runtime-marker.ts
  • src/lib/onboard/docker-driver-gateway-runtime.test.ts
  • src/lib/onboard/docker-driver-gateway-service.ts
  • src/lib/onboard/docker-driver-platform.ts
  • src/lib/onboard/docker-gpu-local-inference.ts
  • src/lib/onboard/docker-gpu-patch-clone.test.ts
  • src/lib/onboard/docker-gpu-patch-clone.ts
  • src/lib/onboard/docker-gpu-patch-types.ts
  • src/lib/onboard/fatal-runtime-preflight.test.ts
  • src/lib/onboard/fatal-runtime-preflight.ts
  • src/lib/onboard/gateway-binding.ts
  • src/lib/onboard/gateway-binding/identity.ts
  • src/lib/onboard/gateway-runtime-selection.test.ts
  • src/lib/onboard/gateway-sandbox-reachability.test.ts
  • src/lib/onboard/gateway-sandbox-reachability.ts
  • src/lib/onboard/gateway/state-dir.ts
  • src/lib/onboard/host-gateway-process-target.test.ts
  • src/lib/onboard/host-gateway-process.ts
  • src/lib/onboard/host-service-reachability.test.ts
  • src/lib/onboard/host-service-reachability.ts
  • src/lib/onboard/initial-policy-real-policy.test.ts
  • src/lib/onboard/initial-policy.test.ts
  • src/lib/onboard/initial-policy.ts
  • src/lib/onboard/lifecycle-contracts.md
  • src/lib/onboard/machine/handlers/preflight.test.ts
  • src/lib/onboard/machine/handlers/preflight.ts
  • src/lib/onboard/machine/initial-flow-phases.test.ts
  • src/lib/onboard/machine/runtime-effectful-preflight.test.ts
  • src/lib/onboard/machine/runtime-effectful-preflight.ts
  • src/lib/onboard/managed-bootstrap/adapter.test.ts
  • src/lib/onboard/managed-bootstrap/adapter.ts
  • src/lib/onboard/managed-bootstrap/docker-recovery.test.ts
  • src/lib/onboard/managed-bootstrap/docker-runtime.test.ts
  • src/lib/onboard/managed-bootstrap/docker-runtime.ts
  • src/lib/onboard/managed-bootstrap/docker-spec.test.ts
  • src/lib/onboard/managed-bootstrap/docker-spec.ts
  • src/lib/onboard/managed-bootstrap/docker-test-fixture.ts
  • src/lib/onboard/managed-bootstrap/docker.test.ts
  • src/lib/onboard/managed-bootstrap/docker.ts
  • src/lib/onboard/managed-bootstrap/podman-bootstrap-journal.test.ts
  • src/lib/onboard/managed-bootstrap/podman-bootstrap-journal.ts
  • src/lib/onboard/managed-bootstrap/podman-bootstrap-replacement.test.ts
  • src/lib/onboard/managed-bootstrap/podman-bootstrap-replacement.ts
  • src/lib/onboard/managed-bootstrap/podman-held-workload.test.ts
  • src/lib/onboard/managed-bootstrap/podman-held-workload.ts
  • src/lib/onboard/managed-bootstrap/podman-image-transaction.test.ts
  • src/lib/onboard/managed-bootstrap/podman-image-transaction.ts
  • src/lib/onboard/managed-bootstrap/podman-runtime.test.ts
  • src/lib/onboard/managed-bootstrap/podman-runtime.ts
  • src/lib/onboard/managed-bootstrap/podman-watcher-lease.test.ts
  • src/lib/onboard/managed-bootstrap/podman-watcher-lease.ts
  • src/lib/onboard/managed-bootstrap/runtime-create.ts
  • src/lib/onboard/managed-bootstrap/state-root-authority.ts
  • src/lib/onboard/managed-image/agents.ts
  • src/lib/onboard/managed-startup-shared-state-transaction.test.ts
  • src/lib/onboard/managed-startup/shared-state-transaction.ts
  • src/lib/onboard/managed-startup/state-roots.ts
  • src/lib/onboard/managed-workload-rebuild-transaction.test.ts
  • src/lib/onboard/managed-workload/hermes-state-volume.test.ts
  • src/lib/onboard/managed-workload/hermes-state-volume.ts
  • src/lib/onboard/managed-workload/managed-state-volumes.ts
  • src/lib/onboard/managed-workload/onboard-orchestration.test.ts
  • src/lib/onboard/managed-workload/onboard-orchestration.ts
  • src/lib/onboard/openshell-docker-sandbox-containers.test.ts
  • src/lib/onboard/openshell-docker-sandbox-containers.ts
  • src/lib/onboard/preflight-docker-credential-store.test.ts
  • src/lib/onboard/reachability/host-service-message.ts
  • src/lib/onboard/runtime-control-flow.ts
  • src/lib/onboard/runtime-provider/access.ts
  • src/lib/onboard/runtime-provider/activation.test.ts
  • src/lib/onboard/runtime-provider/activation.ts
  • src/lib/onboard/runtime-provider/configured-runtime.ts
  • src/lib/onboard/runtime-provider/contract.ts
  • src/lib/onboard/runtime-provider/current.ts
  • src/lib/onboard/runtime-provider/docker-llama-cpp-managed-lifecycle.ts
  • src/lib/onboard/runtime-provider/docker-privileged-sandbox-control.ts
  • src/lib/onboard/runtime-provider/docker-privileged-sandbox-identity.ts
  • src/lib/onboard/runtime-provider/docker-state-mutation.ts
  • src/lib/onboard/runtime-provider/docker.ts
  • src/lib/onboard/runtime-provider/mxc.ts
  • src/lib/onboard/runtime-provider/podman-lifecycle.test.ts
  • src/lib/onboard/runtime-provider/podman-lifecycle.ts
  • src/lib/onboard/runtime-provider/podman-privileged-sandbox-control.ts
  • src/lib/onboard/runtime-provider/podman-runtime-surfaces.test.ts
  • src/lib/onboard/runtime-provider/podman-runtime-surfaces.ts
  • src/lib/onboard/runtime-provider/podman-state-mutation.test.ts
  • src/lib/onboard/runtime-provider/podman-state-mutation.ts
  • src/lib/onboard/runtime-provider/podman-state-root.ts
  • src/lib/onboard/runtime-provider/podman.test.ts
  • src/lib/onboard/runtime-provider/podman.ts
  • src/lib/onboard/runtime-provider/privileged-sandbox-control-errors.ts
  • src/lib/onboard/runtime-provider/registry.ts
  • src/lib/onboard/runtime-provider/runtime-provider-contract.test.ts
  • src/lib/onboard/runtime-provider/selection.ts
  • src/lib/onboard/runtime-provider/stopped-sandbox-state-cleanup.ts
  • src/lib/onboard/sandbox-create-intent-types.ts
  • src/lib/onboard/sandbox-create-plan-materialization.ts
  • src/lib/onboard/sandbox-create-plan.test.ts
  • src/lib/onboard/sandbox-create/orchestration.ts
  • src/lib/onboard/sandbox-create/provider-publication.ts
  • src/lib/onboard/sandbox-create/rebuild-policy-handoff.test.ts
  • src/lib/onboard/sandbox-create/rebuild-policy-handoff.ts
  • src/lib/onboard/sandbox-dockerfile-patch-flow.test.ts
  • src/lib/onboard/sandbox-dockerfile-patch-flow.ts
  • src/lib/onboard/sandbox-gpu-create-attempt.ts
  • src/lib/onboard/sandbox-gpu-create-flow.test.ts
  • src/lib/onboard/sandbox-gpu-create-flow.ts
  • src/lib/onboard/sandbox-gpu-create-identity-gate.test.ts
  • src/lib/onboard/sandbox-gpu-create-run-attempt.ts
  • src/lib/onboard/sandbox-gpu-preflight-routing.test.ts
  • src/lib/onboard/sandbox-gpu-preflight.ts
  • src/lib/onboard/sandbox-provider-cleanup.ts
  • src/lib/onboard/sandbox-registry-metadata.test.ts
  • src/lib/onboard/sandbox-registry-metadata.ts
  • src/lib/onboard/sandbox-workload-preparation.test.ts
  • src/lib/onboard/workload/preparation.ts
  • src/lib/policy/index.ts
  • src/lib/sandbox-base-image-agent-resolution.test.ts
  • src/lib/sandbox-base-image.ts
  • src/lib/sandbox/config.ts
  • src/lib/sandbox/privileged-exec.test.ts
  • src/lib/sandbox/privileged-exec.ts
  • src/lib/shields/hermes-runtime-state-mutation.test.ts
  • src/lib/shields/hermes-runtime-state-mutation.ts
  • src/lib/shields/index.ts
  • src/lib/shields/legacy-hermes-compat.test.ts
  • src/lib/shields/mutable-config-repair.test.ts
  • src/lib/shields/mutable-config-repair.ts
  • src/lib/shields/openclaw-transition.test.ts
  • src/lib/shields/policy-transition.test.ts
  • src/lib/shields/state-dir-lock.test.ts
  • src/lib/shields/state-dir-lock.ts
  • src/lib/state/mcp-lifecycle-lock-acquisition.ts
  • src/lib/state/mcp-lifecycle-lock-storage.ts
  • src/lib/state/portable-uninstall-retirement.test.ts
  • src/lib/state/registry.ts
  • src/lib/state/registry/lifecycle-generation-cas.ts
  • src/lib/state/registry/lifecycle-generation.ts
  • src/lib/tunnel/agent-forward-stop.ts
  • test/agents/hermes/hermes-config-transaction-wiring.test.ts
  • test/agents/hermes/hermes-gateway-auxiliary-retry.test.ts
  • test/agents/hermes/hermes-mcp-apply-race.test.ts
  • test/agents/hermes/hermes-mcp-config-transaction.test.ts
  • test/agents/hermes/hermes-mcp-integrity-state.test.ts
  • test/agents/hermes/hermes-mcp-rollback-pending.test.ts
  • test/agents/hermes/hermes-runtime-api-key.test.ts
  • test/agents/hermes/hermes-start.test.ts
  • test/agents/openclaw/runtime/nemoclaw-start-runtime-env-alias.test.ts
  • test/agents/openclaw/runtime/nemoclaw-start-slack-runtime.test.ts
  • test/agents/openclaw/runtime/nemoclaw-start-wechat-placeholder.test.ts
  • test/agents/openclaw/runtime/nemoclaw-start.test.ts
  • test/automation/e2e/e2e-recommendations.test.ts
  • test/automation/pull-requests/pr-review-advisor-security-boundaries.test.ts
  • test/channels/channels-add-bridge-lifecycle.test.ts
  • test/channels/channels-add-deepagents-rejection.test.ts
  • test/channels/channels-remove-full-teardown.test.ts
  • test/e2e-runtime/entrypoint-env-wrapper.test.ts
  • test/e2e/fixtures/availability-env.ts
  • test/e2e/fixtures/clients/gateway.ts
  • test/e2e/fixtures/e2e-test.ts
  • test/e2e/fixtures/gateway-providers.ts
  • test/e2e/fixtures/hermes-discord-policy-binding.ts
  • test/e2e/fixtures/host-address.ts
  • test/e2e/fixtures/managed-image-receipt.ts
  • test/e2e/fixtures/phases/environment.ts
  • test/e2e/fixtures/phases/index.ts
  • test/e2e/fixtures/phases/lifecycle.ts
  • test/e2e/fixtures/phases/onboarding.ts
  • test/e2e/fixtures/routed-private-relay.ts
  • test/e2e/fixtures/runtime-provider.ts
  • test/e2e/fixtures/security-posture.ts
  • test/e2e/fixtures/workflow-e2e-test.ts
  • test/e2e/live/agent-turn-latency.test.ts
  • test/e2e/live/bedrock-runtime-compatible-anthropic.test.ts
  • test/e2e/live/brave-search.test.ts
  • test/e2e/live/channels-add-remove.test.ts
  • test/e2e/live/channels-stop-start-helpers.ts
  • test/e2e/live/cloud-inference.test.ts
  • test/e2e/live/cloud-onboard.test.ts
  • test/e2e/live/common-egress-agent.test.ts
  • test/e2e/live/cron-preflight-inference-local.test.ts
  • test/e2e/live/dashboard-remote-bind.test.ts
  • test/e2e/live/device-auth-health.test.ts
  • test/e2e/live/dns-rebinding-hosts-fixture.ts
  • test/e2e/live/double-onboard.test.ts
  • test/e2e/live/full-e2e.test.ts
  • test/e2e/live/gpu-double-onboard.test.ts
  • test/e2e/live/gpu-e2e.test.ts
  • test/e2e/live/hermes-discord-proxy.ts
  • test/e2e/live/hermes-discord.test.ts
  • test/e2e/live/hermes-e2e.test.ts
  • test/e2e/live/hermes-gpu-startup-proof.ts
  • test/e2e/live/hermes-gpu-startup.test.ts
  • test/e2e/live/hermes-inference-switch.test.ts
  • test/e2e/live/hermes-shields-config.test.ts
  • test/e2e/live/hermes-slack-e2e-helpers.ts
  • test/e2e/live/inference-routing-helpers.ts
  • test/e2e/live/inference-routing-provider-smoke.test.ts
  • test/e2e/live/inference-routing.test.ts
  • test/e2e/live/issue-2478-crash-loop-recovery.test.ts
  • test/e2e/live/issue-4462-admin-approval-helper.ts
  • test/e2e/live/issue-4462-scope-upgrade-approval.test.ts
  • test/e2e/live/kimi-inference-compat.test.ts
  • test/e2e/live/launchable-smoke.test.ts
  • test/e2e/live/mcp-bridge-deepagents-config.ts
  • test/e2e/live/mcp-bridge-hermes-http.ts
  • test/e2e/live/mcp-bridge-onboard-env.ts
  • test/e2e/live/mcp-bridge-sandbox.ts
  • test/e2e/live/mcp-bridge-trusted-private.ts
  • test/e2e/live/messaging-compatible-endpoint-helpers.ts
  • test/e2e/live/messaging-compatible-endpoint.test.ts
  • test/e2e/live/messaging-providers-helpers.ts
  • test/e2e/live/messaging-providers.test.ts
  • test/e2e/live/model-router-provider-routed-inference.test.ts
  • test/e2e/live/native-runtime-qualification-case-executor.ts
  • test/e2e/live/network-policy.test.ts
  • test/e2e/live/onboard-policy-preset-sequencing.test.ts
  • test/e2e/live/onboard-repair.test.ts
  • test/e2e/live/onboard-resume.test.ts
  • test/e2e/live/openclaw-discord-pairing.test.ts
  • test/e2e/live/openclaw-inference-switch.test.ts
  • test/e2e/live/openclaw-pairing-helpers.ts
  • test/e2e/live/openclaw-skill-cli.test.ts
  • test/e2e/live/openclaw-slack-pairing.test.ts
  • test/e2e/live/openclaw-tui-chat-correlation.test.ts
  • test/e2e/live/openshell-credential-generation-window.test.ts
  • test/e2e/live/package-database-read-only.ts
  • test/e2e/live/phase6-messaging-helpers.ts
  • test/e2e/live/podman-cpu-lifecycle.test.ts
  • test/e2e/live/rebuild-hermes.test.ts
  • test/e2e/live/restricted-onboard-helpers.ts
  • test/e2e/live/sandbox-operations.test.ts
  • test/e2e/live/sandbox-survival.test.ts
  • test/e2e/live/sessions-agents-cli.test.ts
  • test/e2e/live/shields-config.test.ts
  • test/e2e/live/skill-agent.test.ts
  • test/e2e/live/snapshot-commands.test.ts
  • test/e2e/live/spark-express-vllm.test.ts
  • test/e2e/live/state-backup-restore.test.ts
  • test/e2e/live/telegram-injection.test.ts
  • test/e2e/live/token-rotation.test.ts
  • test/e2e/live/tunnel-lifecycle-helpers.ts
  • test/e2e/mock-parity.json
  • test/e2e/registry/definitions/baseline.ts
  • test/e2e/registry/matrix.ts
  • test/e2e/registry/run.ts
  • test/e2e/registry/runtime-support.ts
  • test/e2e/registry/types.ts
  • test/e2e/support/base-image-publication.test.ts
  • test/e2e/support/channels-stop-start-googlechat.test.ts
  • test/e2e/support/cli-artifact-packaging.test.ts
  • test/e2e/support/cli-artifact-workflow-boundary.test.ts
  • test/e2e/support/e2e-clients.test.ts
  • test/e2e/support/e2e-host-address.test.ts
  • test/e2e/support/e2e-matrix.test.ts
  • test/e2e/support/e2e-operations-workflow-boundary.test.ts
  • test/e2e/support/e2e-phase-environment.test.ts
  • test/e2e/support/e2e-phase-lifecycle.test.ts
  • test/e2e/support/e2e-phase-onboarding.test.ts
  • test/e2e/support/e2e-report-to-pr-workflow-boundary.test.ts
  • test/e2e/support/e2e-semantic-phase-check.test.ts
  • test/e2e/support/hermes-discord-policy-binding.test.ts
  • test/e2e/support/hermes-gpu-startup-proof.test.ts
  • test/e2e/support/hermes-workflow-boundary.test.ts
  • test/e2e/support/hosted-inference.test.ts
  • test/e2e/support/issue-4462-fixture-boundary.test.ts
  • test/e2e/support/managed-image-receipt.test.ts
  • test/e2e/support/manual-pr-credential-authorization.test.ts
  • test/e2e/support/mcp-bridge-hermes-http.test.ts
  • test/e2e/support/mcp-bridge-onboard-env.test.ts
  • test/e2e/support/mcp-bridge-sandbox.test.ts
  • test/e2e/support/messaging-compatible-endpoint-helpers.test.ts
  • test/e2e/support/messaging-providers-runtime-proofs.test.ts
  • test/e2e/support/native-podman-setup-action.test.ts
  • test/e2e/support/native-runtime-qualification.test.ts
  • test/e2e/support/pr-managed-image-workflow-boundary.test.ts
  • test/e2e/support/rebuild-hermes-bootstrap.test.ts
  • test/e2e/support/runtime-matrix.test.ts
  • test/e2e/support/runtime-provider-fixture.test.ts
  • test/e2e/support/sandbox-name-workflow-boundary.test.ts
  • test/e2e/support/security-posture.test.ts
  • test/e2e/support/standard-profile-workflow-boundary.test.ts
  • test/e2e/support/upload-e2e-artifacts-workflow-boundary.test.ts
  • test/e2e/support/workflow-plan-test-assertions.ts
  • test/e2e/support/workflow-plan.test.ts
  • test/helpers/destroy-flow-test-harness.ts
  • test/helpers/docker-state-mutation-harness.ts
  • test/helpers/growth-guardrail-checks.ts
  • test/helpers/hermes-shields-provider-consumer-harness.ts
  • test/helpers/hermes-unsafe-config-shields-harness.ts
  • test/helpers/installer-readiness-stubs.ts
  • test/helpers/managed-image-buildless-e2e.ts
  • test/helpers/mcp-bridge-adapter-deepagents-fixture.ts
  • test/helpers/rebuild-flow-generic-harness.ts
  • test/helpers/rebuild-flow-harness.ts
  • test/helpers/runtime-provider-bundle.ts
  • test/helpers/shields-flow-harness.ts
  • test/inference/managed/managed-gateway-control-deadline.test.ts
  • test/inference/managed/managed-gateway-control.test.ts
  • test/inference/managed/managed-gateway-namespace-health.test.ts
  • test/inference/managed/managed-image-protected-runtime-contract.test.ts
  • test/installer-integration/install-preflight-docker-bootstrap.test.ts
  • test/installer-integration/install-preflight.test.ts
  • test/mcp/mcp-bridge-destroy-marker-recovery.test.ts
  • test/mcp/mcp-provider-ownership.test.ts
  • test/mcp/mcp-tool-discovery-image-contract.test.ts
  • test/onboarding/config-set-prompt-error.test.ts
  • test/onboarding/config-set.test.ts
  • test/onboarding/effective-policy-contracts.test.ts
  • test/onboarding/onboard-dashboard.test.ts
  • test/onboarding/onboard-gateway-runtime.test.ts
  • test/onboarding/onboard-messaging.test.ts
  • test/onboarding/openshell-0.0.101-migration-review.test.ts
  • test/onboarding/openshell-0.0.99-migration-review.test.ts
  • test/package-contract/cli/config-set-prompt-eof.test.ts
  • test/package-contract/installer-host-preflight.test.ts
  • test/process-recovery/process-recovery-managed-controller.test.ts
  • test/process-recovery/process-recovery-primitives.test.ts
  • test/repository/layer-import-boundaries.test.ts
  • test/runtime/policy/hermes-slack-policy-reconciliation.test.ts
  • test/runtime/policy/policy-openclaw-npm-compatibility.test.ts
  • test/runtime/policy/shields-up-runtime-perms.test.ts
  • test/runtime/sandbox/repro-2681-group-writable.test.ts
  • test/security/config-set-nested-ssrf.test.ts
  • test/state/runtime-state-mutation-hermes-publisher.test.ts
  • test/state/state-dir-guard-mutable-posture.test.ts
  • test/state/state-dir-guard-verification.test.ts
  • tools/e2e/base-image-publication.mts
  • tools/e2e/check-semantic-phases.mts
  • tools/e2e/credential-free-tests.mts
  • tools/e2e/execution-coverage.mts
  • tools/e2e/gateway-runtime.mts
  • tools/e2e/hermes-gpu-startup-workflow-boundary.mts
  • tools/e2e/mcp-dev-workflow-boundary-digests.mts
  • tools/e2e/mcp-workflow-boundary.mts
  • tools/e2e/operations-workflow-boundary.mts
  • tools/e2e/standard-profile-workflow-boundary.mts
  • tools/e2e/target-catalogue.mts
  • tools/e2e/upload-e2e-artifacts-workflow-boundary.mts
  • tools/e2e/workflow-boundary-policy.mts
  • tools/e2e/workflow-boundary.mts
  • tools/e2e/workflow-plan.mts
  • tools/mcp-tool-discovery-runtime/reviewed-runtime-bundle/managed-startup-image-runtime.bundle

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@github-code-quality

github-code-quality Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall line coverage in commit bf03efe in the feat/b4-h-podman-act... branch remains at 96%, unchanged from commit 16c21af in the main branch.

TypeScript / code-coverage/cli

The overall line coverage in commit bf03efe in the feat/b4-h-podman-act... branch is 83%. The line coverage in commit 16c21af in the main branch is 84%.

Show a line coverage summary of the most impacted files.
File main 16c21af feat/b4-h-podman-act... bf03efe +/-
src/lib/onboard...al-inference.ts 90% 87% -3%
src/lib/onboard...ate-mutation.ts 81% 85% +4%
src/lib/onboard...dman-runtime.ts 0% 41% +41%
src/lib/onboard...ime-surfaces.ts 0% 57% +57%
src/lib/onboard...ul-preflight.ts 0% 66% +66%
src/lib/onboard...dbox-control.ts 0% 66% +66%
src/lib/onboard...ot-authority.ts 0% 76% +76%
src/lib/onboard...tate-volumes.ts 0% 83% +83%
src/lib/onboard.../state-roots.ts 0% 88% +88%
src/lib/onboard...tate-cleanup.ts 0% 91% +91%

Updated September 02, 2026 08:03 UTC

@ericksoa ericksoa self-assigned this Aug 21, 2026
@ericksoa
ericksoa changed the base branch from feat/b3-e-buildless-onboarding-9140 to main August 21, 2026 20:19
@copy-pr-bot

copy-pr-bot Bot commented Aug 21, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@ericksoa
ericksoa changed the base branch from main to feat/b3-e-buildless-onboarding-9140 August 21, 2026 23:25
@github-actions

Copy link
Copy Markdown
Contributor

prekshivyas and others added 16 commits August 23, 2026 12:13
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
…140' into feat/b4-h-podman-activation-9145

# Conflicts:
#	src/lib/onboard/managed-bootstrap/docker-runtime.test.ts
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Base automatically changed from feat/b3-e-buildless-onboarding-9140 to main August 23, 2026 20:57
…vation-9145

# Conflicts:
#	.github/workflows/e2e-standard-profile.yaml
#	.github/workflows/e2e.yaml
#	src/lib/onboard/docker-gpu-patch-clone.ts
#	src/lib/onboard/managed-workload/onboard-orchestration.ts
#	src/lib/onboard/sandbox-create/orchestration.ts
#	src/lib/onboard/sandbox-create/provider-publication.ts
#	src/lib/onboard/sandbox-gpu-create-flow.ts
#	test/e2e/fixtures/availability-env.ts
#	test/e2e/support/workflow-plan.test.ts
#	tools/e2e/standard-profile-workflow-boundary.mts
#	tools/e2e/workflow-boundary.mts
#	tools/e2e/workflow-plan.mts
@ericksoa
ericksoa marked this pull request as ready for review September 2, 2026 07:39
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor finished for commit bf03efe. Include the Advisor findings in the complete PR feedback collection. Verify and group valid findings before repair.

All previous runs

@ericksoa
ericksoa merged commit 5c8f991 into main Sep 2, 2026
90 of 96 checks passed
@ericksoa
ericksoa deleted the feat/b4-h-podman-activation-9145 branch September 2, 2026 08:32
rsliter added a commit that referenced this pull request Sep 2, 2026
…eview candidates (#10898)

**Summary:** Treat each pushed commit as a stable review candidate,
batch automated feedback before
repairs, and merge `main` only when the candidate actually requires it.

## Outcome

PR follow-up now treats each pushed commit as one candidate. Contributor
and maintainer agents wait
for required CI and scheduled automated reviews, batch valid repairs,
constrain base integrations,
and reject feedback-driven scope expansion before publishing another
revision.

## Reason

### Main refreshes

This is a cross-team throughput problem, not an individual contributor
habit. In the latest 150 PRs
merged by the core team from August 27 at 05:43 UTC through September 2
at 19:15 UTC, 2026:

- 89 PRs, or 59%, contained at least one explicit merge from `main`.
- Those PRs contained 514 explicit `main` refreshes.
- The average was 3.4 refreshes per PR and the median was 1.

| PR author | PRs | PRs refreshed | `main` refreshes | Average per PR |
Median per PR |
|---|---:|---:|---:|---:|---:|
| `rsliter` | 22 | 19 | 144 | 6.5 | 4 |
| `ericksoa` | 9 | 5 | 82 | 9.1 | 1 |
| `cjagwani` | 3 | 3 | 7 | 2.3 | 1 |
| `cv` | 46 | 14 | 45 | 1.0 | 0 |
| `prekshivyas` | 30 | 26 | 118 | 3.9 | 3 |
| `jyaunches` | 6 | 3 | 3 | 0.5 | 0.5 |
| `senthilr-nv` | 26 | 13 | 32 | 1.2 | 0.5 |
| `apurvvkumaria` | 8 | 6 | 83 | 10.4 | 9.5 |

The largest examples were #9923 with 57 refreshes, #10150 with 26,
#10396 with 22, #10692 with
20, and #10515, #10272, #10275, and #10436 with 19 each.

The average understates how bursty these refreshes are. Forty-six PRs
had at least one run of
consecutive `main` refresh commits. Across the sample, 85 such runs
contained 223 refresh commits.
Eleven PRs had 16 adjacent refresh pairs no more than five minutes
apart. Eighteen had 35 pairs no
more than ten minutes apart.

Examples show both the repeated integrations and the review work they
can invalidate:

- While this PR was being prepared, its skills-only candidate hit
base-owned `fast-uri` advisories
in both sandbox-image builds. Prekshi refreshed it at 20:51 UTC,
creating a 2,154-line merge
commit and restarting Advisor, CI, CodeQL, CodeRabbit, and E2E on a new
head.
- On Apurv's #10436, two consecutive refresh commits landed 10 seconds
apart. Each mapped to a
separate PR Advisor run, and the first run was cancelled when the second
head arrived.
- On #10618, four refresh commits appeared consecutively. The final two
were 2 minutes 20 seconds
apart and produced separate Advisor runs; the earlier run was cancelled
when the later one began.
- On Prekshi's #10692, two consecutive refresh commits were 3 minutes 8
seconds apart, and each
  produced a separate Advisor run.
- On Rebecca's #10150, four refresh commits appeared within 13 minutes
15 seconds. Prekshi authored
three and the automation bot authored one, showing that churn on an
author's PR is not necessarily
  initiated by that author.
- #10308 contained nine consecutive refresh commits. They were spread
across several days, but each
  still replaced the commit under review.

The analysis used complete paginated GitHub GraphQL commit histories. A
`main` refresh is a commit
with multiple parents whose headline names `main`, `origin/main`, or
`upstream/main`. This excludes
same-branch merges. It also excludes rebase-based base updates, so it
measures explicit main merges
rather than every possible base update. Commit timestamps identify
integrations, not push times. The
examples that claim a review restart were separately matched by refresh
SHA to PR Advisor workflow
runs.

### Batching feedback

The current Advisor expands each `synchronize` event into nine
independent specialists and publishes
their separate reviews. CodeRabbit reviews the incremental commit range.
Acting on the first finding
can therefore create another commit while the remaining specialists and
checks are still in flight,
producing overlapping or genuinely new feedback. Complete collection
makes it possible to deduplicate
findings, group them by root cause, and make one repair instead of
serial repair loops.

### Stable review candidates

Each pushed refresh replaces the commit under review and can retrigger
CI, CodeRabbit, and the PR
Advisor. Human review and approval evidence can become stale before that
fanout settles. A base
integration can also import new contracts, fixtures, and generated
identities into the candidate,
which gives incremental reviewers genuinely new material. Treating one
unchanged commit as the
candidate keeps every check and finding attached to the same code until
the complete evaluation is
ready for one repair decision.

## Changes

- Define a stable-candidate protocol in the shared PR follow-up
contract. It waits for each scheduled
Advisor specialist, CodeRabbit, and required CI on one unchanged latest
PR commit, then collects
  each specialist review from its job summary or artifact.
- Deduplicate findings and classify each as candidate-owned or
inherited, in-scope or new scope, and
  blocking or advisory before repairs begin.
- Permit candidate integration with the base only for a conflict, a
required merged dependency, or
  the final merge gate after other findings settle.
- Keep code-changing PRs draft until automated evaluation settles. Reuse
`headRefOid` and non-force
pushes as an optimistic publication guard instead of adding new shared
state.
- Stop implementation repairs that add runtime, lifecycle, security,
deployment, or
  supported-interface scope without a new decision.
- Carry the original objective, accepted scope, deferred scope, and
complete root-cause group into
  every routed repair.
- Fail closed on a failed Advisor specialist or missing artifact until a
NemoClaw maintainer chooses
  a full-workflow rerun or deferral.
- Preserve settled remote review evidence while inspecting local repair
and validator-created diffs,
  with `headRefOid` guarding against competing updates.
- Apply the same sequencing rules to maintainer approval and salvage
workflows.
- Add skill eval cases for refreshes during review, incomplete or failed
Advisor evidence, repair
scope, local publication guards, and premature ready-for-review
requests.

## Verification

- `bash
test/e2e/e2e-cloud-experimental/features/skill/lib/validate_repo_skills.sh`:
passed for all
  29 repository skills.
- Eval JSON parse for all three changed eval files: passed.
- Changed-file prek checks: passed Markdown, JSON, secret scanning, and
growth guardrails.
- Commit hooks: passed pre-commit and commitlint.
- `npm run validate:pr`: passed pre-commit, commitlint, and applicable
pre-push checks against
  canonical `main` at `f427b07d0e01b309983239dd97c989234b18c3c1`.
- `node --experimental-strip-types
tools/pr-review-advisor/render-specialist-matrix.mts`: confirmed
  nine current Advisor specialists.
- Complete Advisor reports were read for every repair candidate from
`4b67754e8` through
`ca2f47c5e`; valid findings were batched by root cause before each
repair.
- The final `ca2f47c5e` set had no valid finding. Eight specialists
reported none; the code-reduction
suggestion was rejected because `TEST-GAPS.md` can change a PR without
entering the merge or
  salvage procedures that retain the proposed prerequisite.
- Diff inspection: no secrets, API keys, or credentials.

## Review notes

- `npm run review:local` did not reach the diff. The local Advisor
sandbox gateway refused its
configuration connection, then cleanup reported `EACCES` on its
temporary context. This is
  environmental unavailable evidence, not a review finding.
- The generic `skill-creator` quick validator could not start because
the host Python environment
lacks PyYAML. The repository's dependency-free validator passed all
skills.
- On `e18ab4253`, both sandbox-image builds failed on advisories against
the base-owned
`fast-uri@3.1.5` lock. The refresh to `main` brought the existing
`3.1.6` remediation; no candidate
  source change was required.
- On `ca2f47c5e`, `test-e2e-sandbox` failed while planning the
base-owned `nim-service.local`
endpoint because it is private or reserved. The blueprint, rejection
code, and E2E script are
  unchanged from the PR base, so no candidate repair or rerun applies.

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


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

- **Documentation**
- Updated pull request workflows to require complete, settled specialist
review evidence before review, repair, approval, integration, or
publication.
- Clarified collection of individual review results and artifacts,
including failed or missing evidence as blocking conditions.
- Required preservation of the original objective, accepted and deferred
scope, dispositions, and root-cause context throughout repairs.
- Added safeguards against scope-expanding repairs across runtime,
lifecycle, security, deployment, and supported-interface boundaries.
- Strengthened commit verification, single-commit publication,
base-branch failure handling, and fresh validation after integration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com>
Co-authored-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com>
Co-authored-by: Prekshi Vyas <34834085+prekshivyas@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: install Install, setup, prerequisites, or uninstall flow area: onboarding Onboarding FSM, provider setup, sandbox launch, or first-run flow area: sandbox OpenShell sandbox lifecycle, runtime, config, or recovery feature PR adds or expands user-visible functionality platform: arm64 Affects ARM64 or aarch64 architecture platform: container Affects Docker, containerd, Podman, or images platform: linux Affects non-Ubuntu Linux environments security

Projects

None yet

9 participants