test(e2e): add onboard inference smoke guard for #3253#3595
Conversation
|
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:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (2)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughWalkthroughAdds a gated regression job ChangesOnboard inference setup error handling E2E test
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
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 Dispatch hint: Full advisor summaryE2E Recommendation AdvisorBase: Required E2E
Optional E2E
New E2E recommendations
Dispatch hint
|
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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 `@ACCEPTANCE.md`:
- Line 1: The top-level heading uses H2 ("## Definition of Done — E2E Regression
Guard") which violates MD041; change it to an H1 by replacing the leading "##"
with "#" so the document starts with "# Definition of Done — E2E Regression
Guard" to satisfy markdownlint.
- Around line 7-8: Remove the emoji from the technical acceptance bullet lines
by replacing "🔴 RED" and "🟢 GREEN" with plain text "RED" and "GREEN"
respectively (update the two lines that currently read "🔴 RED on
main-equivalent unfixed code: ..." and "🟢 GREEN on the fix branch: pending");
also scan other bullets in ACCEPTANCE.md for any remaining emoji in technical
prose and convert them to plain text markers to comply with the "No emoji in
technical prose" guideline.
🪄 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: f5d6fe31-5652-4ef9-a6a2-ba18e2da2fb7
📒 Files selected for processing (3)
.github/workflows/regression-e2e.yamlACCEPTANCE.mdtest/e2e/test-onboard-inference-smoke.sh
…ference-smoke-test # Conflicts: # test/e2e/docs/parity-inventory.generated.json
…ference-smoke-test # Conflicts: # test/e2e/docs/parity-inventory.generated.json
Removes leftover /vd_spec workflow artifact committed by PR #3595.\n\nChecked recent open and merged PRs for root spec artifacts (ACCEPTANCE.md and related vd_spec-style files); only ACCEPTANCE.md was present on main. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Removed outdated acceptance criteria documentation to streamline and maintain documentation clarity for users. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Summary Fixes #3253 by adding a post-route onboard inference smoke check before setup reports success. After `openshell inference set` and route verification, OpenAI-compatible onboard providers now run a one-shot chat completions probe against the configured endpoint/model. If the probe fails, onboard exits before the success summary and prints actionable diagnostics: provider, model, API base, credential env, and upstream probe error. ## Validation - `npm run build:cli` - `bash test/e2e/test-onboard-inference-smoke.sh` - `npm test -- --run test/onboard.test.ts` ## Regression guard Guard PR #3595 is merged. The fix is complete when this branch flips `onboard-inference-smoke-e2e` green: ```bash gh workflow run regression-e2e.yaml --repo NVIDIA/NemoClaw -f jobs=onboard-inference-smoke-e2e --ref fix-3253-onboard-inference-smoke ``` Related: #3253, #3595 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added an extra onboard inference smoke check during startup to validate configured inference endpoints and credentials. * Introduced lightweight probing that resolves credentials, skips probes during test runs, logs redacted error context on failure, and stops startup if verification fails. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/NVIDIA/NemoClaw/pull/3603) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Summary
Adds a failing-test-first regression guard for #3253.
onboard-inference-smoke-e2easserts that onboard must not accept a provider/model route that is merely configured but cannot serve a real chat completion. The test simulates a configured OpenShell inference route whose runtime/chat/completionspath would return HTTP 503.Expected status
This guard is expected to fail on unfixed main-equivalent code. That is intentional: it is the executable acceptance criterion for the #3253 fix.
Expected failure fragment on unfixed code:
Workflow
onboard-inference-smoke-e2e.github/workflows/regression-e2e.yamlThis job is not scheduled nightly. Promotion to nightly should be an explicit later decision after the fix lands and the guard is stable.
Related: #3253
Summary by CodeRabbit
Tests
Documentation
Chores