fix(release): resolve recovery, Hermes, and inference E2E blockers - #7778
Conversation
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
|
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:
📝 WalkthroughWalkthroughThis PR relocates Hermes gateway metadata into its writable runtime directory, strengthens Docker and sandbox recovery verification, bounds restored-gateway pairing retries, adds stored-device authentication safeguards, and updates compatible Anthropic inference-switch fixtures and tests. ChangesHermes runtime metadata relocation
Sandbox and Docker recovery
Restored gateway pairing and stored-device authentication
Compatible Anthropic switch bindings
Estimated code review effort: 4 (Complex) | ~60 minutes Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 2📝 Generate docstrings 💡
🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Comment |
|
🌿 Preview your docs: https://nvidia-preview-pr-7778.docs.buildwithfern.com/nemoclaw |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in commit 45d83ed in the TypeScript / code-coverage/cliThe overall coverage in commit 45d83ed in the Show a code coverage summary of the most impacted files.
Updated |
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
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: 2 optional E2E recommendations
This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge. |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
test/e2e/support/compatible-anthropic-switch.test.ts (1)
15-29: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAdd coverage for the binding's validation error branches.
Only the happy path of
compatibleAnthropicSwitchBindingis tested. The two guard branches (emptyendpointUrl, blank credential) aren't exercised anywhere in this file.✅ Suggested additional test cases
it("passes the direct binding credential only to the inference-set command", () => { ... }); + + it("rejects a blank endpoint URL", () => { + expect(() => compatibleAnthropicSwitchBinding(" ", {})).toThrow( + "NEMOCLAW_SWITCH_ENDPOINT_URL is required", + ); + }); + + it("rejects a blank credential value", () => { + expect(() => + compatibleAnthropicSwitchBinding("http://host.openshell.internal:18766", { + COMPATIBLE_ANTHROPIC_API_KEY: " ", + }), + ).toThrow("COMPATIBLE_ANTHROPIC_API_KEY is required"); + });🤖 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/compatible-anthropic-switch.test.ts` around lines 15 - 29, Extend the “compatible Anthropic inference switch setup” tests to cover both validation guards in compatibleAnthropicSwitchBinding: assert that an empty endpointUrl is rejected and that a blank COMPATIBLE_ANTHROPIC_API_KEY credential is rejected. Keep the existing happy-path and compatibleAnthropicSwitchEnv assertions unchanged.
🤖 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/compatible-anthropic-switch.test.ts`:
- Around line 15-29: Extend the “compatible Anthropic inference switch setup”
tests to cover both validation guards in compatibleAnthropicSwitchBinding:
assert that an empty endpointUrl is rejected and that a blank
COMPATIBLE_ANTHROPIC_API_KEY credential is rejected. Keep the existing
happy-path and compatibleAnthropicSwitchEnv assertions unchanged.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 6b54baf2-ade5-4b52-a79d-8f52005b4266
📒 Files selected for processing (31)
agents/hermes/Dockerfileagents/hermes/mcp-config-transaction.pyagents/hermes/patch-gateway-runtime-metadata.pydocs/changelog/2026-07-28.mdxdocs/reference/commands.mdxsrc/lib/actions/sandbox/process-recovery.tssrc/lib/actions/sandbox/restore-gateway-pairing.test.tssrc/lib/actions/sandbox/restore-gateway-pairing.tssrc/lib/actions/sandbox/status-flow.test.tssrc/lib/actions/sandbox/status-lookup-rendering.tssrc/lib/actions/sandbox/status-snapshot-inference-health.test.tssrc/lib/actions/sandbox/status-snapshot-recovery.test.tssrc/lib/actions/sandbox/status-snapshot.tssrc/lib/actions/sandbox/status-text.tssrc/lib/actions/sandbox/status.tssrc/lib/actions/sandbox/status/process-recovery.tssrc/lib/onboard/docker-driver-sandbox-recovery.test.tssrc/lib/onboard/docker-driver-sandbox-recovery.tstest/e2e/fixtures/compatible-anthropic-switch.tstest/e2e/fixtures/phases/lifecycle.tstest/e2e/live/hermes-inference-switch-helpers.tstest/e2e/live/hermes-inference-switch.test.tstest/e2e/live/hermes-root-entrypoint-smoke.test.tstest/e2e/live/openclaw-inference-switch.test.tstest/e2e/support/compatible-anthropic-switch.test.tstest/e2e/support/e2e-phase-lifecycle.test.tstest/e2e/support/hermes-inference-switch-command-shape.test.tstest/hermes-final-image-layout.test.tstest/hermes-gateway-runtime-metadata-patch.test.tstest/process-recovery-forward-failure.test.tstest/support/status-flow-test-harness.ts
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
|
@coderabbitai review |
✅ Action performedReview finished.
|
Maintainer release evidence waiver — v0.0.97Recorded by @cjagwani on 2026-07-29 following San's maintainer direction, relayed in the release task, that the recently recurring Accepted exact-head non-successes for
The other 12 selected functional E2E jobs passed on this exact head. Ordinary code, build, typecheck, unit/integration, DCO, signature, documentation, security, macOS, WSL, and self-hosted checks passed; the PR is approved. Jetson and Launchable are intentionally outside this release evidence set per maintainer direction. Maintainer decision: accept the two non-successes above as release-evidence exceptions, merge #7778, and continue v0.0.97 tagging. This waiver does not mark either test fixed and does not close its follow-up issue. |
Signed-off-by: Charan Jagwani <cjagwani@nvidia.com>
|
Rescoped at |
Summary
Resolves three functional v0.0.97 E2E blockers without weakening production inference, shields, or recovery guardrails. Post-reboot status now proves the complete delivery chain, Hermes can replace its gateway under shields, and the compatible-Anthropic live fixtures exercise the production-owned provider lifecycle. Restored snapshot pairing work has been removed from this PR and remains tracked in #7818.
Changes
inference setnow owns create, verify, and rollback.status/process-recovery.ts; the status flow and snapshot suites protect the adapter contract.Type of Change
Quality Gates
cvandprekshivyascovered the residual recovery, Hermes, and inference-fixture scope; snapshot-specific credential changes have been removed.Documentation Writer Review
docs-updateddocs/changelog/2026-07-28.mdxanddocs/reference/commands.mdxaccurately cover the residual recovery and Hermes behavior; compatible-Anthropic changes are fixture coverage only.npm run docspassed with 0 errors and 2 pre-existing Fern warnings; changelog tests passed 6/6.DGX Station Hardware Evidence
Verification
Signed-off-by:line and every published commit appears asVerifiedin GitHubpre-commitandcommit-msghooks passed;pre-pushwill run during publicationnpm run test:changedpassed 20 files/203 tests; targeted integration passed 3 files/23 tests; changelog passed 6/6;npm run typecheck:cliandnpm run docspassed.npm run docsbuilds without new warnings (doc changes only) — 0 errors; 2 pre-existing Fern warningsSigned-off-by: Charan Jagwani cjagwani@nvidia.com