Skip to content

test(e2e): close out onboard resume Vitest migration#5497

Merged
cv merged 6 commits into
mainfrom
e2e-migrate/test-onboard-resume-closeout
Jun 16, 2026
Merged

test(e2e): close out onboard resume Vitest migration#5497
cv merged 6 commits into
mainfrom
e2e-migrate/test-onboard-resume-closeout

Conversation

@cv

@cv cv commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

Summary

Migrate test-onboard-resume.sh into the live Vitest E2E system. Wires the existing test/e2e-scenario/live/onboard-resume.test.ts replacement into e2e-vitest-scenarios.yaml as onboard-resume-vitest, closing out the partial migration from PR #5147 with a dispatchable same-runner Vitest path.

Related Issue

Refs #5098

Changes

  • Adds or wires the free-standing live Vitest scenario onboard-resume.
  • Adds selective workflow dispatch via onboard-resume-vitest in .github/workflows/e2e-vitest-scenarios.yaml.
  • Preserves the legacy system boundaries from test-onboard-resume.sh while leaving legacy shell retirement to Epic: Migrate legacy bash E2E into the Vitest E2E system #5098 Phase 11.

Type of Change

  • 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)

Verification

  • Git hooks passed during commit and push, or npx prek run --from-ref main --to-ref HEAD passes
  • Targeted tests pass for changed behavior
  • Full npm test passes (broad runtime changes only)
  • Tests added or updated for new or changed behavior
  • No secrets, API keys, or credentials committed
  • Docs updated for user-facing behavior changes
  • npm run docs builds without warnings (doc changes only)
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

Targeted local checks run while preparing these branches:

  • npx vitest run --project e2e-vitest-support test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts --silent=false --reporter=default
  • npm run typecheck:cli for branches adding new TypeScript tests
  • git diff --check

Selective same-runner dispatch: https://github.com/NVIDIA/NemoClaw/actions/runs/27636907033 — passed after hosted-compatible env fix


Signed-off-by: Carlos Villela cvillela@nvidia.com

Summary by CodeRabbit

  • Bug Fixes
    • Improved resume behavior to avoid repeating sandbox creation and gateway startup.
    • Updated resume verification to correctly respect the hosted provider and to allow steps to be either completed or skipped without failing.
  • Tests / CI
    • Added automated live e2e coverage for the onboarding resume flow and ensured its results are included in PR feedback.

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@cv cv self-assigned this Jun 16, 2026
@copy-pr-bot

copy-pr-bot Bot commented Jun 16, 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.

@coderabbitai

coderabbitai Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Adds the onboard-resume-vitest GitHub Actions job to the e2e Vitest workflow with conditional dispatch, OpenShell installation, live test execution, and artifact upload, and wires it into report-to-pr. Integrates hosted inference configuration into the onboard-resume live test to derive the API key and environment variables. Updates resume assertions to check for concrete side-effect absence rather than phase-heading absence, validates the provider against the hosted configuration, and relaxes step-status validation to accept either "complete" or "skipped".

Changes

onboard-resume CI job and hosted inference test integration

Layer / File(s) Summary
onboard-resume-vitest CI job and report-to-pr wiring
.github/workflows/e2e-vitest-scenarios.yaml
Adds the onboard-resume-vitest job with conditional execution gating, OpenShell CLI installation, live Vitest test run of onboard-resume.test.ts, and artifact upload. Wires the job into report-to-pr.needs for PR result aggregation.
Hosted inference config integration in test
test/e2e-scenario/live/onboard-resume.test.ts
Imports requireHostedInferenceConfig and uses it to derive the hosted inference API key and environment variables. Updates the SessionStateComplete provider expectation to be dynamic instead of hardcoded. Extends the onboarding command environment with hosted configuration variables.
Resume no-redo and step-status assertion updates
test/e2e-scenario/live/onboard-resume.test.ts
Changes resume "no redo" checks from asserting phase-heading absence to verifying concrete side effects (no sandbox creation, no OpenShell gateway-driver startup). Updates resumed session provider validation to use hosted.providerName. Relaxes per-step session status validation to accept either "complete" or "skipped".

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • NVIDIA/NemoClaw#5243: Introduces the free-standing Vitest job selector and validate-jobs plumbing that the onboard-resume-vitest job depends on for conditional dispatch.
  • NVIDIA/NemoClaw#5147: Originally introduced the onboard-resume.test.ts live test; this PR adds its CI job and updates its assertions to match current CLI behavior.
  • NVIDIA/NemoClaw#5330: Modifies the same .github/workflows/e2e-vitest-scenarios.yaml file and updates report-to-pr workflow wiring and free-standing Vitest job selection logic.

Suggested labels

area: e2e, v0.0.65

🐇 A resume test that once checked for headings so bright,
Now hunts concrete side effects with laser-sharp sight!
The sandbox stays still, the gateway won't dance,
"complete" or "skipped"—both earn their chance.
CI welcomes onboard-resume with care so true,
Hop along, little workflow, we're testing you! 🎉

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: completing the Vitest migration for the onboard-resume test scenario by wiring it into the workflow configuration.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch e2e-migrate/test-onboard-resume-closeout

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

@github-actions

github-actions Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: onboard-resume-vitest
Optional E2E: onboard-resume-e2e, credential-migration-vitest, double-onboard-vitest

Dispatch hint: onboard-resume-vitest

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • onboard-resume-vitest (medium): Directly exercises the changed live Vitest scenario and newly added workflow job for interrupted onboard followed by --resume, including sandbox lifecycle, hosted inference env wiring, and credential hydration from session state.

Optional E2E

  • onboard-resume-e2e (medium): Legacy bash lane still exists and is explicitly referenced as remaining coverage; useful as a parity check while introducing/changing the Vitest replacement lane, but not required if the new Vitest job is the target of this PR.
  • credential-migration-vitest (medium): Adjacent confidence for the hosted-compatible inference helper and credential/env boundary used by this change, especially because the modified test now relies on requireHostedInferenceConfig and compatible endpoint variables.
  • double-onboard-vitest (high): Adjacent onboarding lifecycle coverage for repeated onboarding and sandbox reuse/recreation behavior; useful because the changed resume assertions now distinguish skip evidence from redo-only success strings.

New E2E recommendations

  • None.

Dispatch hint

  • Workflow: .github/workflows/e2e-vitest-scenarios.yaml
  • jobs input: onboard-resume-vitest

@github-actions

github-actions Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Recommendation

Required Vitest E2E scenarios: onboard-resume-vitest
Optional Vitest E2E scenarios: None

Dispatch required Vitest E2E scenarios:

  • gh workflow run e2e-vitest-scenarios.yaml --ref <pr-head-ref> --field jobs=onboard-resume-vitest

Workflow run

Full Vitest E2E advisor summary

Vitest E2E Scenario Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required Vitest E2E scenarios

  • onboard-resume-vitest: Focused free-standing Vitest job wired for changed live test test/e2e-scenario/live/onboard-resume.test.ts.
    • Dispatch: gh workflow run e2e-vitest-scenarios.yaml --ref <pr-head-ref> --field jobs=onboard-resume-vitest

Optional Vitest E2E scenarios

  • None.

Relevant changed files

  • .github/workflows/e2e-vitest-scenarios.yaml
  • test/e2e-scenario/live/onboard-resume.test.ts

@github-actions

github-actions Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor

Findings: 0 needs attention, 4 worth checking, 0 nice ideas
Since last review: 2 prior items resolved, 2 still apply, 0 new items found

Review findings

🛠️ Needs attention

  • None.

🔎 Worth checking

  • Source-of-truth review needed: onboard-resume tolerant output assertions for skipped steps: The advisor marked localized patch analysis as needs_followup.
    • Recommendation: Identify the invalid state, source boundary, source-fix constraint, regression test, and removal condition before merging the localized behavior.
    • Evidence: The Vitest asserts absence of gateway and sandbox redo strings but has no preflight-specific negative assertion.
  • Source-of-truth review needed: completed-session step status tolerance: The advisor marked localized patch analysis as needs_followup.
    • Recommendation: Identify the invalid state, source boundary, source-fix constraint, regression test, and removal condition before merging the localized behavior.
    • Evidence: `SessionStateComplete.steps` is typed as `{ status: "complete" }`, but the assertion accepts both `complete` and `skipped` for every step.
  • Do not allow policy and agent setup to be skipped in the completed resume state (test/e2e-scenario/live/onboard-resume.test.ts:334): The completed-session assertion now accepts either `complete` or `skipped` for every onboarding step, including `policies` and `agent_setup`. That is broader than the legacy resume contract and can mask regressions where required post-resume work, especially policy setup, is bypassed while the session still reaches `complete`. It also conflicts with the local `SessionStateComplete` type, which still declares each step status as `complete`.
    • Recommendation: Narrow the tolerance to only the specific cached steps that may legitimately be skipped, and keep exact `complete` expectations for required post-resume work such as `policies` and `agent_setup` unless the test also proves why a skip is expected.
    • Evidence: The legacy shell test checks `data.steps.preflight/gateway/sandbox/provider_selection/inference/openclaw/policies.status === "complete"`; this PR asserts `expect(["complete", "skipped"]).toContain(complete.steps[step]?.status)` for all listed steps, including `policies` and `agent_setup`.
  • Keep a preflight-specific no-rerun signal for resume (test/e2e-scenario/live/onboard-resume.test.ts:294): The replacement assertions no longer prove that preflight was not rerun. Removing the heading-based assertion is understandable if the CLI now prints phase headings before skip decisions, but the new negative checks only cover gateway startup and sandbox creation redo-only strings. A regression that actually reruns preflight and later still prints `[resume] Skipping preflight (cached)` could pass.
    • Recommendation: Add a preflight-specific redo signal that does not depend on phase headings, such as structured session/event evidence, a preflight execution counter, or a redo-only preflight log marker emitted by the runtime boundary.
    • Evidence: The Vitest keeps positive skip evidence for preflight, gateway, and sandbox, but the negative checks only assert absence of `Sandbox '<name>' created` and `Starting OpenShell Docker-driver gateway...`; there is no equivalent preflight redo-only assertion.

🌱 Nice ideas

  • None.
Consider writing more tests for
  • **Runtime validation** — Dispatch `e2e-vitest-scenarios.yaml` with `jobs=onboard-resume-vitest` and verify only the `onboard-resume-vitest` free-standing job is selected.. This PR wires a live workflow path that drives Docker, OpenShell, sandbox lifecycle, resume state, and hosted inference credentials. Static review can validate selector shape, pinning, and secret boundaries, but not real dispatch/provider/resume behavior.
  • **Runtime validation** — Dispatch `e2e-vitest-scenarios.yaml` with `scenarios=onboard-resume` and verify it maps to `onboard-resume-vitest` rather than the registry matrix path.. This PR wires a live workflow path that drives Docker, OpenShell, sandbox lifecycle, resume state, and hosted inference credentials. Static review can validate selector shape, pinning, and secret boundaries, but not real dispatch/provider/resume behavior.
  • **Runtime validation** — Run `onboard-resume-vitest` with the hosted-compatible env and assert the final provider is `compatible-endpoint`.. This PR wires a live workflow path that drives Docker, OpenShell, sandbox lifecycle, resume state, and hosted inference credentials. Static review can validate selector shape, pinning, and secret boundaries, but not real dispatch/provider/resume behavior.
  • **Runtime validation** — During resume, assert both `NVIDIA_INFERENCE_API_KEY` and `COMPATIBLE_API_KEY` are absent from the resume process env while the credential is hydrated from session or gateway state.. This PR wires a live workflow path that drives Docker, OpenShell, sandbox lifecycle, resume state, and hosted inference credentials. Static review can validate selector shape, pinning, and secret boundaries, but not real dispatch/provider/resume behavior.
  • **Runtime validation** — Add a preflight-specific assertion that fails if preflight executes after cached resume state.. This PR wires a live workflow path that drives Docker, OpenShell, sandbox lifecycle, resume state, and hosted inference credentials. Static review can validate selector shape, pinning, and secret boundaries, but not real dispatch/provider/resume behavior.
  • **Acceptance clause:** Migrate `test-onboard-resume.sh` into the live Vitest E2E system. — add test evidence or identify existing coverage. The workflow adds `onboard-resume-vitest` and runs `test/e2e-scenario/live/onboard-resume.test.ts`, which drives the real CLI, Docker/OpenShell, failure injection, and resume path. Behavioral parity is still partial because the Vitest allows required completed steps to be `skipped` and lacks a preflight-specific no-rerun assertion that the legacy shell covered.
  • **Acceptance clause:** Preserves the legacy system boundaries from `test-onboard-resume.sh` while leaving legacy shell retirement to Epic: Migrate legacy bash E2E into the Vitest E2E system #5098 Phase 11. — add test evidence or identify existing coverage. The credential/provider boundary is now much closer to the legacy path: the workflow uses scoped `NVIDIA_INFERENCE_API_KEY`, `COMPATIBLE_API_KEY`, `NEMOCLAW_PROVIDER=custom`, and compatible endpoint/model env, and the test expects the hosted compatible provider. The resume-state assertions still drift from the legacy shell's exact completed-step checks and preflight no-rerun signal.
  • **onboard-resume tolerant output assertions for skipped steps** — Missing for preflight; current checks only prove gateway startup and sandbox creation did not redo.. The Vitest asserts absence of gateway and sandbox redo strings but has no preflight-specific negative assertion.
