Skip to content

test(e2e): migrate channels add remove scenario#5355

Merged
cv merged 11 commits into
mainfrom
codex/5098-channels-add-remove
Jun 13, 2026
Merged

test(e2e): migrate channels add remove scenario#5355
cv merged 11 commits into
mainfrom
codex/5098-channels-add-remove

Conversation

@cv

@cv cv commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

Migrates the legacy test-channels-add-remove.sh scenario into a live Vitest test while preserving the Telegram add/remove lifecycle contract, sandbox rebuild boundaries, and soft egress-probe behavior. Adds a focused free-standing workflow job so the scenario can be dispatched independently from the E2E scenario matrix.

Related Issue

Related to #5098

Changes

  • Added test/e2e-scenario/live/channels-add-remove.test.ts for the OpenClaw Telegram channel add/remove flow, including registry, provider, policy, rebuild, and post-removal assertions.
  • Added the channels-add-remove-vitest free-standing workflow job and dispatch selector mapping for channels-add-remove.
  • Extended E2E workflow boundary/support tests to validate the new job contract and selectors.

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

  • npx prek run --all-files passes
  • npm test passes
  • 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)

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

Summary by CodeRabbit

  • Tests

    • Added live Vitest end-to-end coverage for Telegram channel add/remove (replaces prior script-based flow) with artifact capture and soft-skip behavior for inconclusive runs
    • Extended scenario dispatch selector tests to include the new channels add/remove scenario
    • Enhanced sandbox-detection patterns in test fixtures
  • Chores

    • Updated e2e GitHub Actions workflow to run the new Vitest scenario and report results in PR checks
    • Added workflow validators to enforce job requirements and artifact handling

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@cv cv self-assigned this 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.

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: None
Optional E2E: None

Workflow run

Full advisor summary

E2E Recommendation Advisor

Failed: Could not parse JSON from advisor output; see /home/runner/work/NemoClaw/NemoClaw/artifacts/e2e-advisor/e2e-advisor-raw-output.txt

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Recommendation

Required Vitest E2E scenarios: None
Optional Vitest E2E scenarios: None

Workflow run

Full Vitest E2E advisor summary

Vitest E2E Scenario Advisor

Failed: Could not parse JSON from advisor output; see /home/runner/work/NemoClaw/NemoClaw/artifacts/e2e-advisor/e2e-scenario-advisor-raw-output.txt

@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ❌ Some jobs failed

Run: 27436257859
Workflow ref: codex/5098-channels-add-remove
Requested scenarios: (default — all supported)
Requested jobs: channels-add-remove-vitest
Summary: 1 passed, 1 failed, 22 skipped

Job Result
channels-add-remove-vitest ❌ failure
credential-migration-vitest ⏭️ skipped
credential-sanitization-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ⏭️ skipped
inference-routing-vitest ⏭️ skipped
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ skipped
model-router-provider-routed-inference-vitest ⏭️ skipped
network-policy-vitest ⏭️ skipped
onboard-negative-paths-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
shields-config-vitest ⏭️ skipped
skill-agent-vitest ⏭️ skipped
token-rotation-vitest ⏭️ skipped

Failed jobs: channels-add-remove-vitest. Check run artifacts for logs.

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor

Findings: 0 needs attention, 1 worth checking, 0 nice ideas
Top item: PR review advisor unavailable

Review findings

🛠️ Needs attention

  • None.

🔎 Worth checking

  • PR review advisor unavailable: The automated advisor could not complete: Could not parse JSON from PR review advisor output; see /home/runner/work/NemoClaw/NemoClaw/artifacts/pr-review-advisor/pr-review-advisor-raw-output.txt
    • Recommendation: Re-run the PR Review Advisor or perform a manual review.
    • Evidence: Could not parse JSON from PR review advisor output; see /home/runner/work/NemoClaw/NemoClaw/artifacts/pr-review-advisor/pr-review-advisor-raw-output.txt

🌱 Nice ideas

  • None.
Consider writing more tests for
  • **Runtime validation** — Add or identify targeted runtime/integration validation for the changed behavior; do not report external E2E job pass/fail here.. Runtime/sandbox/infrastructure paths need behavioral runtime validation: .github/workflows/e2e-vitest-scenarios.yaml, tools/e2e-scenarios/workflow-boundary.mts.

Workflow run details

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

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

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It 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 reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds a Vitest live E2E scenario that exercises Telegram channel add→rebuild→probe→remove cycles, a GitHub Actions job to run it (with isolated Docker auth and artifact upload), workflow-boundary validation for the job, selector test coverage, and a small onboarding regex update.

Changes

Channels Add/Remove E2E Vitest Scenario

Layer / File(s) Summary
Live E2E Test: Telegram Channel Add/Remove
test/e2e-scenario/live/channels-add-remove.test.ts
Vitest-based destructive scenario validating Telegram channel add→rebuild→probe→remove cycles. Includes env construction (fake-token handling), registry read & messaging-plan validation, host-side messaging-plan assertions, sandbox/provider/preset checks, in-sandbox egress probe classification, and destructive pre/post cleanup.
GitHub Actions Workflow Job Definition
.github/workflows/e2e-vitest-scenarios.yaml
Adds channels-add-remove-vitest job with conditional run selectors, isolated DOCKER_CONFIG setup, Docker Hub login with anonymous-pull fallback, OpenShell install (with DOCKER_CONFIG unset), vitest execution of the scenario, artifact upload of scenario output, and post-run Docker logout + DOCKER_CONFIG cleanup; also wires job into report-to-pr needs.
Workflow Validation and Scenario Registration
tools/e2e-scenarios/workflow-boundary.mts, test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts, test/e2e-scenario/fixtures/phases/onboarding.ts
Adds validateChannelsAddRemoveVitestJob enforcing runner, timeout, selector gating, required envs, secret exposure constraints, required pinned steps and Docker auth patterns, and stable artifact upload config; wires the validator into the main boundary validator; extends dispatch selector tests to include channels-add-remove-vitest; updates onboarding fixture regex for "sandbox … does not exist".

Sequence Diagram(s)

sequenceDiagram
  participant TestRunner as Test Runner
  participant NemoClaw as nemoclaw CLI
  participant OpenClaw as OpenClaw registry
  participant Sandbox as Sandbox (OpenShell)
  participant TelegramAPI as api.telegram.org
  TestRunner->>NemoClaw: channels add telegram
  NemoClaw->>OpenClaw: update messaging plan / policy preset
  TestRunner->>Sandbox: wait for readiness / verify openclaw.json
  Sandbox->>TelegramAPI: egress probe (getMe)
  alt probe allowed
    TestRunner->>TestRunner: assert success
  else probe denied
    TestRunner->>TestRunner: fail test
  else probe inconclusive
    TestRunner->>TestRunner: write soft-skip artifact
  end
  TestRunner->>NemoClaw: channels remove telegram
  NemoClaw->>OpenClaw: remove messaging plan entries
  TestRunner->>Sandbox: cleanup
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • NVIDIA/NemoClaw#5370: Modifies the free-standing Vitest workflow boundary/selector machinery related to validator wiring used by this job.
  • NVIDIA/NemoClaw#5150: Adds a free-standing live Vitest scenario job and corresponding workflow-boundary validations similar to this PR.
  • NVIDIA/NemoClaw#5335: Enforces isolated DOCKER_CONFIG usage and Docker auth patterns applied here for the new job.

Suggested labels

area: e2e, area: onboarding, area: sandbox

Suggested reviewers

  • jyaunches
  • prekshivyas

Poem

🐰 A rabbit hops through channels new,
Adding Telegram to the test queue,
It spins up sandboxes, watches the probe,
Locks Docker auth in a tiny robe,
Then cleans the traces — hop, review!

🚥 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 title directly and accurately describes the primary change: migration of the channels add/remove scenario from a shell script to a Vitest test.
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 unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/5098-channels-add-remove

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

@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ❌ Some jobs failed

Run: 27437481385
Workflow ref: codex/5098-channels-add-remove
Requested scenarios: (default — all supported)
Requested jobs: channels-add-remove-vitest
Summary: 1 passed, 1 failed, 22 skipped

Job Result
channels-add-remove-vitest ❌ failure
credential-migration-vitest ⏭️ skipped
credential-sanitization-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ⏭️ skipped
inference-routing-vitest ⏭️ skipped
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ skipped
model-router-provider-routed-inference-vitest ⏭️ skipped
network-policy-vitest ⏭️ skipped
onboard-negative-paths-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
shields-config-vitest ⏭️ skipped
skill-agent-vitest ⏭️ skipped
token-rotation-vitest ⏭️ skipped

Failed jobs: channels-add-remove-vitest. Check run artifacts for logs.

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ✅ All jobs passed

Run: 27438223361
Workflow ref: codex/5098-channels-add-remove
Requested scenarios: (default — all supported)
Requested jobs: channels-add-remove-vitest
Summary: 2 passed, 0 failed, 22 skipped

Job Result
channels-add-remove-vitest ✅ success
credential-migration-vitest ⏭️ skipped
credential-sanitization-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ⏭️ skipped
inference-routing-vitest ⏭️ skipped
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ skipped
model-router-provider-routed-inference-vitest ⏭️ skipped
network-policy-vitest ⏭️ skipped
onboard-negative-paths-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
shields-config-vitest ⏭️ skipped
skill-agent-vitest ⏭️ skipped
token-rotation-vitest ⏭️ skipped

@cv cv marked this pull request as ready for review June 12, 2026 21: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

🧹 Nitpick comments (2)
tools/e2e-scenarios/workflow-boundary.mts (1)

1052-1186: 🔒 Security & Privacy | ⚡ Quick win

Lock the Docker-auth isolation contract in the new validator.

The workflow job isolates Docker credentials with a job-level DOCKER_CONFIG and an always-running cleanup step, but this validator never checks either. If either piece drifts later, the boundary tests will still pass while the job starts reusing or leaving behind Docker auth state on the runner. Add assertions for the DOCKER_CONFIG value and the Clean up Docker auth step (if: always(), docker logout, rm -rf "${DOCKER_CONFIG}").

🤖 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 `@tools/e2e-scenarios/workflow-boundary.mts` around lines 1052 - 1186, In
validateChannelsAddRemoveVitestJob ensure the job-level DOCKER_CONFIG isolation
and the cleanup step are asserted: check jobEnv.DOCKER_CONFIG equals the
expected job-local path (e.g. "${{ github.workspace }}/.docker-e2e" or the
project convention) and add a requireJobStep/assertion for the step named "Clean
up Docker auth" verifying it has if: "always()", that its run contains "docker
logout" and that its run removes the DOCKER_CONFIG directory (e.g. contains 'rm
-rf "${DOCKER_CONFIG}"'); update references in the function
validateChannelsAddRemoveVitestJob and to the step name "Clean up Docker auth"
and use existing helpers (requireJobStep, requireRunContains) to implement these
checks.
test/e2e-scenario/live/channels-add-remove.test.ts (1)

342-506: 📐 Maintainability & Code Quality | ⚡ Quick win

Split this scenario callback into phase helpers.

This block now owns destructive pre-cleanup, onboarding, add/rebuild assertions, egress classification, remove/rebuild assertions, and final state checks in one function. Extracting phase helpers would keep the JS/TS complexity in line with the repo rule and make failures much easier to localize. As per coding guidelines, "Keep function complexity low in JavaScript and TypeScript code."

🤖 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/channels-add-remove.test.ts` around lines 342 - 506,
The test callback is too large and should be split into phase helper functions:
extract the destructive pre-cleanup steps (the bestEffort cleanup and
pre-cleanup calls) into a preCleanup helper, the onboarding and initial
readiness/assertions (onboard.from, expectSandboxReady, expectProvider,
expectOpenClawTelegram, expectPolicyPreset) into an onboardPhase helper, the add
flow (host.nemoclaw channels add, expectHostTelegramConfig,
expectHostTelegramPlan, rebuild via host.nemoclaw rebuild,
lifecycle.assertSandboxReadyAfterRebuild,
expectPolicyPreset/expectOpenClawTelegram/expectProvider) into an addPhase
helper, the egress check (telegramEgressProbe and its denied/inconclusive
handling) into an egressPhase helper, and the remove flow (host.nemoclaw
channels remove, expectHostTelegramPlan, rebuild,
lifecycle.assertSandboxReadyAfterRebuild, final
expectOpenClawTelegram/expectProvider/expectPolicyPreset/expectHostTelegramPlan)
into a removePhase helper; then have the liveTest callback sequentially call
preCleanup, onboardPhase, addPhase, egressPhase, and removePhase, passing
required values (instance, SANDBOX_NAME, apiKey, secretsToRedact, artifacts,
sandbox, host, lifecycle) so each helper owns its assertions and artifact names
(use existing symbols like host.nemoclaw,
lifecycle.assertSandboxReadyAfterRebuild, telegramEgressProbe,
expectHostTelegramConfig, expectHostTelegramPlan to locate code to extract).

Source: Coding guidelines

🤖 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 `@test/e2e-scenario/live/channels-add-remove.test.ts`:
- Around line 239-257: The absence check in expectProvider is too loose—when
expected === "absent" only a non-zero exit code is asserted; instead verify the
specific "provider not found" response (or confirm via a provider list) to
ensure Telegram was actually removed: update expectProvider (which calls
host.command("openshell", ["provider", "get", PROVIDER_NAME], ...)) so that in
the "absent" branch you assert the command output (stdout/stderr via
resultText(result)) contains the known not-found message (or alternatively run
"openshell provider list" and assert PROVIDER_NAME is not present) rather than
accepting any non-zero exitCode. Ensure you reference PROVIDER_NAME and use the
same host.command/result/resultText utilities to locate and validate the correct
message.

---

Nitpick comments:
In `@test/e2e-scenario/live/channels-add-remove.test.ts`:
- Around line 342-506: The test callback is too large and should be split into
phase helper functions: extract the destructive pre-cleanup steps (the
bestEffort cleanup and pre-cleanup calls) into a preCleanup helper, the
onboarding and initial readiness/assertions (onboard.from, expectSandboxReady,
expectProvider, expectOpenClawTelegram, expectPolicyPreset) into an onboardPhase
helper, the add flow (host.nemoclaw channels add, expectHostTelegramConfig,
expectHostTelegramPlan, rebuild via host.nemoclaw rebuild,
lifecycle.assertSandboxReadyAfterRebuild,
expectPolicyPreset/expectOpenClawTelegram/expectProvider) into an addPhase
helper, the egress check (telegramEgressProbe and its denied/inconclusive
handling) into an egressPhase helper, and the remove flow (host.nemoclaw
channels remove, expectHostTelegramPlan, rebuild,
lifecycle.assertSandboxReadyAfterRebuild, final
expectOpenClawTelegram/expectProvider/expectPolicyPreset/expectHostTelegramPlan)
into a removePhase helper; then have the liveTest callback sequentially call
preCleanup, onboardPhase, addPhase, egressPhase, and removePhase, passing
required values (instance, SANDBOX_NAME, apiKey, secretsToRedact, artifacts,
sandbox, host, lifecycle) so each helper owns its assertions and artifact names
(use existing symbols like host.nemoclaw,
lifecycle.assertSandboxReadyAfterRebuild, telegramEgressProbe,
expectHostTelegramConfig, expectHostTelegramPlan to locate code to extract).

In `@tools/e2e-scenarios/workflow-boundary.mts`:
- Around line 1052-1186: In validateChannelsAddRemoveVitestJob ensure the
job-level DOCKER_CONFIG isolation and the cleanup step are asserted: check
jobEnv.DOCKER_CONFIG equals the expected job-local path (e.g. "${{
github.workspace }}/.docker-e2e" or the project convention) and add a
requireJobStep/assertion for the step named "Clean up Docker auth" verifying it
has if: "always()", that its run contains "docker logout" and that its run
removes the DOCKER_CONFIG directory (e.g. contains 'rm -rf "${DOCKER_CONFIG}"');
update references in the function validateChannelsAddRemoveVitestJob and to the
step name "Clean up Docker auth" and use existing helpers (requireJobStep,
requireRunContains) to implement these checks.
🪄 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: 69aafb52-5928-4eea-bda0-25a466b9e13d

📥 Commits

Reviewing files that changed from the base of the PR and between 0e30bff and 8bcc73c.

📒 Files selected for processing (6)
  • .github/workflows/e2e-vitest-scenarios.yaml
  • test/e2e-scenario/fixtures/phases/onboarding.ts
  • test/e2e-scenario/live/channels-add-remove.test.ts
  • test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts
  • tools/e2e-scenarios/free-standing-jobs.env
  • tools/e2e-scenarios/workflow-boundary.mts

Comment thread test/e2e-scenario/live/channels-add-remove.test.ts
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ❌ Some jobs failed

Run: 27444253651
Workflow ref: codex/5098-channels-add-remove
Requested scenarios: channels-add-remove
Requested jobs: (default — all free-standing when no scenarios are requested)
Summary: 1 passed, 1 failed, 22 skipped

Job Result
channels-add-remove-vitest ❌ failure
credential-migration-vitest ⏭️ skipped
credential-sanitization-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ⏭️ skipped
inference-routing-vitest ⏭️ skipped
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ skipped
model-router-provider-routed-inference-vitest ⏭️ skipped
network-policy-vitest ⏭️ skipped
onboard-negative-paths-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
shields-config-vitest ⏭️ skipped
skill-agent-vitest ⏭️ skipped
token-rotation-vitest ⏭️ skipped

Failed jobs: channels-add-remove-vitest. Check run artifacts for logs.

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ✅ All jobs passed

Run: 27444477479
Workflow ref: codex/5098-channels-add-remove
Requested scenarios: channels-add-remove
Requested jobs: (default — all free-standing when no scenarios are requested)
Summary: 2 passed, 0 failed, 22 skipped

Job Result
channels-add-remove-vitest ✅ success
credential-migration-vitest ⏭️ skipped
credential-sanitization-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ⏭️ skipped
inference-routing-vitest ⏭️ skipped
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ skipped
model-router-provider-routed-inference-vitest ⏭️ skipped
network-policy-vitest ⏭️ skipped
onboard-negative-paths-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
shields-config-vitest ⏭️ skipped
skill-agent-vitest ⏭️ skipped
token-rotation-vitest ⏭️ skipped

@cv cv added the v0.0.65 Release target label Jun 13, 2026
cv added 5 commits June 12, 2026 18:09
…dd-remove

# Conflicts:
#	.github/workflows/e2e-vitest-scenarios.yaml
#	test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts
#	tools/e2e-scenarios/workflow-boundary.mts
…dd-remove

# Conflicts:
#	.github/workflows/e2e-vitest-scenarios.yaml
#	test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts
#	tools/e2e-scenarios/workflow-boundary.mts
…dd-remove

# Conflicts:
#	.github/workflows/e2e-vitest-scenarios.yaml
#	test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts
#	tools/e2e-scenarios/workflow-boundary.mts
Comment thread tools/e2e-scenarios/workflow-boundary.mts Fixed
@cv cv merged commit d6ac694 into main Jun 13, 2026
38 checks passed
@cv cv deleted the codex/5098-channels-add-remove branch June 13, 2026 05:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

v0.0.65 Release target

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants