test(e2e): add cross-runtime execution foundation - #7988
Conversation
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com> (cherry picked from commit f99197b)
|
@coderabbitai review |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in commit 4788d28 in the TypeScript / code-coverage/cliThe overall coverage in commit 4788d28 in the Show a code coverage summary of the most impacted files.
Updated |
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
|
@coderabbitai review |
📝 WalkthroughWalkthroughThe PR adds a cross-runtime E2E foundation. It defines validated execution profiles, compiles runtime matrices into deterministic shards, provides provider-neutral fixtures, integrates resolved cases into live plans, and adds parity and evidence validation tests. ChangesCross-runtime E2E foundation
Estimated code review effort: 5 (Critical) | ~120 minutes Possibly related issues
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
✅ Action performedReview finished.
|
PR Review Advisor — No blocking findings reportedAdvisor assessment: No blocking advisor findings reported Model lanes
Nemotron output stays in workflow artifacts and does not change the assessment above. E2E guidanceAdvisory only. E2E / PR Gate selects and runs jobs independently. Recommended E2E: 1 warning · 0 suggestionsWarningsWarnings do not block.
|
✅ Action performedReview finished.
|
There was a problem hiding this comment.
Actionable comments posted: 6
🧹 Nitpick comments (2)
test/e2e/registry/runtime-matrix.ts (1)
146-218: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winConsider extracting the per-binding validation loop.
compileObligationBindingscombines many checks in one function: pattern validation, catalog lookup, provider/scenario/obligation identity matching, duplicate detection, and, after the loop, missing/unknown/capability checks. This raises the branching complexity of a single function.Extract the per-binding checks (lines 153-187) into a small helper, for example
validateObligationBinding(scenario, profile, binding, adapterCatalog, declared), called once per binding inside the loop. This keeps each function focused on one responsibility and reduces cyclomatic complexity in the main function.As per coding guidelines,
**/*.{js,ts,tsx}should "keep function complexity low."🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@test/e2e/registry/runtime-matrix.ts` around lines 146 - 218, The per-binding validation in compileObligationBindings is making the function overly complex. Extract the adapter ID, catalog, provider, scenario, obligation identity, and duplicate checks into a helper such as validateObligationBinding(scenario, profile, binding, adapterCatalog, declared), then call it for each binding while leaving the missing, unknown, capability, and compilation-order logic in compileObligationBindings.Source: Coding guidelines
test/e2e/fixtures/runtime-provider.ts (1)
98-132: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick winAdd bounded cancellation before enabling a real runtime provider.
runtimeProvideris currentlyundefined, and only the immediate fake provider exists. The contract has no deadline orAbortSignal, so a future provider can leaveprepare(), adapter execution, state inspection, observation, or cleanup pending indefinitely.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@test/e2e/fixtures/runtime-provider.ts` around lines 98 - 132, Add a bounded deadline and AbortSignal to the runtime provider contract used by the fixture, and propagate it through prepare, inspectWorkload, adapter.execute, observe, and cleanup. Update the flow around runtimeProvider and the shown lifecycle try/finally block so every provider operation is cancelled when the deadline expires, including cleanup, rather than allowing a real provider to remain pending indefinitely.Source: Path instructions
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@test/e2e/fixtures/runtime-provider.ts`:
- Around line 118-132: Update the try/finally flow around the obligation
execution and provider.state.observe calls to preserve the primary rejection
when provider.lifecycle.cleanup also fails. Capture the execution error, run
cleanup, and report both failures while ensuring the original execution error
remains the primary cause; retain cleanupReceipts assignment on successful
cleanup.
- Around line 113-125: Validate workload.logicalId against
runtimeCase.identities.sandbox immediately inside the existing try/finally,
before iterating through obligationBindings or invoking any adapter. Reject or
throw on a mismatch, and preserve cleanup using the inspected workload identity.
In `@test/e2e/registry/parity-evidence.ts`:
- Around line 173-189: Update the receipt normalization callback in the receipts
map to explicitly require receipt.kind and receipt.operationId to be strings
before applying RECEIPT_ID_PATTERN, while preserving duplicate operationId
detection. Replace the raw receipt spread in the frozen result with an
allowlisted object containing only kind, operationId, and the normalized value,
so arbitrary provider fields cannot reach persisted evidence.
- Around line 165-170: Align the provider-receipt cardinality contract across
the provider interfaces and buildExecutionEvidence flow. If at least one receipt
is required, enforce that constraint in both interfaces and add contract
coverage; otherwise allow empty arrays and remove the rejection in
normalizeProviderReceipts and its corresponding test.
In `@test/e2e/registry/scenario.ts`:
- Around line 235-237: Update defineRuntimeScenario to allowlist fields when
normalizing the journey steps, support obligations, and top-level scenario
input. Replace raw-object spreads with explicit objects containing only each
structure’s declared fields, including the existing normalized action/foundation
values. Ensure unknown properties such as provider are omitted from the returned
registry scenario.
In `@test/e2e/support/e2e-runtime-foundation-types.test.ts`:
- Around line 17-35: Update the test around foundationProfiles() to verify the
public registry remains unchanged after creating the Docker and test-MXC
profiles, proving neither provider is registered; use the existing public
registry inspection API and assert both providers are absent. If that boundary
cannot be inspected, rename the test to describe only profile shape and
capability validation.
---
Nitpick comments:
In `@test/e2e/fixtures/runtime-provider.ts`:
- Around line 98-132: Add a bounded deadline and AbortSignal to the runtime
provider contract used by the fixture, and propagate it through prepare,
inspectWorkload, adapter.execute, observe, and cleanup. Update the flow around
runtimeProvider and the shown lifecycle try/finally block so every provider
operation is cancelled when the deadline expires, including cleanup, rather than
allowing a real provider to remain pending indefinitely.
In `@test/e2e/registry/runtime-matrix.ts`:
- Around line 146-218: The per-binding validation in compileObligationBindings
is making the function overly complex. Extract the adapter ID, catalog,
provider, scenario, obligation identity, and duplicate checks into a helper such
as validateObligationBinding(scenario, profile, binding, adapterCatalog,
declared), then call it for each binding while leaving the missing, unknown,
capability, and compilation-order logic in compileObligationBindings.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 3cfc6fa4-9ac1-41a5-81b4-c4b4d958347c
📒 Files selected for processing (16)
test/e2e/docs/README.mdtest/e2e/fixtures/artifacts.tstest/e2e/fixtures/e2e-test.tstest/e2e/fixtures/runtime-provider.tstest/e2e/live/run-plan.tstest/e2e/registry/builder.tstest/e2e/registry/execution-profile.tstest/e2e/registry/parity-evidence.tstest/e2e/registry/runtime-matrix.tstest/e2e/registry/scenario.tstest/e2e/registry/types.tstest/e2e/support/cross-runtime-foundation-fixtures.tstest/e2e/support/e2e-cross-runtime-compatibility.test.tstest/e2e/support/e2e-parity-evidence.test.tstest/e2e/support/e2e-runtime-foundation-types.test.tstest/e2e/support/e2e-runtime-matrix.test.ts
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
|
Advisor PRA-1 disposition for exact head 4788d28: the inert foundation remains intentional under #7744. Adding a canonical live consumer in this slice would cross the activation boundary before all-agent qualification. The final contract now proves that Docker and fixture MXC profiles are not registered and that the public live matrix is unchanged. Later slices own live buildless and native-runtime consumers only after their all-agent, multiarch, GPU, local-inference, recovery, installer, documentation, and protected-E2E gates pass. Full validate:pr and the focused registry/foundation suites pass on this head. |
24290d1
into
feat/buildless-managed-contract-hardening
<!-- markdownlint-disable MD041 --> ## Summary Introduces the driver-neutral runtime-provider lifecycle and mutation contract used by the incremental buildless/runtime stack, and closes the destructive-cleanup authority boundary identified during exact-head review. Destroy, rebuild, and snapshot force-restore must now prove provider and workload cleanup authority through a side-effect-free provider plan before deleting or stopping anything. Production selection remains limited to the existing Docker and Kubernetes providers. This slice does not activate another runtime or expand supported lifecycle platforms. ## Related Issue Part of #7744 ## Changes - Add one versioned, immutable provider bundle registry covering plan, capability, preflight, gateway, workload, lifecycle, mutation-authority, bootstrap, snapshot, recovery, cleanup, and container-engine surfaces. - Route sandbox registration, start, provider-owned post-start verification, stop, inference-set authority, live destroy preparation/deletion, and owned-workload cleanup through the selected bundle. - Add `planOwnedWorkloadCleanup` to the cleanup contract and require every supported provider to prove cleanup intent without side effects before a destructive action. - Apply one complete authority check before destructive side effects in normal destroy, rebuild, and snapshot force-restore. - Recheck rebuild authority at the exact delete edge after MCP preparation; on failure, restore MCP attachment, relock shields, retain ownership state, and skip deletion. - Keep actual cleanup independently fail closed, preserving a residual post-delete guard for raw-writer or TOCTOU changes outside NemoClaw's lifecycle lock. - Preserve shared managed images and rows with no owned image without turning a missing or legacy receipt into a deletion candidate. - Replace nonexistent "repair the receipt" guidance with the real `nemoclaw <sandbox> doctor --json` diagnostic path. Operators must restore trusted ownership metadata or resolve the runtime conflict and must not rewrite a receipt to match a mutable sandbox name. - Make the Kubernetes compatibility boundary explicit: the shipped Kubernetes gateway path's legacy per-sandbox image remains owned by the host Docker engine until a separately registered CRI-native provider exists. - Preserve the existing Kubernetes lifecycle gate. Its bundle remains `lifecycle.supported: false`, and this PR does not claim Kubernetes lifecycle activation. - Add a socket-free MXC-style contract provider and exercise OpenClaw, Hermes, and LangChain Deep Agents Code without Podman- or MXC-specific central switches. - Fail closed for unknown provider identities, unsupported mutation surfaces, malformed ownership receipts, and unresolved cleanup authority. Direct connect, status, logs, authenticated reconciliation, and durable crash recovery remain owned by later slices. No future provider is production-selectable or advertised by this PR. ## Type of Change - [x] Code change (feature, bug fix, or refactor) - [ ] Code change with doc updates - [ ] Doc only (prose changes, no code sample modifications) - [ ] Doc only (includes code sample changes) ## Quality Gates - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [ ] Docs updated for user-facing behavior changes - [x] Docs not applicable — justification: The provider contract remains inert for future providers, production selection is unchanged, and no supported CLI/runtime behavior is advertised or activated. - [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: Exact-head review covers registry identity binding, provider-owned lifecycle verification, mutation authority, all-agent MXC-style action proof, pre-delete and exact-edge cleanup authority, rollback, and source architecture. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Documentation Writer Review - [x] Documentation writer subagent reviewed the completed changes - Result: `no-docs-needed` - Evidence: The exact 45-file diff (`+4,073/-508`) tightens an inert internal provider and destructive-authority contract and replaces misleading failure text with an existing diagnostic command. It does not activate or advertise a new provider, platform, or runtime. - Agent: Codex Desktop <!-- docs-review-head-sha: 75730cf --> <!-- docs-review-agents-blob-sha: c669f7c --> ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: - Station profile/scenario: - Result: - Supporting evidence: ## Verification - Exact locally validated head/base: `75730cf09bf1a1aa901cc3b275052250f8e7d85d` / `4788d287b8672be1b44999e78e094b2221303bd1` - Review budget: 45 files, `+4,073/-508`; five files above the soft file guide to apply and prove one complete cross-cutting destructive-authority boundary, while remaining within the 2–5k line guide. - Stable exact-slice patch ID: `eef1fddf8138d6e8a3ef4efb443aa2adc9f74fe3`. - [x] PR description includes a `Signed-off-by:` line and every new commit contains an SSH signature and DCO trailer. - [x] `npm run validate:pr` passed on the exact clean head. - [x] 320 focused changed-surface provider, lifecycle, snapshot, and image-cleanup tests passed on the exact head; CLI typecheck, repository architecture, source-shape and test-size budgets, Biome, secret scanning, and `git diff --check` passed. - [x] Unknown-provider and mismatched-receipt tests prove snapshot force-restore performs no NIM stop, OpenShell delete, provider deletion, shields cleanup, replacement creation, or registry registration. - [x] Rebuild tests prove authority is checked before MCP preparation and again at the exact delete edge; a changed receipt restores MCP attachment, relocks shields, and performs no sandbox delete. - [x] Cleanup-contract tests prove planning is side-effect free, registration rejects providers without it, and actual cleanup revalidates authority before mutation. - [x] Error-path tests prove ownership state is retained, the command exits nonzero, `doctor --json` is named, unsafe receipt rewriting is rejected, and no false success is emitted. - [x] Kubernetes cleanup and lifecycle findings are dispositioned against the shipped compatibility contract: legacy images remain host-Docker-owned, while Kubernetes lifecycle remains explicitly unsupported and fail closed. - [x] CodeRabbit's inline findings, including inert planner-state and boolean-removal fixtures, are resolved; exact-head incremental review is active. - [ ] Applicable broad gate passed — exact-head required CI, advisors, CodeRabbit, multiarch, and protected E2E are the broad remote gates. ## Stack - Base: PR3.5c #7988 branch `feat/buildless-runtime-e2e-foundation` at `4788d287b8672be1b44999e78e094b2221303bd1`. - This slice: PR3.6 branch `feat/runtime-provider-lifecycle-parity` at `75730cf09bf1a1aa901cc3b275052250f8e7d85d`. - Later slices own snapshot/clone/rebuild/restore parity, transactional bootstrap, authenticated reconciliation, durable recovery, and final all-agent multiarch activation. - Buildless support remains disabled until every supported agent and required qualification gate passes. Signed-off-by: Aaron Erickson <aerickson@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added provider-neutral runtime support for Docker and Kubernetes environments. * Sandbox start, stop, recovery, diagnostics, inference updates, snapshots, and rebuilds now use the selected runtime provider. * Added workload ownership records to improve managed-image tracking and portability. * **Bug Fixes** * Destructive cleanup now fails safely when ownership or runtime authority cannot be verified. * Added recovery guidance while preserving registry and session state after blocked cleanup. * Improved diagnostics for unsupported or unregistered runtime providers. * **Tests** * Expanded coverage for lifecycle operations, cleanup safeguards, workload validation, and provider portability. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Summary Adds the inert, provider-neutral managed-workload rebuild transaction for the incremental buildless stack. The exact old workload and registry row remain authoritative through replacement preparation, readiness, state restore, and provider rebind. Only one exact compare-and-swap publishes the replacement, and old-runtime retirement happens afterward through provider-owned opaque handles. This slice does not wire a production rebuild caller or activate buildless onboarding. Snapshot/backup and durable recovery ownership remain tracked in #7744 and are required before activation. ## Related Issue Part of #7744 ## Changes - Capture a deep-frozen rebuild plan bound to the exact provider, shipped agent, platform, prior managed receipt, full durable-row revision, lifecycle generation, and live identity fingerprint. - Pre-render and validate the exact replacement image, startup profile, receipt, and safe metadata before provider mutation. - Define provider-neutral prepare, create, readiness, restore, provider-rebind, rollback, abort-preparation, and retire-previous phases using opaque exact handles rather than sandbox-name deletion. - Keep partial prepare/create cleanup transaction-idempotent and run abort cleanup even when post-prepare registry revalidation throws. - Publish only through exact old-authority CAS; reconcile ambiguous persistence against either the exact replacement or exact old row. - Preserve the staged replacement and return an immutable recovery task when publication is indeterminate, avoiding rollback of a replacement that may already be durable. - Retire the exact old runtime only after publication; return a durable-owner recovery task if retirement remains pending. - Bind replacement contracts and startup profiles to OpenClaw, Hermes, or DCode authority and reject provider, agent, platform, receipt, generation, or identity drift. - Reject malformed provider artifacts at every transition, stop before later phases, and prove exact transaction abort or exact staged-handle rollback. - Document the shared backup boundary and the durable recovery ownership tracked in #7744 before activation. ## Type of Change - [x] 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 - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [ ] Docs updated for user-facing behavior changes - [x] Docs not applicable — justification: The transaction is inert with no production caller or support claim; the internal README records ownership boundaries for later slices. - [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: Exact-head audit covers immutable authority, pre-mutation validation, CAS ambiguity, abort cleanup, exact-handle rollback, and deferred recovery ownership. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Documentation Writer Review - [x] Documentation writer subagent reviewed the completed changes - Result: `docs-updated` - Evidence: The reviewed 23-file, `+4,272/-0` slice remains byte-identical after the append-only current-main refresh to `0de2789608a86e580d787991e81c03c5f0b14dbf` through `e97ecce48c7fcc1dfb398e1cfae8c81a859b7dcd`; stable patch ID remains `dd1c4a899fd9a62954a00d4e2e61da445a306e03`. The only documentation path is `src/lib/onboard/managed-workload/rebuild/README.md`. It accurately states that the transaction is dormant, has no CLI command or production-action importer, and does not activate buildless rebuilds. It assigns ambiguous publication and pending retirement to durable recovery, links recovery and snapshot/backup ownership to the live accepted epic #7744, and requires normalized backup manifests, restore validation, durable reconciliation, and protected qualification for OpenClaw, Hermes, and LangChain Deep Agents Code before activation. Production-import and command/action diff scans found no activation caller. Markdownlint passed with zero issues on the exact refreshed head. The append-only parent refresh to `362a70cda` preserves the exact reviewed slice diff and changes no reviewed documentation. - Agent: Codex Desktop <!-- docs-review-head-sha: 362a70c --> <!-- docs-review-agents-blob-sha: 3dd7c24 --> ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: - Station profile/scenario: - Result: - Supporting evidence: ## Verification - Exact locally validated head/base: `e97ecce48c7fcc1dfb398e1cfae8c81a859b7dcd` / `0de2789608a86e580d787991e81c03c5f0b14dbf` - Review budget: 23 files, `+4,272/-0`. - Stable exact-slice patch ID: `dd1c4a899fd9a62954a00d4e2e61da445a306e03`. - [x] The six implementation/review commits and both maintainer refresh commits are SSH-signed and contain DCO trailers; GitHub-generated conflict-resolution merge commits preserve append-only branch history. - [x] `npm run validate:pr` passed on the exact clean head with Node 22.16.0. - [x] 132 focused rebuild transaction, workload authority, registry CAS, and source-boundary tests passed again on the exact refreshed head; CLI typecheck and repository checks also passed; changed test files add zero `if` statements. - [x] `npm run build:cli`, CLI typecheck through `validate:pr`, exact-base pre-commit, commitlint, and pre-push gates passed. - [x] Failure tests prove prepare/create ambiguity aborts exact transaction resources, staged failures roll back only exact staging authority, and indeterminate CAS never rolls back. - [x] Agent-binding tests reject cross-agent image/profile drift for all shipped managed-image agents. - [x] No snapshot manifest dependency, production rebuild callsite, runtime selection change, or public activation exists in this slice. - [ ] Applicable broad gate passed — exact-head required CI, advisors, CodeRabbit, multiarch, and protected E2E are the broad remote gates. ## Stack - Base: live `main` at `0de2789608a86e580d787991e81c03c5f0b14dbf`; PR3.1 through PR3.6 content is already landed, with #7976, #7988, and #7990 carried once through the final #7973 aggregate tree. - This slice: PR3.7 branch `feat/managed-workload-rebuild-parity` at `e97ecce48c7fcc1dfb398e1cfae8c81a859b7dcd`. - Epic #7744 tracks shared snapshot, backup, restore, and durable recovery ownership before activation. - Buildless support remains disabled until OpenClaw, Hermes, and DCode plus required multiarch and protected qualification pass together. Signed-off-by: Aaron Erickson <aerickson@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added managed workload rebuild workflows with staged replacement, validation, rollback, recovery, and atomic commit handling. * Added authority validation for managed workloads, including receipt, image, platform, and startup configuration checks. * Added safe cloning and deep-freezing for supported immutable data. * Added safeguards against stale, conflicting, or incomplete workload state during rebuilds. * **Documentation** * Documented rebuild recovery behavior and activation requirements. * **Tests** * Added comprehensive coverage for rebuild transactions, authority validation, rollback, persistence reconciliation, and immutable data handling. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Aaron Erickson <aerickson@nvidia.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Summary
Adds the inert, runtime-parameterized E2E contract needed to qualify buildless and future native runtimes without introducing Podman switches into central orchestration. The catalog compiles Docker and a fixture-only MXC-style provider through the same open provider identity, scenario, obligation, execution, and parity-evidence contracts. It keeps OpenClaw, Hermes, and DCode together and models amd64/arm64 plus CPU/GPU execution dimensions. Local-inference, recovery, installer, user-facing documentation, and protected-E2E qualification remain deferred; this slice does not activate or advertise runtime support.
Related Issue
Part of #7744
Changes
Type of Change
Quality Gates
test/e2e/docs/README.mddocuments the contributor-facing E2E contract.Documentation Writer Review
docs-updatedtest/e2e/docs/README.mdaccurately documents the inert cross-runtime foundation, provider-neutral contracts, public non-registration boundary, and deferred activation. No additional user-facing documentation is required.DGX Station Hardware Evidence
Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run validate:prpassed after refreshingorigin/mainwhen hooks were skipped or unavailabletypecheck,typecheck:cli, source-shape policy, test-size policy,git diff --check, and fullnpm run validate:prpassed on4788d287b.npm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes — command/result: Exact-head required CI, advisors, CodeRabbit, multiarch, and protected E2E are running for4788d287b8672be1b44999e78e094b2221303bd1.npm run docsbuilds without warnings (doc changes only)Stack
feat/buildless-coderabbit-debtat771f48c47c0aaa1d51511d172fffc691e6c9ac76.feat/buildless-runtime-e2e-foundationat4788d287b8672be1b44999e78e094b2221303bd1.Signed-off-by: Aaron Erickson aerickson@nvidia.com
Summary by CodeRabbit
Release Notes
Documentation
New Features
Tests