Since last review details

Current findings:

  • Source-of-truth review needed: onboard-resume tolerant output assertions for skipped steps: The advisor marked localized patch analysis as needs_followup.
    • Recommendation: Identify the invalid state, source boundary, source-fix constraint, regression test, and removal condition before merging the localized behavior.
    • Evidence: The Vitest asserts absence of gateway and sandbox redo strings but has no preflight-specific negative assertion.
  • Source-of-truth review needed: completed-session step status tolerance: The advisor marked localized patch analysis as needs_followup.
    • Recommendation: Identify the invalid state, source boundary, source-fix constraint, regression test, and removal condition before merging the localized behavior.
    • Evidence: `SessionStateComplete.steps` is typed as `{ status: "complete" }`, but the assertion accepts both `complete` and `skipped` for every step.
  • Do not allow policy and agent setup to be skipped in the completed resume state (test/e2e-scenario/live/onboard-resume.test.ts:334): The completed-session assertion now accepts either `complete` or `skipped` for every onboarding step, including `policies` and `agent_setup`. That is broader than the legacy resume contract and can mask regressions where required post-resume work, especially policy setup, is bypassed while the session still reaches `complete`. It also conflicts with the local `SessionStateComplete` type, which still declares each step status as `complete`.
    • Recommendation: Narrow the tolerance to only the specific cached steps that may legitimately be skipped, and keep exact `complete` expectations for required post-resume work such as `policies` and `agent_setup` unless the test also proves why a skip is expected.
    • Evidence: The legacy shell test checks `data.steps.preflight/gateway/sandbox/provider_selection/inference/openclaw/policies.status === "complete"`; this PR asserts `expect(["complete", "skipped"]).toContain(complete.steps[step]?.status)` for all listed steps, including `policies` and `agent_setup`.
  • Keep a preflight-specific no-rerun signal for resume (test/e2e-scenario/live/onboard-resume.test.ts:294): The replacement assertions no longer prove that preflight was not rerun. Removing the heading-based assertion is understandable if the CLI now prints phase headings before skip decisions, but the new negative checks only cover gateway startup and sandbox creation redo-only strings. A regression that actually reruns preflight and later still prints `[resume] Skipping preflight (cached)` could pass.
    • Recommendation: Add a preflight-specific redo signal that does not depend on phase headings, such as structured session/event evidence, a preflight execution counter, or a redo-only preflight log marker emitted by the runtime boundary.
    • Evidence: The Vitest keeps positive skip evidence for preflight, gateway, and sandbox, but the negative checks only assert absence of `Sandbox '<name>' created` and `Starting OpenShell Docker-driver gateway...`; there is no equivalent preflight redo-only assertion.

Workflow run details

This is an automated advisory review. A human maintainer must make the final merge decision.

@github-code-quality

github-code-quality Bot commented Jun 16, 2026

Copy link
Copy Markdown

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in the branch is 96%. Coverage data for the branch is not yet available.

Show a code coverage summary of the most covered files.
File 02b04c9 +/-
nemoclaw/src/se...cret-scanner.ts 100%
nemoclaw/src/commands/slash.ts 100%
nemoclaw/src/li...bprocess-env.ts 100%
nemoclaw/src/bl...eprint/state.ts 98%
nemoclaw/src/onboard/config.ts 98%
nemoclaw/src/bl...int/snapshot.ts 97%
nemoclaw/src/bl...print/runner.ts 95%
nemoclaw/src/co...ration-state.ts 94%
nemoclaw/src/bl...ate-networks.ts 94%
nemoclaw/src/index.ts 94%

TypeScript / code-coverage/cli

The overall coverage in the branch is 46%. Coverage data for the branch is not yet available.

Show a code coverage summary of the most covered files.
File 02b04c9 +/-
src/lib/state/o...oard-session.ts 90%
src/lib/inference/local.ts 76%
src/lib/sandbox/config.ts 72%
src/lib/actions...dbox/rebuild.ts 67%
src/lib/onboard/preflight.ts 64%
src/lib/actions...licy-channel.ts 56%
src/lib/state/sandbox.ts 55%
src/lib/policy/index.ts 49%
src/lib/onboard...er-gpu-patch.ts 44%
src/lib/onboard.ts 18%

Updated June 16, 2026 17:21 UTC
Code Coverage is in Public Preview. Learn more and provide us with your feedback.

@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ❌ Some jobs failed

Run: 27629707720
Workflow ref: e2e-migrate/test-onboard-resume-closeout
Requested scenarios: (default — all supported)
Requested jobs: onboard-resume-vitest
Summary: 1 passed, 1 failed, 35 skipped

Job Result
bedrock-runtime-compatible-anthropic-vitest ⏭️ skipped
channels-add-remove-vitest ⏭️ skipped
cloud-inference-vitest ⏭️ skipped
common-egress-agent-vitest ⏭️ skipped
credential-migration-vitest ⏭️ skipped
credential-sanitization-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-drift-preflight-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
gateway-health-honest-vitest ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ⏭️ skipped
inference-routing-vitest ⏭️ skipped
issue-2478-crash-loop-recovery-vitest ⏭️ skipped
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ skipped
messaging-compatible-endpoint-vitest ⏭️ skipped
messaging-providers-vitest ⏭️ skipped
model-router-provider-routed-inference-vitest ⏭️ skipped
network-policy-vitest ⏭️ skipped
onboard-negative-paths-vitest ⏭️ skipped
onboard-resume-vitest ❌ failure
openclaw-inference-switch-vitest ⏭️ skipped
openclaw-skill-cli-vitest ⏭️ skipped
openclaw-tui-chat-correlation-vitest ⏭️ skipped
openshell-version-pin-vitest ⏭️ skipped
rebuild-openclaw-vitest ⏭️ skipped
runtime-overrides-vitest ⏭️ skipped
sandbox-rebuild-vitest ⏭️ skipped
sandbox-survival-vitest ⏭️ skipped
sessions-agents-cli-vitest ⏭️ skipped
shields-config-vitest ⏭️ skipped
skill-agent-vitest ⏭️ skipped
state-backup-restore-vitest ⏭️ skipped
token-rotation-vitest ⏭️ skipped

Failed jobs: onboard-resume-vitest. Check run artifacts for logs.

@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ❌ Some jobs failed

Run: 27630036900
Workflow ref: e2e-migrate/test-onboard-resume-closeout
Requested scenarios: (default — all supported)
Requested jobs: onboard-resume-vitest
Summary: 1 passed, 1 failed, 35 skipped

Job Result
bedrock-runtime-compatible-anthropic-vitest ⏭️ skipped
channels-add-remove-vitest ⏭️ skipped
cloud-inference-vitest ⏭️ skipped
common-egress-agent-vitest ⏭️ skipped
credential-migration-vitest ⏭️ skipped
credential-sanitization-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-drift-preflight-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
gateway-health-honest-vitest ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ⏭️ skipped
inference-routing-vitest ⏭️ skipped
issue-2478-crash-loop-recovery-vitest ⏭️ skipped
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ skipped
messaging-compatible-endpoint-vitest ⏭️ skipped
messaging-providers-vitest ⏭️ skipped
model-router-provider-routed-inference-vitest ⏭️ skipped
network-policy-vitest ⏭️ skipped
onboard-negative-paths-vitest ⏭️ skipped
onboard-resume-vitest ❌ failure
openclaw-inference-switch-vitest ⏭️ skipped
openclaw-skill-cli-vitest ⏭️ skipped
openclaw-tui-chat-correlation-vitest ⏭️ skipped
openshell-version-pin-vitest ⏭️ skipped
rebuild-openclaw-vitest ⏭️ skipped
runtime-overrides-vitest ⏭️ skipped
sandbox-rebuild-vitest ⏭️ skipped
sandbox-survival-vitest ⏭️ skipped
sessions-agents-cli-vitest ⏭️ skipped
shields-config-vitest ⏭️ skipped
skill-agent-vitest ⏭️ skipped
state-backup-restore-vitest ⏭️ skipped
token-rotation-vitest ⏭️ skipped

Failed jobs: onboard-resume-vitest. Check run artifacts for logs.

@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ❌ Some jobs failed

Run: 27630403237
Workflow ref: e2e-migrate/test-onboard-resume-closeout
Requested scenarios: (default — all supported)
Requested jobs: onboard-resume-vitest
Summary: 1 passed, 1 failed, 35 skipped

Job Result
bedrock-runtime-compatible-anthropic-vitest ⏭️ skipped
channels-add-remove-vitest ⏭️ skipped
cloud-inference-vitest ⏭️ skipped
common-egress-agent-vitest ⏭️ skipped
credential-migration-vitest ⏭️ skipped
credential-sanitization-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-drift-preflight-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
gateway-health-honest-vitest ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ⏭️ skipped
inference-routing-vitest ⏭️ skipped
issue-2478-crash-loop-recovery-vitest ⏭️ skipped
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ skipped
messaging-compatible-endpoint-vitest ⏭️ skipped
messaging-providers-vitest ⏭️ skipped
model-router-provider-routed-inference-vitest ⏭️ skipped
network-policy-vitest ⏭️ skipped
onboard-negative-paths-vitest ⏭️ skipped
onboard-resume-vitest ❌ failure
openclaw-inference-switch-vitest ⏭️ skipped
openclaw-skill-cli-vitest ⏭️ skipped
openclaw-tui-chat-correlation-vitest ⏭️ skipped
openshell-version-pin-vitest ⏭️ skipped
rebuild-openclaw-vitest ⏭️ skipped
runtime-overrides-vitest ⏭️ skipped
sandbox-rebuild-vitest ⏭️ skipped
sandbox-survival-vitest ⏭️ skipped
sessions-agents-cli-vitest ⏭️ skipped
shields-config-vitest ⏭️ skipped
skill-agent-vitest ⏭️ skipped
state-backup-restore-vitest ⏭️ skipped
token-rotation-vitest ⏭️ skipped

Failed jobs: onboard-resume-vitest. Check run artifacts for logs.

@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ❌ Some jobs failed

Run: 27631163389
Workflow ref: e2e-migrate/test-onboard-resume-closeout
Requested scenarios: (default — all supported)
Requested jobs: onboard-resume-vitest
Summary: 1 passed, 1 failed, 35 skipped

Job Result
bedrock-runtime-compatible-anthropic-vitest ⏭️ skipped
channels-add-remove-vitest ⏭️ skipped
cloud-inference-vitest ⏭️ skipped
common-egress-agent-vitest ⏭️ skipped
credential-migration-vitest ⏭️ skipped
credential-sanitization-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-drift-preflight-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
gateway-health-honest-vitest ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ⏭️ skipped
inference-routing-vitest ⏭️ skipped
issue-2478-crash-loop-recovery-vitest ⏭️ skipped
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ skipped
messaging-compatible-endpoint-vitest ⏭️ skipped
messaging-providers-vitest ⏭️ skipped
model-router-provider-routed-inference-vitest ⏭️ skipped
network-policy-vitest ⏭️ skipped
onboard-negative-paths-vitest ⏭️ skipped
onboard-resume-vitest ❌ failure
openclaw-inference-switch-vitest ⏭️ skipped
openclaw-skill-cli-vitest ⏭️ skipped
openclaw-tui-chat-correlation-vitest ⏭️ skipped
openshell-version-pin-vitest ⏭️ skipped
rebuild-openclaw-vitest ⏭️ skipped
runtime-overrides-vitest ⏭️ skipped
sandbox-rebuild-vitest ⏭️ skipped
sandbox-survival-vitest ⏭️ skipped
sessions-agents-cli-vitest ⏭️ skipped
shields-config-vitest ⏭️ skipped
skill-agent-vitest ⏭️ skipped
state-backup-restore-vitest ⏭️ skipped
token-rotation-vitest ⏭️ skipped

Failed jobs: onboard-resume-vitest. Check run artifacts for logs.

@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ✅ All jobs passed

Run: 27631674436
Workflow ref: e2e-migrate/test-onboard-resume-closeout
Requested scenarios: (default — all supported)
Requested jobs: onboard-resume-vitest
Summary: 2 passed, 0 failed, 35 skipped

Job Result
bedrock-runtime-compatible-anthropic-vitest ⏭️ skipped
channels-add-remove-vitest ⏭️ skipped
cloud-inference-vitest ⏭️ skipped
common-egress-agent-vitest ⏭️ skipped
credential-migration-vitest ⏭️ skipped
credential-sanitization-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-drift-preflight-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
gateway-health-honest-vitest ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ⏭️ skipped
inference-routing-vitest ⏭️ skipped
issue-2478-crash-loop-recovery-vitest ⏭️ skipped
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ skipped
messaging-compatible-endpoint-vitest ⏭️ skipped
messaging-providers-vitest ⏭️ skipped
model-router-provider-routed-inference-vitest ⏭️ skipped
network-policy-vitest ⏭️ skipped
onboard-negative-paths-vitest ⏭️ skipped
onboard-resume-vitest ✅ success
openclaw-inference-switch-vitest ⏭️ skipped
openclaw-skill-cli-vitest ⏭️ skipped
openclaw-tui-chat-correlation-vitest ⏭️ skipped
openshell-version-pin-vitest ⏭️ skipped
rebuild-openclaw-vitest ⏭️ skipped
runtime-overrides-vitest ⏭️ skipped
sandbox-rebuild-vitest ⏭️ skipped
sandbox-survival-vitest ⏭️ skipped
sessions-agents-cli-vitest ⏭️ skipped
shields-config-vitest ⏭️ skipped
skill-agent-vitest ⏭️ skipped
state-backup-restore-vitest ⏭️ skipped
token-rotation-vitest ⏭️ skipped

@cv cv marked this pull request as ready for review June 16, 2026 17:03

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 @.github/workflows/e2e-vitest-scenarios.yaml:
- Around line 1823-1825: The NVIDIA_INFERENCE_API_KEY environment variable is
currently mapped from secrets.NVIDIA_API_KEY, but it should be mapped from the
matching inference-specific secret instead. In the env section where
NVIDIA_INFERENCE_API_KEY is set, change the secret reference from
secrets.NVIDIA_API_KEY to the appropriate inference secret (likely
secrets.NVIDIA_INFERENCE_API_KEY or similar) to ensure the test contract
receives the correct secret and prevent false skips or failures when only the
inference secret is configured.
🪄 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: 71119709-c566-41c6-90af-c7f3314a2d3e

📥 Commits

Reviewing files that changed from the base of the PR and between 6c0fb04 and 7f92c62.

📒 Files selected for processing (2)
  • .github/workflows/e2e-vitest-scenarios.yaml
  • test/e2e-scenario/live/onboard-resume.test.ts

Comment thread .github/workflows/e2e-vitest-scenarios.yaml

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
test/e2e-scenario/live/onboard-resume.test.ts (1)

50-60: ⚡ Quick win

Align SessionStateComplete step status type with resumed-path behavior.

The interface still hard-codes step status to "complete", but this test now explicitly accepts "skipped" on resume. Widening the type avoids misleading assumptions in future edits.

Suggested patch
 interface SessionStateComplete {
   status: "complete";
   provider: string;
   steps: Record<
     | "preflight"
     | "gateway"
     | "sandbox"
     | "provider_selection"
     | "inference"
     | "openclaw"
     | "policies"
     | "agent_setup",
-    { status: "complete" }
+    { status: "complete" | "skipped" }
   >;
 }
🤖 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-scenario/live/onboard-resume.test.ts` around lines 50 - 60, The
steps Record in the SessionStateComplete interface hard-codes the status
property to only accept "complete", but the test now requires accepting
"skipped" status values for resumed paths. Widen the status property type in the
steps Record from { status: "complete" } to allow both "complete" and "skipped"
status values. This removes the misleading assumption that steps can only be
complete and aligns the type definition with the actual resumed-path behavior.
🤖 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-scenario/live/onboard-resume.test.ts`:
- Around line 50-60: The steps Record in the SessionStateComplete interface
hard-codes the status property to only accept "complete", but the test now
requires accepting "skipped" status values for resumed paths. Widen the status
property type in the steps Record from { status: "complete" } to allow both
"complete" and "skipped" status values. This removes the misleading assumption
that steps can only be complete and aligns the type definition with the actual
resumed-path behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: df247762-0944-4280-8de4-435130d0da03

📥 Commits

Reviewing files that changed from the base of the PR and between 7f92c62 and 02b04c9.

📒 Files selected for processing (2)
  • .github/workflows/e2e-vitest-scenarios.yaml
  • test/e2e-scenario/live/onboard-resume.test.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/e2e-vitest-scenarios.yaml

@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ✅ All jobs passed

Run: 27635626736
Workflow ref: e2e-migrate/test-onboard-resume-closeout
Requested scenarios: (default — all supported)
Requested jobs: onboard-resume-vitest
Summary: 2 passed, 0 failed, 35 skipped

Job Result
bedrock-runtime-compatible-anthropic-vitest ⏭️ skipped
channels-add-remove-vitest ⏭️ skipped
cloud-inference-vitest ⏭️ skipped
common-egress-agent-vitest ⏭️ skipped
credential-migration-vitest ⏭️ skipped
credential-sanitization-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-drift-preflight-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
gateway-health-honest-vitest ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ⏭️ skipped
inference-routing-vitest ⏭️ skipped
issue-2478-crash-loop-recovery-vitest ⏭️ skipped
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ skipped
messaging-compatible-endpoint-vitest ⏭️ skipped
messaging-providers-vitest ⏭️ skipped
model-router-provider-routed-inference-vitest ⏭️ skipped
network-policy-vitest ⏭️ skipped
onboard-negative-paths-vitest ⏭️ skipped
onboard-resume-vitest ✅ success
openclaw-inference-switch-vitest ⏭️ skipped
openclaw-skill-cli-vitest ⏭️ skipped
openclaw-tui-chat-correlation-vitest ⏭️ skipped
openshell-version-pin-vitest ⏭️ skipped
rebuild-openclaw-vitest ⏭️ skipped
runtime-overrides-vitest ⏭️ skipped
sandbox-rebuild-vitest ⏭️ skipped
sandbox-survival-vitest ⏭️ skipped
sessions-agents-cli-vitest ⏭️ skipped
shields-config-vitest ⏭️ skipped
skill-agent-vitest ⏭️ skipped
state-backup-restore-vitest ⏭️ skipped
token-rotation-vitest ⏭️ skipped

@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ✅ All jobs passed

Run: 27636907033
Workflow ref: e2e-migrate/test-onboard-resume-closeout
Requested scenarios: (default — all supported)
Requested jobs: onboard-resume-vitest
Summary: 2 passed, 0 failed, 35 skipped

Job Result
bedrock-runtime-compatible-anthropic-vitest ⏭️ skipped
channels-add-remove-vitest ⏭️ skipped
cloud-inference-vitest ⏭️ skipped
common-egress-agent-vitest ⏭️ skipped
credential-migration-vitest ⏭️ skipped
credential-sanitization-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-drift-preflight-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
gateway-health-honest-vitest ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ⏭️ skipped
inference-routing-vitest ⏭️ skipped
issue-2478-crash-loop-recovery-vitest ⏭️ skipped
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ skipped
messaging-compatible-endpoint-vitest ⏭️ skipped
messaging-providers-vitest ⏭️ skipped
model-router-provider-routed-inference-vitest ⏭️ skipped
network-policy-vitest ⏭️ skipped
onboard-negative-paths-vitest ⏭️ skipped
onboard-resume-vitest ✅ success
openclaw-inference-switch-vitest ⏭️ skipped
openclaw-skill-cli-vitest ⏭️ skipped
openclaw-tui-chat-correlation-vitest ⏭️ skipped
openshell-version-pin-vitest ⏭️ skipped
rebuild-openclaw-vitest ⏭️ skipped
runtime-overrides-vitest ⏭️ skipped
sandbox-rebuild-vitest ⏭️ skipped
sandbox-survival-vitest ⏭️ skipped
sessions-agents-cli-vitest ⏭️ skipped
shields-config-vitest ⏭️ skipped
skill-agent-vitest ⏭️ skipped
state-backup-restore-vitest ⏭️ skipped
token-rotation-vitest ⏭️ skipped

@cv cv merged commit 8887140 into main Jun 16, 2026
120 checks passed
@cv cv deleted the e2e-migrate/test-onboard-resume-closeout branch June 16, 2026 18:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant