test(e2e): consolidate priority 2 live seams - #7665
Conversation
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
|
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. |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThe PR consolidates E2E coverage by removing hosted inference variants, narrowing Bedrock coverage, restoring standalone rebuild jobs with retirement detection, routing retired selectors through replacement tests, and replacing ChangesE2E consolidation and compatibility routing
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant PRGate
participant WorkflowPlan
participant E2EWorkflow
participant CompatibilityController
participant ReplacementTests
PRGate->>WorkflowPlan: submit JOBS and TARGETS
WorkflowPlan->>CompatibilityController: identify retired selectors
CompatibilityController->>ReplacementTests: run replacement Vitest projects
WorkflowPlan->>E2EWorkflow: emit filtered or empty matrix
E2EWorkflow->>CompatibilityController: execute compatibility workflow
Possibly related issues
Possibly related PRs
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 |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in commit 608a31f in the TypeScript / code-coverage/cliThe overall coverage in commit 608a31f in the Show a code coverage summary of the most impacted files.
Updated |
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.
|
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
There was a problem hiding this comment.
🧹 Nitpick comments (1)
test/e2e/support/retired-selector-compatibility-workflow-boundary.test.ts (1)
43-49: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueOptional: derive the removed gate fragment from the exported allowlist.
The hard-coded
inputs.targetsfragment mirrors the generator intools/e2e/workflow-boundary.mts(Line 4095-4097). Building it fromRETIRED_CONTROLLER_TARGET_SELECTOR_IDSkeeps the mutation valid if the allowlist is reordered or extended.🤖 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/support/retired-selector-compatibility-workflow-boundary.test.ts` around lines 43 - 49, Optionally update the mutate callback for the retired-selector compatibility workflow to derive the removed selector gate from the exported RETIRED_CONTROLLER_TARGET_SELECTOR_IDS allowlist instead of hard-coding the upgrade-stale-sandbox fragment. Preserve the existing job.if mutation while generating the matching targets expression from the allowlist so reordered or newly added IDs remain synchronized.
🤖 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.
Nitpick comments:
In `@test/e2e/support/retired-selector-compatibility-workflow-boundary.test.ts`:
- Around line 43-49: Optionally update the mutate callback for the
retired-selector compatibility workflow to derive the removed selector gate from
the exported RETIRED_CONTROLLER_TARGET_SELECTOR_IDS allowlist instead of
hard-coding the upgrade-stale-sandbox fragment. Preserve the existing job.if
mutation while generating the matching targets expression from the allowlist so
reordered or newly added IDs remain synchronized.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 5ebae834-f002-402a-82e6-7beadb85ded9
📒 Files selected for processing (27)
.github/workflows/e2e.yamltest/e2e-recommendations.test.tstest/e2e/README.mdtest/e2e/live/sandbox-rebuild.test.tstest/e2e/live/upgrade-stale-sandbox-helpers.tstest/e2e/live/upgrade-stale-sandbox.test.tstest/e2e/mock-parity.jsontest/e2e/support/e2e-workflow.test.tstest/e2e/support/inference-switch-workflow-boundary.test.tstest/e2e/support/retired-selector-compatibility-workflow-boundary.test.tstest/e2e/support/retired-selector-compatibility.test.tstest/e2e/support/runner-comparison-workflow-boundary.test.tstest/e2e/support/trusted-hermes-swap-workflow-boundary.test.tstest/e2e/support/workflow-plan.test.tstest/pr-e2e-gate-shards.test.tstest/pr-e2e-gate-signal-shards.test.tstest/pr-e2e-gate.test.tstest/pr-review-advisor-security-boundaries.test.tstest/pr-review-advisor.test.tstest/pr-risk-plan.test.tstools/advisors/risk-plan.mtstools/e2e/inference-switch-workflow-boundary.mtstools/e2e/retired-selector-compatibility.mtstools/e2e/runner-comparison-workflow-boundary.mtstools/e2e/trusted-hermes-swap-workflow-boundary.mtstools/e2e/workflow-boundary.mtstools/e2e/workflow-plan.mts
💤 Files with no reviewable changes (6)
- test/e2e/live/upgrade-stale-sandbox.test.ts
- test/e2e/live/sandbox-rebuild.test.ts
- tools/e2e/trusted-hermes-swap-workflow-boundary.mts
- test/e2e/mock-parity.json
- test/e2e/support/trusted-hermes-swap-workflow-boundary.test.ts
- test/e2e/live/upgrade-stale-sandbox-helpers.ts
senthilr-nv
left a comment
There was a problem hiding this comment.
Reviewed at PR SHA a176245 (base 0b722a4).
PR findings: no blocking code defect found. The retired selector bridge remains bound to the controller-selected SHA, validates selector syntax, checks out the candidate without persisted credentials, runs the declared replacement suites, and emits exact-head risk signals. The retained rebuild-openclaw live test preserves the old-image rebuild, state, policy, token-rotation, and backup credential-leak boundaries. No new dependency or secret exposure was introduced.
Product-scope verdict: not triggered. This PR changes internal E2E topology and does not create or expand a supported product surface.
Design status, separate from product scope: approval is withheld because linked issue #7615 still carries needs: design. Its canonical-seam comment calls the design proposed and asks maintainers to confirm it. Repository policy defines needs:* as a blocked action. A maintainer must record acceptance of the proposed seam ownership (or the required revision) and remove needs: design when that action is complete. No PR code change is requested for this point.
GitHub merge state, separate from both verdicts: GitHub reports BLOCKED while E2E / PR Gate and E2E / PR Gate Coordination remain IN_PROGRESS. The author must get both checks to a terminal passing result, or record an itemized maintainer exception in the PR template if repository policy permits a non-success result.
Exact-head focused validation:
- 146 changed E2E-support tests passed.
- 62 CLI replacement tests passed.
- 11 affected upgrade-sandboxes integration tests passed; the other focused integration suites also passed.
- CLI type-checking passed.
- Semantic E2E phase coverage passed: 112 tests across 71 files.
- Vitest membership is exact: 1,862 files across 8 projects.
- Repository checks passed.
- DCO passed, and all four commits are GitHub Verified.
- Independent documentation-writer review found no blocking documentation or writing issue; no user-facing docs change is required.
The automated PRA-1 compatibility-lifetime warning is advisory. The current trusted-main controller is the named consumer; the removal boundary can be recorded with the design decision.
senthilr-nv
left a comment
There was a problem hiding this comment.
Approved at PR SHA a176245dc.
Maintainer design acceptance is recorded on #7615, and the needs: design action is resolved. Product scope is not triggered: this PR changes internal E2E test topology and does not create or expand a supported product surface.
No blocking code, security, documentation, or cross-issue findings remain. Exact-head focused checks passed locally, the DCO check passes, and all commits are GitHub Verified.
GitHub's BLOCKED merge state is separate from this approval. The author must resolve E2E / PR Gate and E2E / PR Gate Coordination, or record an itemized maintainer exception if repository policy permits it.
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.github/workflows/e2e.yaml (1)
2060-2090: 🔒 Security & Privacy | 🔴 Critical | 🏗️ Heavy liftDo not expose repository secrets to the candidate checkout.
This job can check out PR-controlled code and execute it with
NVIDIA_INFERENCE_API_KEYin the environment. A malicious PR can modify the helper/test and exfiltrate the key. Restrict this lane to trusted main revisions and route PR coverage through a secret-free replacement or trusted pinned helper.As per path instructions, trusted workflows must not execute PR-controlled code while holding base-repository secrets or write permissions.
🤖 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 @.github/workflows/e2e.yaml around lines 2060 - 2090, Restrict the dashboard-remote-bind job’s secret-bearing execution to trusted main-repository revisions instead of PR-controlled checkouts. Update the job around “Run dashboard remote-bind live test” so NVIDIA_INFERENCE_API_KEY is not exposed when checkout uses inputs.checkout_repository or inputs.checkout_sha, and route PR coverage through an existing secret-free path or trusted pinned helper while preserving trusted main execution.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.
Outside diff comments:
In @.github/workflows/e2e.yaml:
- Around line 2060-2090: Restrict the dashboard-remote-bind job’s secret-bearing
execution to trusted main-repository revisions instead of PR-controlled
checkouts. Update the job around “Run dashboard remote-bind live test” so
NVIDIA_INFERENCE_API_KEY is not exposed when checkout uses
inputs.checkout_repository or inputs.checkout_sha, and route PR coverage through
an existing secret-free path or trusted pinned helper while preserving trusted
main execution.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 32795fad-d9a5-4584-bcdf-4d4c6b878a38
📒 Files selected for processing (1)
.github/workflows/e2e.yaml
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
senthilr-nv
left a comment
There was a problem hiding this comment.
Approved at PR SHA d2b7c8f.
PR verdict: no blocking code, security, documentation, or cross-issue finding. The merge commit has parents a176245dc and 1ce71fa0f. Its conflict resolution keeps sandbox-rebuild and upgrade-stale-sandbox retired, preserves their controller-selector compatibility path, and retains rebuild-openclaw as the upgrade/rebuild risk target. Product scope remains not triggered; this PR changes internal E2E topology and does not create or expand a supported product surface. The accepted design decision remains recorded in #7615.
Exact-head focused checks passed:
- CLI build and type-checking.
- 147 focused E2E-support tests.
- 184 focused integration tests.
- Semantic E2E phase coverage: 114 tests across 71 files.
- Exact Vitest membership: 1,931 files across 7 projects.
- Diff and conflict-marker checks.
- Independent documentation writer review; the receipt matches
d2b7c8f73and AGENTS blobc052d60aa. - DCO and GitHub verification for the new merge commit.
The CodeRabbit dashboard-remote-bind secret finding is outside this PR's effective diff. Those lines are identical in base 1ce71fa0f and head d2b7c8f, with history at 3aea38c4cb; #7665 neither introduces nor modifies that job. Track that base-branch security concern separately.
GitHub merge state, separate from this PR approval: BLOCKED.
E2E / PR GateandE2E / PR Gate Coordinationfailed because the trusted base workflow selectedsandbox-rebuildandupgrade-stale-sandbox, checked outd2b7c8f, and then found neither retired test file. The author must revise the transition so the required checks pass, or obtain and record an itemized maintainer exception in the PR Quality Gates section for both non-success results.PR review advisor (Nemotron 3 Ultra)failed before analysis because inference configuration did not complete. The author must rerun or otherwise resolve that check.
This approval does not waive those GitHub blockers.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/lib/actions/upgrade-sandboxes-recovery.test.ts`:
- Around line 345-365: Remove the direct commitRebuildRoutePreflight call from
the harness.rebuildSpy mock. Update the test to verify that upgradeSandboxes
forwards the expected rebuild arguments through the production rebuild wiring,
using an injectable state boundary; cover preflight/migration behavior
separately rather than executing it inside the test double.
🪄 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: 19d473f1-d8f9-4419-bc26-ad5ca07c114a
📒 Files selected for processing (3)
src/lib/actions/upgrade-sandboxes-recovery.test.tstest/e2e/support/retired-selector-compatibility.test.tstools/e2e/retired-selector-compatibility.mts
senthilr-nv
left a comment
There was a problem hiding this comment.
Re-reviewed and approved at exact PR SHA 62bdeb9de53801be59bc89943d20f266704e950a.
This record supersedes the preceding approval text, which raced with the latest push and named d2b7c8f even though GitHub attached that review event to 62bdeb9.
No blocking PR finding remains. The latest commit adds behavior-oriented coverage for two stale sandboxes that share a route, verifies canonical credential-identity migration across the batch, and includes that suite in the upgrade-stale-sandbox retired-selector replacement. It does not change production behavior or product scope.
Latest-delta checks passed:
src/lib/actions/upgrade-sandboxes-recovery.test.ts: 38 CLI tests.test/e2e/support/retired-selector-compatibility.test.ts: 5 E2E-support tests.- CLI type-checking.
- Diff validation.
- Independent documentation writer review; the receipt matches
62bdeb9de5and AGENTS blobc052d60aa. - DCO and GitHub commit verification.
Product-scope verdict: not triggered. The accepted internal E2E seam design remains recorded in #7615.
GitHub merge state remains separate from this approval. The author must obtain passing required checks or record an itemized maintainer exception for each permitted non-success result. This approval does not waive any GitHub check.
Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/lib/actions/upgrade-sandboxes-recovery.test.ts`:
- Around line 318-325: Add an exact call-count assertion for harness.rebuildSpy
in the test covering the --auto recovery flow, requiring exactly two rebuilds in
addition to the existing toHaveBeenNthCalledWith checks. Keep the assertions at
the public behavioral boundary and preserve the existing argument validation.
🪄 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: 50c1a6fc-8d47-428b-a5e7-1b67a54b0526
📒 Files selected for processing (4)
src/lib/actions/sandbox/rebuild-route-preflight.test.tssrc/lib/actions/upgrade-sandboxes-recovery.test.tstest/e2e/support/retired-selector-compatibility.test.tstools/e2e/retired-selector-compatibility.mts
# Conflicts: # .github/workflows/e2e.yaml # test/e2e/live/upgrade-stale-sandbox-helpers.ts # test/e2e/live/upgrade-stale-sandbox.test.ts # test/e2e/support/workflow-plan.test.ts # tools/e2e/workflow-boundary.mts
# Conflicts: # .github/workflows/e2e.yaml # test/e2e/README.md # test/e2e/support/retired-selector-compatibility-workflow-boundary.test.ts # test/e2e/support/workflow-plan.test.ts # tools/e2e/inference-switch-workflow-boundary.mts # tools/e2e/workflow-boundary.mts # tools/e2e/workflow-plan.mts
<!-- markdownlint-disable MD041 --> ## Summary Reduce retained E2E cost without changing the workflow schedule or lane structure, and finalize the rebuild-selector retirement staged by #7665. This PR deletes the `sandbox-rebuild` and `upgrade-stale-sandbox` live jobs and tests after the compatibility controller and focused replacement coverage land in #7665. This PR builds on #7665, merged as `818a62f2b`. The trusted E2E workflow keeps its existing daily `0 0 * * *` schedule and its single five-row `openshell-gateway-upgrade` job unchanged. ## Related Issue Fixes #7615 Fixes #7917 Fixes #7921 ## Changes - Delete the `sandbox-rebuild` and `upgrade-stale-sandbox` workflow jobs, live tests, helper, mock-parity entries, and job-specific workflow validators. Keep their job and target selectors routed through the compatibility controller to focused rebuild, route-preflight, batch-upgrade, and integration replacements. `rebuild-openclaw` remains the canonical live rebuild and upgrade target. - Stop `openclaw-plugin-runtime-exdev` after the v2 recreate and cross-device probe instead of repeating the same state-replacement boundary with a v3 rebuild. The lifecycle command helper lets the `e2e-support` test protect the retained onboard, restart, and recreate sequence without a live runner; `openclaw-plugin-runtime-exdev-fixture.test.ts` verifies that command map on the current source-aware fixture boundary. - Map workflow-wired live tests and their owning helpers to canonical focused jobs, leave `test/e2e/support/` changes in PR CI, and preserve the broad cloud floor for unknown, renamed, security, workflow, or shared-tool paths. The risk-plan and workflow-inventory tests cover additions, renames, support-only changes, owning helpers, and cross-cutting changes. - Let trusted controller selections containing only retired job IDs emit an empty live plan so the compatibility job can verify their replacements; per-selector tests protect both retired job paths. - Reject step-scoped `NEMOCLAW_E2E_USE_HOSTED_INFERENCE` overrides in the inference-switch workflow boundary, with focused regression coverage. - Preserve the existing daily workflow schedule and the existing single `openshell-gateway-upgrade` lane with all five migration rows. - Document retired-selector compatibility, the retained EXDEV lifecycle, and changed-area selection in `test/e2e/README.md`. ## 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 - [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: No supported product behavior changes. The internal E2E README documents the retired selectors and retained topology. - [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: A maintainer approved the stacked E2E optimization and #7665 transition. The current merge preserves the reviewed compatibility boundaries, and their focused security/workflow tests pass. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: No waiver requested. ## Documentation Writer Review - [x] Documentation writer subagent reviewed the completed changes - Result: `docs-updated` - Evidence: `test/e2e/README.md`; the review verified retired-selector compatibility, `rebuild-openclaw` as the canonical target, the retained EXDEV lifecycle, focused PR-gate selection, and explanatory text across the full diff. No user-facing Fern or AI-route documentation is required. - Agent: Codex Desktop <!-- docs-review-head-sha: c579d39 --> <!-- docs-review-agents-blob-sha: c052d60 --> ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: Not applicable. - Station profile/scenario: Not applicable. - Result: Not applicable. - Supporting evidence: Not applicable. ## Verification - [x] PR description includes a `Signed-off-by:` line and every commit appears as `Verified` in GitHub - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or `npm run validate:pr` passed after refreshing `origin/main` when hooks were skipped or unavailable - [x] Targeted behavior tests pass for the current change set, or tests are marked not applicable above — command/result or justification: The post-#7665 resolved state passed 59 focused CLI tests, 99 focused E2E-support tests, and 9 mock-parity integration tests. The inherited Launchable integration passed 5/5 with a 30-second local macOS timeout. Semantic E2E phase coverage found 114 tests across 71 files, exact Vitest membership found 1,938 files across seven projects, repository checks passed, and merge hooks passed. - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — command/result: Earlier full E2E-support diagnostics on the stacked changes passed more than 1,800 tests, with known macOS timing/systemd fixture failures under high parallelism. The directly affected combined subset passes 92/92. - [x] Quality Gates section completed with required justifications or waivers - [x] No secrets, API keys, or credentials committed - [ ] `npm run docs` builds without warnings (doc changes only) - [ ] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [ ] New doc pages include SPDX header and frontmatter (new pages only) --- Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added/updated current OpenClaw plugin runtime lifecycle coverage in E2E (onboarding, restart, and sandbox recreation). * Expanded retired-selector compatibility to support target-based selection and broader replacement coverage. * **Bug Fixes** * Updated deterministic risk-plan and PR E2E recommendations to use `rebuild-openclaw` as the coverage floor. * Tightened “canonical” Anthropic-compatible inference/mode validation and reduced hosted coverage. * **Refactor** * Removed obsolete E2E live lanes/tests for sandbox rebuild and stale-sandbox upgrade. * **Documentation** * Refreshed E2E operational docs for retired selector compatibility and updated runner routing/telemetry expectations. * **Tests** * Updated and added E2E and workflow boundary tests to match revised gates and expected job/shard mappings. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com> Signed-off-by: Apurv Kumaria <akumaria@nvidia.com> Co-authored-by: Apurv Kumaria <akumaria@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Summary Adds the canonical July 30 release entry for `v0.0.99` before the release tag is captured. The entry covers all 37 merged PRs since `v0.0.98` and bounds experimental or dormant work without presenting it as supported behavior. ## Changes - Adds `docs/changelog/2026-07-30.mdx` with the exact `## v0.0.99` heading, parser-safe MDX SPDX comment, summary, detailed release bullets, and published documentation routes. - Records user-visible recovery, snapshot, shared-route, Hermes, readiness, inference, image, documentation, and release E2E changes. - States that the managed-image selection and startup-profile contracts remain dormant and do not activate buildless onboarding. Source summary: - [#7972](#7972) -> `docs/changelog/2026-07-30.mdx`: Records restored managed OpenClaw configuration modes during recovery. - [#7834](#7834) -> `docs/changelog/2026-07-30.mdx`: Records clone-bound pairing verification after snapshot restore. - [#7975](#7975) -> `docs/changelog/2026-07-30.mdx`: Records managed startup recovery coverage. - [#7960](#7960) -> `docs/changelog/2026-07-30.mdx`: Records dormant startup-profile coordination without activating a supported surface. - [#7856](#7856) -> `docs/changelog/2026-07-30.mdx`: Records persistence of the credential-free OpenClaw startup command. - [#7959](#7959) -> `docs/changelog/2026-07-30.mdx`: Records dormant startup-profile construction without changing onboarding. - [#7946](#7946) -> `docs/changelog/2026-07-30.mdx`: Records the internal startup-profile schema and transport contract. - [#7951](#7951) -> `docs/changelog/2026-07-30.mdx`: Records platform-pull cleanup before managed-image validation. - [#7949](#7949) -> `docs/changelog/2026-07-30.mdx`: Records rejection of retained Hermes `uv` build cache metadata. - [#7597](#7597) -> `docs/changelog/2026-07-30.mdx`: Records separate command and agent first-turn latency evidence. - [#7931](#7931) -> `docs/changelog/2026-07-30.mdx`: Records focused E2E replacement evidence for retired selectors. - [#7950](#7950) -> `docs/changelog/2026-07-30.mdx`: Records exclusion of build-only BuildKit telemetry from the Deep Agents Code probe. - [#7665](#7665) -> `docs/changelog/2026-07-30.mdx`: Records consolidated priority 2 E2E coverage. - [#7911](#7911) -> `docs/changelog/2026-07-30.mdx`: Records the corrected NVIDIA DORI installation pin. - [#7934](#7934) -> `docs/changelog/2026-07-30.mdx`: Records the staging image-family wait before Brev Launchable deployment. - [#7772](#7772) -> `docs/changelog/2026-07-30.mdx`: Records dormant managed-image selection contracts without activating buildless onboarding. - [#7941](#7941) -> `docs/changelog/2026-07-30.mdx`: Records corrected agent-specific provider and policy guidance. - [#7819](#7819) -> `docs/changelog/2026-07-30.mdx`: Records removal of empty Deep Agents Code provider-switch sections. - [#7932](#7932) -> `docs/changelog/2026-07-30.mdx`: Records independent credential-generation E2E execution. - [#7840](#7840) -> `docs/changelog/2026-07-30.mdx`: Records shared-route preservation and pre-delete peer validation during upgrades. - [#7874](#7874) -> `docs/changelog/2026-07-30.mdx`: Records the split between pre-tag release entries and post-tag Announcements. - [#7876](#7876) -> `docs/changelog/2026-07-30.mdx`: Records the writable Hermes runtime root within lockdown. - [#7756](#7756) -> `docs/changelog/2026-07-30.mdx`: Records validated multi-platform managed-image publication. - [#7914](#7914) -> `docs/changelog/2026-07-30.mdx`: Records accepted `uv` version metadata in Hermes image validation. - [#7686](#7686) -> `docs/changelog/2026-07-30.mdx`: Records the explicitly experimental Microsoft Entra runtime identity reference. - [#7869](#7869) -> `docs/changelog/2026-07-30.mdx`: Records classified gateway relaunch quarantine and rebuild guidance. - [#7814](#7814) -> `docs/changelog/2026-07-30.mdx`: Records state restore into replacement sandboxes and SQLite write verification. - [#7839](#7839) -> `docs/changelog/2026-07-30.mdx`: Records quieter onboarding test execution without a user-facing behavior claim. - [#7854](#7854) -> `docs/changelog/2026-07-30.mdx`: Records generalized agent-selection guidance. - [#7845](#7845) -> `docs/changelog/2026-07-30.mdx`: Records isolated CDI test evidence without a user-facing behavior claim. - [#7843](#7843) -> `docs/changelog/2026-07-30.mdx`: Records the corrected Omni sub-agent model ID. - [#7908](#7908) -> `docs/changelog/2026-07-30.mdx`: Records reviewed Hermes and Deep Agents Code dependency pins. - [#7887](#7887) -> `docs/changelog/2026-07-30.mdx`: Records rejection of a symlinked DGX Station release marker. - [#7747](#7747) -> `docs/changelog/2026-07-30.mdx`: Records the internal compute-driver separation without a user-facing behavior claim. - [#7660](#7660) -> `docs/changelog/2026-07-30.mdx`: Records atomic publication of rebuild recovery manifests. - [#7661](#7661) -> `docs/changelog/2026-07-30.mdx`: Records bounded local inference health-response retention. - [#7654](#7654) -> `docs/changelog/2026-07-30.mdx`: Records state preservation across supervisor relaunch recovery. ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [ ] Code change with doc updates - [x] Doc only (prose changes, no code sample modifications) - [ ] Doc only (includes code sample changes) ## Quality Gates - [ ] Tests added or updated for changed behavior - [x] Existing tests cover changed behavior — justification: `test/changelog-docs.test.ts` validates the dated changelog contract, SPDX comment, version heading, and published routes. - [ ] Tests not applicable — justification: - [x] Docs updated for user-facing behavior changes - [ ] Docs not applicable — justification: - [ ] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [ ] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Documentation Writer Review - [x] Documentation writer subagent reviewed the completed changes - Result: `docs-updated` - Evidence: `docs/changelog/2026-07-30.mdx`; the documentation-only diff passed review against `WRITING.md`, the controlled word list, and `docs/CONTRIBUTING.md`. The review covered terminology, structure, active voice, release meaning, product-scope boundaries, and link and code presentation. Changelog tests passed 6/6, and the docs build reported 0 errors with 2 pre-existing warnings. - Agent: Codex CLI <!-- docs-review-head-sha: 200940f --> <!-- docs-review-agents-blob-sha: c052d60 --> ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: - Station profile/scenario: - Result: - Supporting evidence: ## Verification - [x] PR description includes a `Signed-off-by:` line and every commit appears as `Verified` in GitHub - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or `npm run validate:pr` passed after refreshing `origin/main` when hooks were skipped or unavailable - [x] Targeted behavior tests pass for the current change set, or tests are marked not applicable above — command/result or justification: `npx vitest run test/changelog-docs.test.ts` passed 6/6 tests. - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — command/result: Not applicable to this documentation-only release entry. - [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) — result: Build passed with 0 errors and 2 pre-existing warnings. - [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) --- Signed-off-by: San Dang <sdang@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added release notes for v0.0.99 covering snapshot restoration, sandbox recovery, gateway route upgrades, and Hermes security updates. * Documented experimental Microsoft Entra runtime identity support and enhanced readiness checks. * Added details on managed image validation, trusted CI image promotion, and end-to-end release evidence. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Summary
Consolidate the Priority 2 live E2E seams after auditing the retained fast and live coverage. This PR stages rebuild-selector retirement without deleting the trusted jobs or live tests: active candidates still run the dedicated live tests, while a follow-up removal can route those selectors to focused compatibility evidence.
Related Issue
Part of #7615
Changes
sandbox-rebuildandupgrade-stale-sandboxretirement. Keep their live jobs and tests in this PR so the trustedmainworkflow can execute this candidate. Each job classifies the checked-out candidate: it runs the live test while the file exists and defers evidence to focused compatibility replacements after the file is removed. Route the upgrade/rebuild risk-plan floor torebuild-openclaw.Type of Change
Quality Gates
Documentation Writer Review
docs-updatedtest/e2e/README.md; the review verified the legacy-file retirement condition and the active and retired selector behavior. No user-facingdocs/, Fern, guide-variant, or AI Markdown-route changes are needed.DGX Station Hardware Evidence
Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run check:diffpassed when hooks were skipped or unavailablenpm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes — command/result: The full E2E-support project completed with 1,816 passed and 12 skipped; five macOS host-specific tests failed inlifecycle-user-service.test.tsandtrusted-hermes-swap-workflow-boundary.test.ts. Targeted transition-contract tests pass.npm run docsbuilds without warnings (doc changes only)Signed-off-by: Prekshi Vyas prekshiv@nvidia.com
Summary by CodeRabbit
New Features
sandbox-rebuildandupgrade-stale-sandboxchecks.rebuild-openclawas the canonical check.Bug Fixes
Maintenance