test(e2e): migrate test-issue-2478-crash-loop-recovery.sh to vitest#5348
Conversation
Reserve Phase 4 E2E migration work for test-issue-2478-crash-loop-recovery.sh. Refs #5098
|
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:
📝 WalkthroughWalkthroughAdds a Vitest live E2E that tests gateway crash-loop recovery with probe-only reconnects, proxy-env snapshot/restore, and soak-based stability assertions; registers a new GitHub Actions job to run the test and updates free-standing job mappings and reporting dependencies. ChangesCrash-Loop Recovery E2E Implementation and Wiring
Sequence Diagram(s)sequenceDiagram
participant Developer
participant GitHubActions as "GitHub Actions"
participant Runner
participant NemoclawCLI as "nemoclaw CLI"
participant Sandbox
participant Gateway
participant Inference as "inference.local"
Developer->>GitHubActions: push PR triggers workflow
GitHubActions->>Runner: start job issue-2478-crash-loop-recovery-vitest
Runner->>NemoclawCLI: build CLI, install OpenShell
Runner->>Sandbox: onboard sandbox (NEMOCLAW_SANDBOX_NAME=e2e-2478)
Runner->>NemoclawCLI: run Vitest test (connect --probe-only etc.)
NemoclawCLI->>Gateway: start/kill/probe cycles
Gateway-->>Inference: serve inference.local
Runner->>GitHubActions: upload artifacts & report job status
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
E2E Advisor RecommendationRequired E2E: None Full advisor summaryE2E Recommendation AdvisorFailed: Could not parse JSON from advisor output; see /home/runner/work/NemoClaw/NemoClaw/artifacts/e2e-advisor/e2e-advisor-raw-output.txt |
Vitest E2E Scenario RecommendationRequired Vitest E2E scenarios: None Full Vitest E2E advisor summaryVitest E2E Scenario AdvisorFailed: Could not parse JSON from advisor output; see /home/runner/work/NemoClaw/NemoClaw/artifacts/e2e-advisor/e2e-scenario-advisor-raw-output.txt |
PR Review AdvisorFindings: 0 needs attention, 1 worth checking, 0 nice ideas Review findings🛠️ Needs attention
🔎 Worth checking
🌱 Nice ideas
Consider writing more tests for
This is an automated advisory review. A human maintainer must make the final merge decision. |
Vitest E2E Scenario Results — ❌ Some jobs failedRun: 27438339071
|
Vitest E2E Scenario Results — ❌ Some jobs failedRun: 27444579945
|
Vitest E2E Scenario Results — ❌ Some jobs failedRun: 27444769453
|
Vitest E2E Scenario Results — ❌ Some jobs failedRun: 27445205931
|
Vitest E2E Scenario Results — ❌ Some jobs failedRun: 27445399484
|
Vitest E2E Scenario Results — ❌ Some jobs failedRun: 27446216810
|
Vitest E2E Scenario Results — ✅ All jobs passedRun: 27447166134
|
…e-2478-crash-loop-recovery-vitest # Conflicts: # tools/e2e-scenarios/free-standing-jobs.env
Vitest E2E Scenario Results — ❌ Some jobs failedRun: 27449336580
|
Vitest E2E Scenario Results — ❌ Some jobs failedRun: 27449730415
|
Vitest E2E Scenario Results — ❌ Some jobs failedRun: 27450300999
|
Vitest E2E Scenario Results — ❌ Some jobs failedRun: 27450889879
|
…e-2478-crash-loop-recovery-vitest # Conflicts: # tools/e2e-scenarios/free-standing-jobs.env
…e-2478-crash-loop-recovery # Conflicts: # tools/e2e-scenarios/workflow-boundary.mts
…e-2478-crash-loop-recovery-vitest # Conflicts: # test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts # tools/e2e-scenarios/workflow-boundary.mts
…e-2478-crash-loop-recovery # Conflicts: # .github/workflows/e2e-vitest-scenarios.yaml # test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts # tools/e2e-scenarios/workflow-boundary.mts
…e-2478-crash-loop-recovery-vitest # Conflicts: # .github/workflows/e2e-vitest-scenarios.yaml # test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts # tools/e2e-scenarios/workflow-boundary.mts
Vitest E2E Scenario Results — ❌ Some jobs failedRun: 27454563987
|
…h-loop-recovery' into e2e-migrate/test-issue-2478-crash-loop-recovery # Conflicts: # test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts # tools/e2e-scenarios/workflow-boundary.mts
…e-2478-crash-loop-recovery # Conflicts: # .github/workflows/e2e-vitest-scenarios.yaml
Vitest E2E Scenario Results — ✅ All jobs passedRun: 27455460682
|
…e-2478-crash-loop-recovery # Conflicts: # .github/workflows/e2e-vitest-scenarios.yaml # test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts
Vitest E2E Scenario Results — ✅ All jobs passedRun: 27456987489
|
…e-2478-crash-loop-recovery-vitest
Vitest E2E Scenario Results — ✅ All jobs passedRun: 27457627752
|
…e-2478-crash-loop-recovery-vitest # Conflicts: # .github/workflows/e2e-vitest-scenarios.yaml # test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts # tools/e2e-scenarios/workflow-boundary.mts
…e-2478-crash-loop-recovery-vitest
…e-2478-crash-loop-recovery-vitest
Vitest E2E Scenario Results — ✅ All jobs passedRun: 27458470234
|
…e-2478-crash-loop-recovery-vitest
Vitest E2E Scenario Results — ✅ All jobs passedRun: 27458565944
|
cv
left a comment
There was a problem hiding this comment.
PR CI is green, the PR Review Advisor had no needs-attention findings, and the current-head targeted issue-2478-crash-loop-recovery-vitest run 27458565944 passed after the merge-main refresh.
Vitest E2E Scenario Results — ✅ All jobs passedRun: 27459274960
|
Summary
Migrate
test/e2e/test-issue-2478-crash-loop-recovery.shwith the simplest equivalent live Vitest coverage.Related Issues
Refs #5098
Refs #2478
Refs #2701
Contract mapping
nemoclaw <sandbox> connect --probe-only, and confirminference.localstill serves models.test/e2e-scenario/live/issue-2478-crash-loop-recovery.test.tsasserts the initial guard chain, 5 kill/recover cycles, and/v1/modelsavailability.curl https://inference.local/v1/models./tmp/nemoclaw-proxy-env.shrecovery surfaces the [DGX Spark] Gateway crash loop on startup: @homebridge/ciao networkInterfaces() returns EPERM in OpenShell sandbox #2478 warning and the [DGX Spark] Host reboot bricks sandbox until 5-minrebuild --yes:connectrecovery path warns about missing /tmp guards but launches gateway naked → @homebridge/ciao crash loop #2701 restored-guard-chain contract.connect --probe-only, checks[gateway-recovery] WARNING, and then asserts guard-chain recovery./tmpguard files, gateway logs, process tree termination, recovery relaunch.inference.localoverNEMOCLAW_E2E_SOAK_SECONDS.Simplicity check
nightly-e2e.yamljobissue-2478-crash-loop-recovery-e2eviae2e-script.yaml,runs-on: ubuntu-latest, Docker/OpenShell,NVIDIA_API_KEY,GITHUB_TOKEN, 30 min timeout.ubuntu-latestGitHub-hosted runner class, Docker/OpenShell,NVIDIA_API_KEY, 30 min timeout.issue-2478-crash-loop-recovery-vitestin.github/workflows/e2e-vitest-scenarios.yaml; legacy shell deletion/workflow retirement deferred to Epic: Migrate legacy bash E2E into the Vitest E2E system #5098 Phase 11.e2e-vitest-scenarios.yamlwithjobs=issue-2478-crash-loop-recovery-viteston this PR branch.Verification
npm run build:clinpx vitest run --project e2e-vitest-support test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.tsnpx tsc --noEmit --allowImportingTsExtensions --target ES2022 --module NodeNext --moduleResolution NodeNext --types vitest,node --skipLibCheck test/e2e-scenario/live/issue-2478-crash-loop-recovery.test.tsgit diff --checkNEMOCLAW_RUN_E2E_SCENARIOS=1 npx vitest run --project e2e-scenarios-live test/e2e-scenario/live/issue-2478-crash-loop-recovery.test.ts --silent=false --reporter=default(blocked locally because Docker daemon is not running)workflow_dispatch,jobs=issue-2478-crash-loop-recovery-vitest)Summary by CodeRabbit
Tests
Chores