Skip to content

test(e2e): migrate test-concurrent-gateway-ports.sh to vitest - #5349

Merged
cv merged 8 commits into
mainfrom
e2e-migrate/test-concurrent-gateway-ports
Jun 18, 2026
Merged

test(e2e): migrate test-concurrent-gateway-ports.sh to vitest#5349
cv merged 8 commits into
mainfrom
e2e-migrate/test-concurrent-gateway-ports

Conversation

@jyaunches

@jyaunches jyaunches commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Migrate test/e2e/test-concurrent-gateway-ports.sh with focused live Vitest coverage.

Related Issues

Refs #5098

Contract mapping

  • Legacy assertion: onboard sandbox A on the default NemoClaw gateway port (8080) and default dashboard port (18789).
    • Replacement: test/e2e-scenario/live/concurrent-gateway-ports.test.ts runs the repo CLI against a fake OpenAI-compatible endpoint and asserts sandbox A reaches Ready/Running, nemoclaw list reports dashboard port 18789, and the host gateway port is listening.
    • Boundary preserved: real repo CLI, Docker/OpenShell gateway, dashboard forward, host socket probe, and local fake OpenAI-compatible inference endpoint.
  • Legacy assertion: onboard sandbox B with NEMOCLAW_GATEWAY_PORT set to a non-default port.
    • Replacement: same Vitest test onboards sandbox B with NEMOCLAW_GATEWAY_PORT=18080 and checks the per-port OpenShell gateway name nemoclaw-18080.
    • Boundary preserved: real per-port OpenShell Docker-driver gateway and NemoClaw gateway selection path.
  • Legacy assertion: both sandboxes coexist with distinct gateways, distinct dashboards, and no destruction of sandbox A during sandbox B onboarding.
    • Replacement: same Vitest test verifies both sandboxes are Ready/Running on their expected gateways, both gateway ports are listening, nemoclaw list includes both sandboxes, and the dashboard ports are distinct.
    • Boundary preserved: real OpenShell sandbox discovery, nemoclaw list, and host ss socket observation.
  • Legacy assertion: destroying sandbox B leaves sandbox A healthy.
    • Replacement: same Vitest test destroys sandbox B through the repo CLI and rechecks sandbox A plus the default gateway port.
    • Boundary preserved: real nemoclaw <sandbox> destroy --yes and OpenShell state.

Simplicity check

  • Test shape: simple live Vitest test.
  • Original runner/lane: nightly-e2e.yaml job concurrent-gateway-ports-e2e via e2e-script.yaml, default ubuntu-latest, Docker/OpenShell, fake OpenAI-compatible endpoint, 30 minute reusable timeout.
  • Replacement runner: same ubuntu-latest runner class in e2e-vitest-scenarios.yaml job concurrent-gateway-ports-vitest, with Docker Hub auth, OpenShell install, CLI build, and 90 minute timeout for two live onboards.
  • New shared helpers: none; one-off gateway/dashboard parsers stay local to the test.
  • New framework/registry/ledger: none.
  • Workflow changes: add selective free-standing Vitest job and selector coverage; legacy shell deletion/workflow retirement deferred to Epic: Migrate legacy bash E2E into the Vitest E2E system #5098 Phase 11.
  • Selective dispatch: e2e-vitest-scenarios.yaml with jobs=concurrent-gateway-ports-vitest on this PR branch.

Verification

  • npm run build:cli
  • npx biome check --write test/e2e-scenario/live/concurrent-gateway-ports.test.ts test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts tools/e2e-scenarios/workflow-boundary.mts
  • npx vitest run --project e2e-vitest-support test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts --silent=false --reporter=default
  • git diff --check
  • Same-runner selective run: https://github.com/NVIDIA/NemoClaw/actions/runs/27594971597 (workflow_dispatch, jobs=concurrent-gateway-ports-vitest) — passed

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

Summary by CodeRabbit

Tests

  • Added a comprehensive live end-to-end test for concurrent onboarding across isolated gateways, verifying dashboard behavior and gateway port listening.
  • Enhanced the end-to-end Vitest workflow with a new conditional free-standing live job and updated PR reporting to include it.
  • Improved scenario dispatch validation to correctly select the new concurrent-gateway-ports scenario/job mapping.

Reserve Phase 4 E2E migration work for test-concurrent-gateway-ports.sh.

Refs #5098
@jyaunches jyaunches added area: e2e End-to-end tests, nightly failures, or validation infrastructure chore Build, CI, dependency, or tooling maintenance v0.0.65 labels Jun 12, 2026
@copy-pr-bot

copy-pr-bot Bot commented Jun 12, 2026

Copy link
Copy Markdown

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.

@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 5be612e9-ae72-4f16-bf8e-6513320c3062

📥 Commits

Reviewing files that changed from the base of the PR and between 54a934b and 32e8100.

📒 Files selected for processing (3)
  • .github/workflows/e2e-vitest-scenarios.yaml
  • test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts
  • tools/e2e-scenarios/workflow-boundary.mts
🚧 Files skipped from review as they are similar to previous changes (2)
  • test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts
  • tools/e2e-scenarios/workflow-boundary.mts

📝 Walkthrough

Walkthrough

Adds a new live Vitest E2E scenario (concurrent-gateway-ports) that onboards two sandboxes onto isolated OpenShell Docker-driver gateways concurrently and asserts dashboard port isolation and forwarding behavior. Wires a corresponding free-standing CI job in the E2E workflow, registers it in the workflow boundary validator, and extends dispatch-selector tests.

Changes

concurrent-gateway-ports E2E scenario

Layer / File(s) Summary
Live test helpers, polling, and teardown
test/e2e-scenario/live/concurrent-gateway-ports.test.ts
Defines config constants driven by env vars, command execution and onboarding helpers, nemoclaw list dashboard-port parser, sandbox-phase polling routine, ss-based port-listening verifier, prerequisite-or-skip utility, and best-effort teardown logic.
Main E2E scenario body
test/e2e-scenario/live/concurrent-gateway-ports.test.ts
Implements the full liveTest body: prerequisites check, fake OpenAI server setup, initial cleanup, sequential onboarding of sandboxes A and B onto separate gateway ports, readiness and port-listening assertions, sandbox B destruction with sandbox A health verification, and structured scenario-result.json artifact writing.
CI job and report aggregation
.github/workflows/e2e-vitest-scenarios.yaml
Adds the concurrent-gateway-ports-vitest free-standing job (conditional dispatch, Docker Hub auth, Vitest run, 14-day artifact upload) and appends it to report-to-pr's needs list.
Workflow boundary validation and dispatch-selector tests
tools/e2e-scenarios/workflow-boundary.mts, test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts
Registers concurrent-gateway-ports-vitestconcurrent-gateway-ports via validateFreeStandingJobSelector and adds two dispatch-selector assertions confirming the mapping resolves with valid: true and liveScenariosRuns: false.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • NVIDIA/NemoClaw#5150: Both PRs add new free-standing live Vitest scenario jobs to .github/workflows/e2e-vitest-scenarios.yaml and extend validateE2eVitestScenariosWorkflowBoundary in tools/e2e-scenarios/workflow-boundary.mts with validateFreeStandingJobSelector mappings for the respective new jobs.
  • NVIDIA/NemoClaw#5218: Both PRs extend the e2e-vitest-scenarios.yaml workflow's free-standing job/selector wiring (adding a new Vitest live E2E job and including it in the report-to-pr aggregation), but they do so for different jobs (concurrent-gateway-ports-vitest vs double-onboard-vitest) with no shared test logic.
  • NVIDIA/NemoClaw#5370: Refactors the free-standing E2E workflow boundary/selector validation logic in tools/e2e-scenarios/workflow-boundary.mts that this PR extends.

Suggested labels

v0.0.65

Suggested reviewers

  • cv

🐰 Two gateways spin up, side by side,
Each sandbox claims its port with pride.
Sandbox B departs, A waves goodbye —
The dashboard ports never did collide!
A bunny checks ss, hops with delight 🎉

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title clearly and accurately describes the main change: migrating a shell-based E2E test to Vitest. It is concise, specific, and directly reflects the primary purpose of the changeset.
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.

✏️ 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-concurrent-gateway-ports

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

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: None
Optional E2E: concurrent-gateway-ports-vitest

Dispatch hint: concurrent-gateway-ports-vitest

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • None.

Optional E2E

  • concurrent-gateway-ports-vitest (high): This is the new workflow job and live scenario added by the PR; running it validates that the job dispatch selector, OpenShell/Docker gateway setup, two-sandbox onboarding flow, port isolation, and artifact upload path work end-to-end.

New E2E recommendations

  • None.

Dispatch hint

  • Workflow: e2e-vitest-scenarios.yaml
  • jobs input: concurrent-gateway-ports-vitest

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Recommendation

Required Vitest E2E scenarios: concurrent-gateway-ports-vitest
Optional Vitest E2E scenarios: None

Dispatch required Vitest E2E scenarios:

  • gh workflow run e2e-vitest-scenarios.yaml --ref <pr-head-ref> --field jobs=concurrent-gateway-ports-vitest

Workflow run

Full Vitest E2E advisor summary

Vitest E2E Scenario Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required Vitest E2E scenarios

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

Optional Vitest E2E scenarios

  • None.

Relevant changed files

  • .github/workflows/e2e-vitest-scenarios.yaml
  • test/e2e-scenario/live/concurrent-gateway-ports.test.ts
  • test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts
  • tools/e2e-scenarios/workflow-boundary.mts

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor

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

Review findings

🛠️ Needs attention

  • None.

🔎 Worth checking

  • Source-of-truth review needed: bestEffortCleanup() for NemoClaw/OpenShell sandboxes, forwards, and gateways: 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: bestEffortCleanup() contains broad catch { // best effort } blocks around NemoClaw destroy, OpenShell sandbox delete, forward stop, and gateway destroy.
  • Isolate and clean up Docker Hub auth in the new live job (.github/workflows/e2e-vitest-scenarios.yaml:1805): The added free-standing job logs into Docker Hub with repository secrets, then runs checked-out repository code to build the CLI, install OpenShell, and execute Vitest. Without an isolated DOCKER_CONFIG and cleanup/logout, Docker auth remains in the default runner config for later PR-code steps in the job.
    • Recommendation: Configure DOCKER_CONFIG under RUNNER_TEMP with restrictive permissions before docker login, avoid passing Docker credential env vars to installer/test steps unless required, and add an if: always() cleanup step that logs out and removes that directory.
    • Evidence: The added concurrent-gateway-ports-vitest job has an 'Authenticate to Docker Hub' step using DOCKERHUB_USERNAME/DOCKERHUB_TOKEN, followed by npm run build:cli, bash scripts/install-openshell.sh, and npx vitest; the added job does not set DOCKER_CONFIG or include Docker auth cleanup.
  • Validate env-derived ports before shell probing (test/e2e-scenario/live/concurrent-gateway-ports.test.ts:172): The live test reads port values from environment variables and interpolates the gateway port into a bash -lc string. The workflow does not expose these as dispatch inputs, so this is not a confirmed workflow-boundary exploit, but it is avoidable command-injection and test-integrity risk for local or otherwise externally configured runs.
    • Recommendation: Parse all port-like env vars with a strict integer/range validator before use, and avoid shell interpolation for the listening probe. Prefer spawning ss directly and inspecting stdout in TypeScript, or pass a validated port as a positional argument to a fixed shell script.
    • Evidence: GATEWAY_PORT_A, GATEWAY_PORT_B, DASHBOARD_PORT_A, and NEMOCLAW_E2E_FAKE_PORT are env-derived; expectPortListening() runs host.command('bash', ['-lc', `ss -ltn | grep -Eq '[:.]${port}\\b'`], ...).
  • Narrow or surface best-effort cleanup failures (test/e2e-scenario/live/concurrent-gateway-ports.test.ts:206): bestEffortCleanup() broadly suppresses failures while destroying NemoClaw sandboxes, deleting OpenShell sandboxes, stopping forwards, and destroying gateways. Cleanup-after-failure is reasonable for live E2E tests, but the current code does not distinguish known benign not-found/already-stopped states from unexpected cleanup defects, which can leave gateways, forwards, or sandboxes behind and make later runs less trustworthy.
    • Recommendation: Narrow ignored failures to expected benign outcomes or record unexpected cleanup failures in artifacts/logs while preserving the primary test failure. Document the partial lifecycle states this helper tolerates, the source boundary, and when the workaround can be removed.
    • Evidence: bestEffortCleanup() has multiple broad catch { // best effort } blocks around nemoclaw destroy, openshell sandbox delete, openshell forward stop, and openshell gateway destroy.
  • Preserve or intentionally drop legacy default-sandbox cleanup (test/e2e-scenario/live/concurrent-gateway-ports.test.ts:324): The legacy shell scenario removed an unrelated pre-existing default install sandbox before onboarding sandbox A. The new Vitest scenario only pre-cleans the two named test sandboxes, a fixed dashboard-forward range, and the two gateways. On a reused developer host or runner state with an unrelated default sandbox/forward, sandbox A may not deterministically receive dashboard port 18789 or list output may differ from the legacy contract.
    • Recommendation: Either carry over the legacy default-sandbox cleanup in a narrowly scoped way, or document why this Vitest lane cannot encounter that state and add coverage for the pre-existing-default-sandbox case.
    • Evidence: The new test calls await bestEffortCleanup(host, sandbox, gatewayA, gatewayB) before onboarding A, while test/e2e/test-concurrent-gateway-ports.sh has destroy_default_install_sandbox before Stage 1.

🌱 Nice ideas

  • None.
Consider writing more tests for
  • **Runtime validation** — Reject malformed NEMOCLAW_E2E_GATEWAY_PORT_A, NEMOCLAW_E2E_GATEWAY_PORT_B, NEMOCLAW_E2E_DASHBOARD_PORT_A, and NEMOCLAW_E2E_FAKE_PORT before any shell command, gateway name, or fake-server option is built.. The main behavior depends on live Docker/OpenShell gateway orchestration, host ports, dashboard forwards, and sandbox cleanup. Static selector tests cover workflow dispatch wiring but cannot validate runtime coexistence, cleanup, and credential-boundary behavior.
  • **Runtime validation** — Run the scenario with a pre-existing unrelated default sandbox or dashboard forward and verify setup either removes it intentionally or sandbox A still deterministically receives dashboard port 18789.. The main behavior depends on live Docker/OpenShell gateway orchestration, host ports, dashboard forwards, and sandbox cleanup. Static selector tests cover workflow dispatch wiring but cannot validate runtime coexistence, cleanup, and credential-boundary behavior.
  • **Runtime validation** — Exercise OpenShell sandbox delete, forward stop, and gateway destroy cleanup failures and verify unexpected failures are captured in artifacts/logs while benign not-found/already-stopped states remain non-fatal.. The main behavior depends on live Docker/OpenShell gateway orchestration, host ports, dashboard forwards, and sandbox cleanup. Static selector tests cover workflow dispatch wiring but cannot validate runtime coexistence, cleanup, and credential-boundary behavior.
  • **Runtime validation** — Validate the selective jobs=concurrent-gateway-ports-vitest path produces scenario-result.json showing sandbox A dashboard preserved, sandbox B dashboard distinct, and sandbox A healthy after sandbox B destroy.. The main behavior depends on live Docker/OpenShell gateway orchestration, host ports, dashboard forwards, and sandbox cleanup. Static selector tests cover workflow dispatch wiring but cannot validate runtime coexistence, cleanup, and credential-boundary behavior.
  • **Runtime validation** — If NEMOCLAW_E2E_PHASE_TIMEOUT_MS remains configurable, verify or document its unit semantics so callers do not supply milliseconds that are then multiplied as seconds.. The main behavior depends on live Docker/OpenShell gateway orchestration, host ports, dashboard forwards, and sandbox cleanup. Static selector tests cover workflow dispatch wiring but cannot validate runtime coexistence, cleanup, and credential-boundary behavior.
  • **Acceptance clause:** Refs Epic: Migrate legacy bash E2E into the Vitest E2E system #5098 — add test evidence or identify existing coverage. The deterministic context did not include linked issue clauses or comments for Epic: Migrate legacy bash E2E into the Vitest E2E system #5098, so only the PR text references it.
  • **Acceptance clause:** Legacy assertion: onboard sandbox A on the default NemoClaw gateway port (`8080`) and default dashboard port (`18789`). — add test evidence or identify existing coverage. The Vitest test defaults GATEWAY_PORT_A to 8080 and DASHBOARD_PORT_A to 18789, onboards SANDBOX_A, waits for Ready/Running, checks nemoclaw list reports 18789, and probes the gateway port. The legacy pre-existing default sandbox cleanup is not preserved.
  • **Acceptance clause:** Original runner/lane: `nightly-e2e.yaml` job `concurrent-gateway-ports-e2e` via `e2e-script.yaml`, default `ubuntu-latest`, Docker/OpenShell, fake OpenAI-compatible endpoint, 30 minute reusable timeout. — add test evidence or identify existing coverage. The original nightly-e2e.yaml job still exists and runs test/e2e/test-concurrent-gateway-ports.sh on ubuntu-latest. The new workflow uses its own 90 minute timeout rather than the stated 30 minute reusable timeout.
Since last review details

Current findings:

  • Source-of-truth review needed: bestEffortCleanup() for NemoClaw/OpenShell sandboxes, forwards, and gateways: 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: bestEffortCleanup() contains broad catch { // best effort } blocks around NemoClaw destroy, OpenShell sandbox delete, forward stop, and gateway destroy.
  • Isolate and clean up Docker Hub auth in the new live job (.github/workflows/e2e-vitest-scenarios.yaml:1805): The added free-standing job logs into Docker Hub with repository secrets, then runs checked-out repository code to build the CLI, install OpenShell, and execute Vitest. Without an isolated DOCKER_CONFIG and cleanup/logout, Docker auth remains in the default runner config for later PR-code steps in the job.
    • Recommendation: Configure DOCKER_CONFIG under RUNNER_TEMP with restrictive permissions before docker login, avoid passing Docker credential env vars to installer/test steps unless required, and add an if: always() cleanup step that logs out and removes that directory.
    • Evidence: The added concurrent-gateway-ports-vitest job has an 'Authenticate to Docker Hub' step using DOCKERHUB_USERNAME/DOCKERHUB_TOKEN, followed by npm run build:cli, bash scripts/install-openshell.sh, and npx vitest; the added job does not set DOCKER_CONFIG or include Docker auth cleanup.
  • Validate env-derived ports before shell probing (test/e2e-scenario/live/concurrent-gateway-ports.test.ts:172): The live test reads port values from environment variables and interpolates the gateway port into a bash -lc string. The workflow does not expose these as dispatch inputs, so this is not a confirmed workflow-boundary exploit, but it is avoidable command-injection and test-integrity risk for local or otherwise externally configured runs.
    • Recommendation: Parse all port-like env vars with a strict integer/range validator before use, and avoid shell interpolation for the listening probe. Prefer spawning ss directly and inspecting stdout in TypeScript, or pass a validated port as a positional argument to a fixed shell script.
    • Evidence: GATEWAY_PORT_A, GATEWAY_PORT_B, DASHBOARD_PORT_A, and NEMOCLAW_E2E_FAKE_PORT are env-derived; expectPortListening() runs host.command('bash', ['-lc', `ss -ltn | grep -Eq '[:.]${port}\\b'`], ...).
  • Narrow or surface best-effort cleanup failures (test/e2e-scenario/live/concurrent-gateway-ports.test.ts:206): bestEffortCleanup() broadly suppresses failures while destroying NemoClaw sandboxes, deleting OpenShell sandboxes, stopping forwards, and destroying gateways. Cleanup-after-failure is reasonable for live E2E tests, but the current code does not distinguish known benign not-found/already-stopped states from unexpected cleanup defects, which can leave gateways, forwards, or sandboxes behind and make later runs less trustworthy.
    • Recommendation: Narrow ignored failures to expected benign outcomes or record unexpected cleanup failures in artifacts/logs while preserving the primary test failure. Document the partial lifecycle states this helper tolerates, the source boundary, and when the workaround can be removed.
    • Evidence: bestEffortCleanup() has multiple broad catch { // best effort } blocks around nemoclaw destroy, openshell sandbox delete, openshell forward stop, and openshell gateway destroy.
  • Preserve or intentionally drop legacy default-sandbox cleanup (test/e2e-scenario/live/concurrent-gateway-ports.test.ts:324): The legacy shell scenario removed an unrelated pre-existing default install sandbox before onboarding sandbox A. The new Vitest scenario only pre-cleans the two named test sandboxes, a fixed dashboard-forward range, and the two gateways. On a reused developer host or runner state with an unrelated default sandbox/forward, sandbox A may not deterministically receive dashboard port 18789 or list output may differ from the legacy contract.
    • Recommendation: Either carry over the legacy default-sandbox cleanup in a narrowly scoped way, or document why this Vitest lane cannot encounter that state and add coverage for the pre-existing-default-sandbox case.
    • Evidence: The new test calls await bestEffortCleanup(host, sandbox, gatewayA, gatewayB) before onboarding A, while test/e2e/test-concurrent-gateway-ports.sh has destroy_default_install_sandbox before Stage 1.

Workflow run details

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

@cv cv added v0.0.66 and removed v0.0.65 labels Jun 15, 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.

@github-code-quality

github-code-quality Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in the e2e-migrate/test-con... branch is 96%. Coverage data for the main branch is not yet available.

Show a code coverage summary of the most covered files.
File main e2e-migrate/test-con... 32e8100 +/-
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 e2e-migrate/test-con... branch is 46%. Coverage data for the main branch is not yet available.

Show a code coverage summary of the most covered files.
File main e2e-migrate/test-con... 32e8100 +/-
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/onboard...er-gpu-patch.ts 50%
src/lib/policy/index.ts 49%
src/lib/onboard.ts 18%

Updated June 18, 2026 01:30 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 — ✅ All jobs passed

Run: 27594971597
Workflow ref: e2e-migrate/test-concurrent-gateway-ports
Requested scenarios: (default — all supported)
Requested jobs: concurrent-gateway-ports-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
concurrent-gateway-ports-vitest ✅ success
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
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 05:02
…urrent-gateway-ports

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@cv
cv merged commit 71bd969 into main Jun 18, 2026
36 checks passed
@cv
cv deleted the e2e-migrate/test-concurrent-gateway-ports branch June 18, 2026 01:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: e2e End-to-end tests, nightly failures, or validation infrastructure chore Build, CI, dependency, or tooling maintenance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants