Skip to content

test(e2e): migrate test-hermes-root-entrypoint-smoke.sh to vitest [IND-4]#5220

Merged
jyaunches merged 17 commits into
mainfrom
e2e-migrate/test-hermes-root-entrypoint-smoke
Jun 12, 2026
Merged

test(e2e): migrate test-hermes-root-entrypoint-smoke.sh to vitest [IND-4]#5220
jyaunches merged 17 commits into
mainfrom
e2e-migrate/test-hermes-root-entrypoint-smoke

Conversation

@jyaunches

@jyaunches jyaunches commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Summary

Migrate test-hermes-root-entrypoint-smoke.sh with the simplest equivalent Vitest coverage.

Related Issues

Refs #5098

Contract mapping

  • Legacy assertion: clean Hermes root-entrypoint container builds/starts and reaches /health.
    • Replacement: test/e2e-scenario/live/hermes-root-entrypoint-smoke.test.ts clean-container variant.
    • Boundary preserved: real Docker image/container plus /usr/local/bin/nemoclaw-start.
  • Legacy assertion: Hermes gateway runs as the gateway user and startup logs privilege separation.
    • Replacement: Vitest assertGatewayProcess checks real container ps and /tmp/nemoclaw-start.log.
    • Boundary preserved: real container process table and entrypoint log.
  • Legacy assertion: gateway log is clean of PID race/config-load failures and Hermes v0.14 writable runtime layout exists.
    • Replacement: Vitest log/layout assertions against /tmp/gateway.log and /sandbox/.hermes.
    • Boundary preserved: real in-container filesystem and gosu gateway write/remove probes.
  • Legacy assertion: legacy gateway.pid symlink/runtime state is migrated before boot.
    • Replacement: Vitest legacy-layout container variant plus log assertion for symlink removal.
    • Boundary preserved: real Docker container bootstrapped through /bin/bash -lc then root entrypoint.

Simplicity check

  • Test shape: simple live Vitest test.
  • New shared helper: test/e2e-scenario/fixtures/docker-probe.ts centralizes the fixture-owned Docker env minimization and redacted artifact boundary for this smoke.
  • New framework/registry/ledger: none.
  • Workflow changes: sandbox-images-and-e2e.yaml now runs this smoke through Vitest against the prebuilt Hermes image; legacy shell deletion/nightly retirement deferred to Epic: Migrate legacy bash E2E into the Vitest E2E system #5098 Phase 11.

Verification

  • git diff --check
  • npx prek run --all-files --stage pre-push --skip tsc-plugin --skip tsc-js --skip tsc-cli --skip version-tag-sync --skip test-cli --skip test-plugin --skip source-shape-test-budget --skip test-file-size-budget --skip test-skills-yaml
  • npx vitest run --project e2e-vitest-support test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts test/e2e-scenario/support-tests/docker-probe.test.ts --silent=false --reporter=default
  • npx tsc --noEmit --skipLibCheck --module NodeNext --moduleResolution NodeNext --target ES2022 --types node,vitest --allowImportingTsExtensions tools/e2e-scenarios/workflow-boundary.mts test/e2e-scenario/live/hermes-root-entrypoint-smoke.test.ts test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts test/e2e-scenario/support-tests/docker-probe.test.ts test/e2e-scenario/fixtures/docker-probe.ts
  • NEMOCLAW_RUN_E2E_SCENARIOS=1 npx vitest run --project e2e-scenarios-live test/e2e-scenario/live/hermes-root-entrypoint-smoke.test.ts --silent=false --reporter=default (local Docker daemon unavailable, live body skipped with evidence)
  • npx vitest run test/e2e-script-workflow.test.ts
  • npm run build:cli && npm run typecheck:cli

Summary by CodeRabbit

  • Tests

    • Added a Hermes root-entrypoint end-to-end smoke test validating startup, privilege separation, legacy migration, filesystem protections, diagnostics on failure, and structured pass/fail artifacts.
  • Chores

    • CI: new optional Vitest job to run the smoke test (supports optional Docker auth with retries) and included in PR reporting.
    • CI: increased sandbox timeout to 30 minutes and now always uploads smoke artifacts with 14-day retention.
    • Workflow validators and selector logic updated to recognize and enforce the new job.

@coderabbitai

coderabbitai Bot commented Jun 11, 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 Docker-based Hermes root-entrypoint Vitest e2e smoke test and integrates it into CI: replaces the bash smoke step in the sandbox job with a Node/Vitest flow, adds a dedicated hermes-root-entrypoint-smoke-vitest workflow job and validation, and updates selector/matrix tests and workflow-boundary tooling.

Changes

Hermes Root-Entrypoint E2E Smoke Test & CI Integration

Layer / File(s) Summary
E2E smoke test implementation
test/e2e-scenario/live/hermes-root-entrypoint-smoke.test.ts
New Docker-based Vitest e2e smoke test: DockerProbe wrapper, image build/pull or inspect, clean and legacy container variants, health polling, gateway process/log and filesystem assertions, diagnostic dumps on failure, and scenario JSON outputs.
Sandbox image job update
.github/workflows/sandbox-images-and-e2e.yaml
Increases build-hermes-sandbox-image timeout; replaces bash smoke step with Node 22 setup, npm ci --ignore-scripts, a Vitest smoke run, and an if: always() upload of Vitest artifacts with 14-day retention.
Vitest scenarios workflow update
.github/workflows/e2e-vitest-scenarios.yaml
Adds hermes-root-entrypoint-smoke as a free-standing scenario (can yield empty matrix), expands validate-jobs allowlist, and introduces hermes-root-entrypoint-smoke-vitest job with conditional selector, optional Docker Hub auth with retries, Vitest run, artifact upload, and PR reporter wiring.
Workflow boundary tooling & selector tests
tools/e2e-scenarios/workflow-boundary.mts, test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts
Adds job-specific validator validateHermesRootEntrypointSmokeVitestJob, extends selector/matrix validation for the new free-standing scenario/job, and updates tests to assert selector validity and empty-matrix generation for this scenario.

Sequence Diagram(s)

sequenceDiagram
  participant TestHarness as E2E Test Harness
  participant DockerProbe as DockerProbe
  participant DockerDaemon as Docker Daemon
  participant CleanContainer as Clean Variant
  participant LegacyContainer as Legacy Variant

  TestHarness->>DockerProbe: requireDocker / docker info
  DockerProbe->>DockerDaemon: docker info
  TestHarness->>DockerProbe: build/pull images (docker build / image inspect)
  DockerProbe->>DockerDaemon: docker build / docker image inspect

  TestHarness->>DockerProbe: start CleanContainer (/usr/local/bin/nemoclaw-start)
  DockerProbe->>DockerDaemon: docker run
  DockerDaemon->>CleanContainer: container running

  TestHarness->>DockerProbe: start LegacyContainer (bootstrap stale pid/locks, then start)
  DockerProbe->>DockerDaemon: docker run /bin/bash (legacy setup)
  DockerDaemon->>LegacyContainer: container running

  TestHarness->>CleanContainer: poll GET /health
  CleanContainer->>TestHarness: health OK
  TestHarness->>LegacyContainer: poll GET /health
  LegacyContainer->>TestHarness: health OK

  TestHarness->>DockerProbe: inspect/logs/exec for assertions
  DockerProbe->>DockerDaemon: docker inspect / docker logs / docker exec
  TestHarness->>TestHarness: emit scenario.json and scenario-result.json
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

  • NVIDIA/NemoClaw#5243: Main PR’s addition of the hermes-root-entrypoint-smoke-vitest free-standing job and its validator hooks into the same selector/validation plumbing.
  • NVIDIA/NemoClaw#5229: Also modifies e2e-vitest-scenarios and tools/e2e-scenarios/workflow-boundary.mts to register new free-standing Vitest scenario jobs and adjust reporting wiring.
  • NVIDIA/NemoClaw#5219: Related edits extending workflow selector logic to add free-standing Vitest smoke jobs and integrate them into selector/matrix/report flows.

Suggested labels

area: ci, area: e2e

Suggested reviewers

  • cv

Poem

🐰 I hop through containers at the break of dawn,
I nudge stale PIDs until their shadows are gone,
Health checks hum, logs whisper, artifacts stored tight,
Legacy and clean both wake up into the light,
CI hums a lullaby — tests passed, code sleeps right.

🚥 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
Title check ✅ Passed The title accurately summarizes the main change: migrating a shell-based smoke test (test-hermes-root-entrypoint-smoke.sh) to Vitest, which is the core objective of the PR.
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 unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch e2e-migrate/test-hermes-root-entrypoint-smoke

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

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: hermes-root-entrypoint-smoke-vitest, sandbox-images-and-e2e / build-hermes-sandbox-image
Optional E2E: hermes-e2e-vitest

Dispatch hint: hermes-root-entrypoint-smoke-vitest

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • hermes-root-entrypoint-smoke-vitest (high; builds/probes Docker image unless a prebuilt Hermes image is supplied): Directly validates the newly added live Vitest job and Docker-based Hermes root-entrypoint migration path, including clean startup, legacy gateway.pid symlink repair, gateway privilege separation, and artifact capture.
  • sandbox-images-and-e2e / build-hermes-sandbox-image (high; Docker image build plus Hermes sandbox/root-entrypoint probes): Required because the reusable sandbox-image workflow now runs the Hermes root-entrypoint smoke through Vitest against the workflow-built image and still covers the Hermes sandbox secret boundary in the same job.

Optional E2E

  • hermes-e2e-vitest (high; live Hermes flow with provider credential requirements): Adjacent confidence for the broader Hermes assistant live flow and workflow report wiring, but the PR primarily changes the root-entrypoint smoke and CI boundary rather than Hermes user-facing inference behavior.

New E2E recommendations

  • None.

Dispatch hint

  • Workflow: .github/workflows/e2e-vitest-scenarios.yaml
  • jobs input: hermes-root-entrypoint-smoke-vitest

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Recommendation

Required Vitest E2E scenarios: hermes-root-entrypoint-smoke-vitest
Optional Vitest E2E scenarios: None

Dispatch required Vitest E2E scenarios:

  • gh workflow run e2e-vitest-scenarios.yaml --ref <pr-head-ref> --field jobs=hermes-root-entrypoint-smoke-vitest

Workflow run

Full Vitest E2E advisor summary

Vitest E2E Scenario Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required Vitest E2E scenarios

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

Optional Vitest E2E scenarios

  • None.

Relevant changed files

  • .github/workflows/e2e-vitest-scenarios.yaml
  • .github/workflows/sandbox-images-and-e2e.yaml
  • test/e2e-scenario/fixtures/docker-probe.ts
  • test/e2e-scenario/live/hermes-root-entrypoint-smoke.test.ts
  • test/e2e-scenario/support-tests/docker-probe.test.ts
  • test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts
  • tools/e2e-scenarios/workflow-boundary.mts

@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 `@test/e2e-scenario/live/hermes-root-entrypoint-smoke.test.ts`:
- Around line 264-275: The negative log assertions can false-pass if
/tmp/gateway.log is missing; update the expectContainerSh invocations so they
first assert the log file exists and fail if it does not, then run the negative
grep. Concretely, change the command strings passed to expectContainerSh (the
calls referencing probe, container and the messages about "PID file race lost"
and "Could not load config.yaml") to a compound shell command that checks test
-f /tmp/gateway.log (or [ -f /tmp/gateway.log ]) and exits non‑zero when
missing, then performs the ! grep -F '...' /tmp/gateway.log so absence of the
file causes the test to fail rather than silently pass.
🪄 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: 5229f8db-e75d-4a35-82f9-86751270bee9

📥 Commits

Reviewing files that changed from the base of the PR and between 6622476 and 3e3448a.

📒 Files selected for processing (2)
  • .github/workflows/sandbox-images-and-e2e.yaml
  • test/e2e-scenario/live/hermes-root-entrypoint-smoke.test.ts

Comment thread test/e2e-scenario/live/hermes-root-entrypoint-smoke.test.ts
@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor

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

Consider writing more tests for
  • **Runtime validation** — sandbox_images_hermes_root_entrypoint_vitest_uses_prebuilt_nemoclaw_hermes_production_and_does_not_rebuild. The PR already adds focused workflow-boundary, fixture, and live Docker coverage, and no blocking test gap was found. Because the changed surfaces are workflow trusted-code boundaries and sandbox image execution, behavior-specific runtime validation remains useful for confidence.
  • **Runtime validation** — workflow_boundary_rejects_missing_hermes_root_entrypoint_smoke_report_to_pr_need. The PR already adds focused workflow-boundary, fixture, and live Docker coverage, and no blocking test gap was found. Because the changed surfaces are workflow trusted-code boundaries and sandbox image execution, behavior-specific runtime validation remains useful for confidence.
  • **Runtime validation** — docker_probe_removes_isolated_docker_config_dir_after_test_cleanup. The PR already adds focused workflow-boundary, fixture, and live Docker coverage, and no blocking test gap was found. Because the changed surfaces are workflow trusted-code boundaries and sandbox image execution, behavior-specific runtime validation remains useful for confidence.
  • **Acceptance clause:** Refs Epic: Migrate legacy bash E2E into the Vitest E2E system #5098 — add test evidence or identify existing coverage. The deterministic context reported linkedIssues: [], so issue Epic: Migrate legacy bash E2E into the Vitest E2E system #5098 body/comments were unavailable for literal clause extraction. The PR body references Epic: Migrate legacy bash E2E into the Vitest E2E system #5098, but PR-provided prose is untrusted and cannot substitute for linked issue acceptance clauses.

Workflow run details

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

@jyaunches jyaunches changed the title test(e2e): migrate Hermes root entrypoint smoke Migrate test-hermes-root-entrypoint-smoke.sh to vitest Jun 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Selective E2E Results — ✅ All requested jobs passed

Run: 27349418414
Target ref: f00d47c4a86f78f6c562a7c8d605b1443babf441
Workflow ref: main
Requested jobs: hermes-root-entrypoint-smoke-e2e
Summary: 1 passed, 0 failed, 0 skipped

Job Result
hermes-root-entrypoint-smoke-e2e ✅ success

@jyaunches jyaunches changed the title Migrate test-hermes-root-entrypoint-smoke.sh to vitest test(e2e): migrate test-hermes-root-entrypoint-smoke.sh to vitest Jun 11, 2026
@jyaunches jyaunches changed the title test(e2e): migrate test-hermes-root-entrypoint-smoke.sh to vitest test(e2e): migrate Hermes root entrypoint smoke Jun 11, 2026
@jyaunches jyaunches changed the title test(e2e): migrate Hermes root entrypoint smoke test(e2e): migrate test-hermes-root-entrypoint-smoke.sh to vitest Jun 11, 2026
@jyaunches jyaunches changed the title test(e2e): migrate test-hermes-root-entrypoint-smoke.sh to vitest test(e2e): P2 independent 4 migrate test-hermes-root-entrypoint-smoke.sh to vitest Jun 11, 2026
@jyaunches jyaunches changed the title test(e2e): P2 independent 4 migrate test-hermes-root-entrypoint-smoke.sh to vitest test(e2e): migrate test-hermes-root-entrypoint-smoke.sh to vitest Jun 11, 2026
@jyaunches jyaunches changed the title test(e2e): migrate test-hermes-root-entrypoint-smoke.sh to vitest test(e2e): migrate test-hermes-root-entrypoint-smoke.sh to vitest [IND-4] Jun 11, 2026

@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 273-275: The hermes-root-entrypoint-smoke-vitest job currently
runs regardless of the matrix-generation outcome; update the job to depend on
and gate by the generate-matrix job by adding needs: generate-matrix and
extending its if condition to require needs.generate-matrix.result == 'success'
in addition to the existing scenarios check so the job only runs when matrix
generation succeeded.
🪄 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: 6b432862-9d3d-45ad-9457-0adcd297848c

📥 Commits

Reviewing files that changed from the base of the PR and between 3e3448a and da55fed.

📒 Files selected for processing (1)
  • .github/workflows/e2e-vitest-scenarios.yaml

Comment thread .github/workflows/e2e-vitest-scenarios.yaml
@cv cv added the v0.0.64 Release target label Jun 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ✅ All jobs passed

Run: 27377301547
Workflow ref: e2e-migrate/test-hermes-root-entrypoint-smoke
Requested scenarios: (default — all supported)
Requested jobs: hermes-root-entrypoint-smoke-vitest
Summary: 3 passed, 0 failed, 5 skipped

Job Result
gateway-guard-recovery ⏭️ skipped
generate-matrix ✅ success
hermes-root-entrypoint-smoke-vitest ✅ success
live-scenarios ⏭️ skipped
onboard-negative-paths-vitest ⏭️ skipped
openclaw-tui-chat-correlation-vitest ⏭️ skipped
openshell-version-pin-vitest ⏭️ skipped
validate-jobs ✅ success

…es-root-entrypoint-smoke

# Conflicts:
#	.github/workflows/e2e-vitest-scenarios.yaml
@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ✅ All jobs passed

Run: 27386801354
Workflow ref: e2e-migrate/test-hermes-root-entrypoint-smoke
Requested scenarios: (default — all supported)
Requested jobs: hermes-root-entrypoint-smoke-vitest
Summary: 3 passed, 0 failed, 14 skipped

Job Result
credential-migration-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ✅ success
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ 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
token-rotation-vitest ⏭️ skipped
validate-jobs ✅ success

@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 1274-1293: The PR added hermes-root-entrypoint-smoke-vitest to
report-to-pr.needs but the workflow-boundary validator's required set wasn't
updated; edit the validator (the required-needs array in workflow-boundary.mts)
to include "hermes-root-entrypoint-smoke-vitest" so the validator enforces that
this job remains in report-to-pr.needs; ensure the string matches exactly the
entry added in the workflow and run the validator tests to confirm.
🪄 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: ddc7fbf4-4d33-46f2-a013-f56c0485d43e

📥 Commits

Reviewing files that changed from the base of the PR and between da55fed and f0d7eb4.

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

@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.

Caution

Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

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 1274-1293: The PR added hermes-root-entrypoint-smoke-vitest to
report-to-pr.needs but the workflow-boundary validator's required set wasn't
updated; edit the validator (the required-needs array in workflow-boundary.mts)
to include "hermes-root-entrypoint-smoke-vitest" so the validator enforces that
this job remains in report-to-pr.needs; ensure the string matches exactly the
entry added in the workflow and run the validator tests to confirm.
🪄 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: ddc7fbf4-4d33-46f2-a013-f56c0485d43e

📥 Commits

Reviewing files that changed from the base of the PR and between da55fed and f0d7eb4.

📒 Files selected for processing (2)
  • .github/workflows/e2e-vitest-scenarios.yaml
  • test/e2e-scenario/live/hermes-root-entrypoint-smoke.test.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • test/e2e-scenario/live/hermes-root-entrypoint-smoke.test.ts
🛑 Comments failed to post (1)
.github/workflows/e2e-vitest-scenarios.yaml (1)

1274-1293: 🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win

Keep the workflow-boundary validator in sync with this new report-to-pr dependency.

Line 1284 adds hermes-root-entrypoint-smoke-vitest to report-to-pr.needs, but tools/e2e-scenarios/workflow-boundary.mts:1349-1384 still enforces the older required set. That leaves this new reporting dependency unprotected by the boundary check, so a later edit could drop the Hermes smoke result from PR comments without any contract failure. Please update the validator list in the same change.

🤖 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 @.github/workflows/e2e-vitest-scenarios.yaml around lines 1274 - 1293, The PR
added hermes-root-entrypoint-smoke-vitest to report-to-pr.needs but the
workflow-boundary validator's required set wasn't updated; edit the validator
(the required-needs array in workflow-boundary.mts) to include
"hermes-root-entrypoint-smoke-vitest" so the validator enforces that this job
remains in report-to-pr.needs; ensure the string matches exactly the entry added
in the workflow and run the validator tests to confirm.

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ✅ All jobs passed

Run: 27387740191
Workflow ref: e2e-migrate/test-hermes-root-entrypoint-smoke
Requested scenarios: (default — all supported)
Requested jobs: hermes-root-entrypoint-smoke-vitest
Summary: 3 passed, 0 failed, 14 skipped

Job Result
credential-migration-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ✅ success
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ 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
token-rotation-vitest ⏭️ skipped
validate-jobs ✅ success

…es-root-entrypoint-smoke

# Conflicts:
#	.github/workflows/e2e-vitest-scenarios.yaml
@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ✅ All jobs passed

Run: 27391322176
Workflow ref: e2e-migrate/test-hermes-root-entrypoint-smoke
Requested scenarios: (default — all supported)
Requested jobs: hermes-root-entrypoint-smoke-vitest
Summary: 3 passed, 0 failed, 15 skipped

Job Result
credential-migration-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ✅ success
inference-routing-vitest ⏭️ skipped
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ 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
token-rotation-vitest ⏭️ skipped
validate-jobs ✅ success

@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ✅ All jobs passed

Run: 27394270320
Workflow ref: e2e-migrate/test-hermes-root-entrypoint-smoke
Requested scenarios: (default — all supported)
Requested jobs: hermes-root-entrypoint-smoke-vitest
Summary: 3 passed, 0 failed, 15 skipped

Job Result
credential-migration-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ✅ success
inference-routing-vitest ⏭️ skipped
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ 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
token-rotation-vitest ⏭️ skipped
validate-jobs ✅ success

@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ✅ All jobs passed

Run: 27395432796
Workflow ref: e2e-migrate/test-hermes-root-entrypoint-smoke
Requested scenarios: (default — all supported)
Requested jobs: hermes-root-entrypoint-smoke-vitest
Summary: 3 passed, 0 failed, 15 skipped

Job Result
credential-migration-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ✅ success
inference-routing-vitest ⏭️ skipped
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ 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
token-rotation-vitest ⏭️ skipped
validate-jobs ✅ success

@cv cv added v0.0.65 Release target and removed v0.0.64 Release target labels Jun 12, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ✅ All jobs passed

Run: 27401749544
Workflow ref: e2e-migrate/test-hermes-root-entrypoint-smoke
Requested scenarios: (default — all supported)
Requested jobs: hermes-root-entrypoint-smoke-vitest
Summary: 3 passed, 0 failed, 15 skipped

Job Result
credential-migration-vitest ⏭️ skipped
double-onboard-vitest ⏭️ skipped
gateway-guard-recovery ⏭️ skipped
generate-matrix ✅ success
hermes-e2e-vitest ⏭️ skipped
hermes-root-entrypoint-smoke-vitest ✅ success
inference-routing-vitest ⏭️ skipped
issue-4434-tui-unreachable-inference-vitest ⏭️ skipped
launchable-smoke-vitest ⏭️ skipped
live-scenarios ⏭️ 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
token-rotation-vitest ⏭️ skipped
validate-jobs ✅ success

@jyaunches jyaunches merged commit baad223 into main Jun 12, 2026
57 checks passed
@jyaunches jyaunches deleted the e2e-migrate/test-hermes-root-entrypoint-smoke branch June 12, 2026 12:11
@wscurran wscurran added area: ci CI workflows, checks, release automation, or GitHub Actions area: e2e End-to-end tests, nightly failures, or validation infrastructure chore Build, CI, dependency, or tooling maintenance integration: hermes Hermes integration behavior labels Jun 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ci CI workflows, checks, release automation, or GitHub Actions area: e2e End-to-end tests, nightly failures, or validation infrastructure chore Build, CI, dependency, or tooling maintenance integration: hermes Hermes integration behavior v0.0.65 Release target

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants