test(e2e): make live Vitest execution state-safe - #6693
Conversation
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
|
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 (7)
📝 WalkthroughWalkthroughThe PR standardizes regression E2E workspace preparation, scopes Vitest environment overrides to non-live projects, serializes live E2E execution, rebuilds the CLI automatically, and adds workflow and command-order regression coverage. ChangesE2E execution and regression workflow standardization
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related issues
Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage remains at 96%, unchanged from the TypeScript / code-coverage/cliThe overall coverage in the Show a code coverage summary of the most impacted files.
Updated |
|
🌿 Preview your docs: https://nvidia-preview-pr-6693.docs.buildwithfern.com/nemoclaw |
E2E Advisor RecommendationRequired E2E: None Full advisor summaryE2E Recommendation AdvisorBase: Required E2E
Optional E2E
New E2E recommendations
|
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
PR Review Advisor — No blocking findingsMerge posture: No blocking advisor findings This is an automated review. Required findings need action before merge. Warnings and optional suggestions do not require a response or follow-up. A human maintainer makes the final merge decision. |
<!-- markdownlint-disable MD041 --> ## Summary Restores `npm run test:fast` as a clean source-backed lane that succeeds after `dist/` is removed. Compiled CLI contracts now stay in `package-contract`, and the import guard follows transitive module edges so compiled artifacts cannot re-enter a fast project through a helper or alias. ## Related Issue Part of #6692. Follows #6693, which has merged. ## Changes - Keep the live gateway-auth scenario's compiled launch and TLS dependencies at the live test entry while its reusable helper imports source. - Discover the command IDs and literal routing metadata needed by source tests without loading command modules; compiled consumers remain generated-manifest-only and fail closed when the manifest is absent. This source-only path is required because command-registry consumers initialize before command modules can be loaded safely, and `src/lib/cli/oclif-metadata.test.ts` protects that contract. - Move Oclif discovery and completion assertions that require built artifacts into `test/package-contract/`. - Traverse the exact fast-project roots through static imports, exports, dynamic imports, `require`, and `createRequire`; report deterministic shortest chains and reject aliases that resolve into root CLI build output while ignoring external package layouts. - Make the doctor flow fixture own its CLI-build prerequisite without depending on an existing `dist/` tree. - Keep compiled Oclif inspection branches in a named package-contract helper and record the live gateway-auth scenario's existing fast parity owner. ## Type of Change - [x] 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) ## Quality Gates - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [ ] Docs updated for user-facing behavior changes - [x] Docs not applicable — justification: this enforces the existing contributor contract documented in `CONTRIBUTING.md` and `AGENTS.md`; the required documentation-writer review found no user-facing change. - [x] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [x] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: the live auth scenario still receives compiled launch/TLS functions only from its live entry, and compiled CLI metadata remains generated-manifest-only with a fail-closed regression test. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Verification - [x] PR description includes the DCO sign-off declaration and every commit appears as `Verified` in GitHub - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or `npm run check:diff` passed when hooks were skipped or unavailable - [x] Targeted behavior tests pass for the current change set, or tests are marked not applicable above — `npm run test:fast -- --reporter=dot` (912 files, 9,759 passed, 1 skipped); `npm run test:package -- --reporter=dot` (19 files, 297 passed); boundary guard (34 passed); doctor flow (10 passed); mock-parity unit (6 passed); live-auth support (17 passed); import/project checks and CLI typecheck passed; the live auth test collected from rebuilt artifacts. - [x] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — the complete non-live project set passed in boundary-preserving lanes: `test:fast`, `test:integration` (488 files, 6,206 passed, 38 skipped), and `test:package`. - [x] Quality Gates section completed with required justifications or waivers - [x] No secrets, API keys, or credentials committed - [ ] `npm run docs` builds without warnings (doc changes only) - [ ] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [ ] New doc pages include SPDX header and frontmatter (new pages only) --- Signed-off-by: Carlos Villela <cvillela@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Improvements** - Command routing and completion metadata can be discovered from source without executing command code, with a unified loader and safer handling when the generated manifest is missing. - Expanded import-boundary violation reporting with transitive reachability analysis and an optional violation chain. - **Bug Fixes** - Strengthened detection of disallowed module-loading forms and improved safeguards to avoid unintentionally loading compiled internals. - Updated sandbox doctor flow mocking to align with runtime path resolution. - **Tests** - Added/updated contract and e2e suites, including a gateway scenario using injected TLS/launch helpers, new compiled-completion metadata coverage, and a fail-closed manifest check. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Carlos Villela <cvillela@nvidia.com>
## Summary Vitest project validation now compares every filesystem test candidate with Vitest's complete eight-project roster, rejecting omissions, overlaps, wrong routing, unexpected files, and unexpected project names. The shared credential-free E2E workflow now applies Vitest's native e2e/credential-free tag filter in addition to the existing safe matrix scanner. The dashboard-port regression fixture also uses a coherent fake OpenShell 0.0.72 component set and an OS-assigned gateway port so the repo-wide gate stays hermetic. This is the final entry in the ordered #6692 stack after #6693, #6696, #6697, #6699, #6700, #6701, #6702, and #6705 landed. ## Related Issue Closes #6692 ## Changes - Discover broad test/spec JavaScript and TypeScript candidates under src, test, and nemoclaw/src, including nested dist, coverage, and .venv paths that Vitest would see. - Compare candidate routing with Vitest file listings and the complete roster from list-tags JSON, including empty and opt-in projects. - Produce sorted diagnostics for zero membership, overlap, wrong project, unsupported candidates, unexpected listed files, and missing or extra projects. - Invoke Vitest portably through process.execPath and node_modules/vitest/vitest.mjs. - Require the exact native credential-free tag filter in the shared E2E workflow contract while retaining the TypeScript scanner's path, project, ID, and declaration checks. - Keep the dashboard-port exhaustion regression independent of port 8080, developer OpenShell overrides, channel selection, and network installation. ## Type of Change - [x] 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) ## Quality Gates - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [ ] Docs updated for user-facing behavior changes - [x] Docs not applicable — justification: these are contributor/test-harness safeguards; AGENTS.md now states the exhaustive project-membership contract, the E2E README already documents the native module tag, and the required documentation-writer review found no user-facing change. - [x] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [x] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: independent review covered the shared credential-free workflow and onboarding regression fixture; it confirmed the filter preserves the existing scanner and the fixture's child-only environment cannot reach a real OpenShell install. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Verification - [x] PR description includes the DCO sign-off declaration and every commit appears as Verified in GitHub - [x] Normal pre-commit, commit-msg, and pre-push hooks passed, or npm run check:diff passed when hooks were skipped or unavailable - [x] Targeted behavior tests pass for the current change set, or tests are marked not applicable above — 46 integration tests passed across the boundary and dashboard-port files; 4 E2E-support workflow tests passed; project membership is exact for 1,537 candidates across 8 projects; CLI type-check, title style, Biome, and diff checks passed. The fixture also passed with hostile inherited OpenShell paths and dev-channel selection. - [x] Applicable broad gate passed — npm test passed 1,456 files / 16,515 tests before the final focused hardening; npm run check passed the repo-wide structural, CLI coverage, and plugin coverage gates, followed by focused reruns and normal hooks after the final child-environment pin. - [x] Quality Gates section completed with required justifications or waivers - [x] No secrets, API keys, or credentials committed - [ ] 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> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Tests** - Credential-free end-to-end test runs now execute only tests matching the credential-free tag. - Vitest project validation now checks for missing, overlapping, unsupported, wrong, zero-membership, and unexpected test-to-project assignments, plus roster mismatches. - Expanded boundary tests cover test candidate discovery, expected project mapping, Vitest invocation resolution, and listing/roster parsing. - Improved onboarding “dashboard port exhaustion” assertions for more hermetic, reliable verification. - **Documentation** - Updated testing guidance to require Vitest project globs be disjoint and exhaustive, enforced by the projects check. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Carlos Villela <cvillela@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Summary Make live Vitest execution state-safe and restore four regression jobs that invoked Vitest without the repository's shared preparation. Live files now run serially against a clean CLI build, while the gateway-drift bypass remains limited to controlled non-live projects. ## Related Issue Part of NVIDIA#6692 ## Changes - Disable file-level parallelism for the stateful `e2e-live` project while retaining zero whole-test retries. - Scope the gateway-drift preflight bypass to the six controlled non-live projects so live and branch-validation runs exercise the real preflight. - Clean and rebuild the CLI before the aggregate live E2E command, with a behavior test that proves clean, build, and live-project ordering through stubbed command boundaries. - Prepare four regression jobs with the immutable shared E2E action, least-privilege checkout settings, and the correct Vitest project for gateway drift. - Document the aggregate live command's build, serialization, and retry behavior. ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [x] Code change with doc updates - [ ] Doc only (prose changes, no code sample modifications) - [ ] Doc only (includes code sample changes) ## Quality Gates - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [x] Docs updated for user-facing behavior changes - [ ] Docs not applicable — justification: - [x] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [x] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: focused review confirmed the bypass remains enabled for all six controlled non-live projects, is absent from both live projects, and does not change production preflight behavior; contract coverage is included in this PR and tracked by NVIDIA#6692. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Verification - [x] PR description includes the DCO sign-off declaration and every commit appears as `Verified` in GitHub - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or `npm run check:diff` passed when hooks were skipped or unavailable - [x] Targeted behavior tests pass for the current change set, or tests are marked not applicable above — `npx vitest run --project cli --project integration --project e2e-support src/lib/adapters/openshell/gateway-drift.test.ts test/e2e/support/e2e-live-project-config.test.ts test/regression-e2e-workflow.test.ts --silent=false --reporter=default` (38 passed); the final npm-script harness rerun passed 8/8 and `npm run source-shape:check` reported zero cases. - [x] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — `env -u SSH_CONNECTION -u SSH_CLIENT npm test -- --reporter=dot` (1,418 files and 16,255 tests passed; 2 files and 39 tests skipped). The SSH variables were removed because the host session otherwise activates the dashboard command's intentional SSH hint; its isolated non-SSH rerun passed 15/15. - [x] Quality Gates section completed with required justifications or waivers - [x] No secrets, API keys, or credentials committed - [ ] `npm run docs` builds without warnings (doc changes only) — passed with 0 errors; Fern reported 2 existing unprinted warnings - [x] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [ ] New doc pages include SPDX header and frontmatter (new pages only) --- Signed-off-by: Carlos Villela <cvillela@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a single command for live end-to-end testing that cleans and rebuilds the CLI automatically. * Standardized regression test environment preparation across supported test workflows. * Live end-to-end tests now run serially for improved reliability. * **Bug Fixes** * Corrected the drift preflight regression suite to run against the integration test project. * **Documentation** * Updated live end-to-end testing instructions to use the new aggregate command. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Carlos Villela <cvillela@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Summary Restores `npm run test:fast` as a clean source-backed lane that succeeds after `dist/` is removed. Compiled CLI contracts now stay in `package-contract`, and the import guard follows transitive module edges so compiled artifacts cannot re-enter a fast project through a helper or alias. ## Related Issue Part of NVIDIA#6692. Follows NVIDIA#6693, which has merged. ## Changes - Keep the live gateway-auth scenario's compiled launch and TLS dependencies at the live test entry while its reusable helper imports source. - Discover the command IDs and literal routing metadata needed by source tests without loading command modules; compiled consumers remain generated-manifest-only and fail closed when the manifest is absent. This source-only path is required because command-registry consumers initialize before command modules can be loaded safely, and `src/lib/cli/oclif-metadata.test.ts` protects that contract. - Move Oclif discovery and completion assertions that require built artifacts into `test/package-contract/`. - Traverse the exact fast-project roots through static imports, exports, dynamic imports, `require`, and `createRequire`; report deterministic shortest chains and reject aliases that resolve into root CLI build output while ignoring external package layouts. - Make the doctor flow fixture own its CLI-build prerequisite without depending on an existing `dist/` tree. - Keep compiled Oclif inspection branches in a named package-contract helper and record the live gateway-auth scenario's existing fast parity owner. ## Type of Change - [x] 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) ## Quality Gates - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [ ] Docs updated for user-facing behavior changes - [x] Docs not applicable — justification: this enforces the existing contributor contract documented in `CONTRIBUTING.md` and `AGENTS.md`; the required documentation-writer review found no user-facing change. - [x] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [x] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: the live auth scenario still receives compiled launch/TLS functions only from its live entry, and compiled CLI metadata remains generated-manifest-only with a fail-closed regression test. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Verification - [x] PR description includes the DCO sign-off declaration and every commit appears as `Verified` in GitHub - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or `npm run check:diff` passed when hooks were skipped or unavailable - [x] Targeted behavior tests pass for the current change set, or tests are marked not applicable above — `npm run test:fast -- --reporter=dot` (912 files, 9,759 passed, 1 skipped); `npm run test:package -- --reporter=dot` (19 files, 297 passed); boundary guard (34 passed); doctor flow (10 passed); mock-parity unit (6 passed); live-auth support (17 passed); import/project checks and CLI typecheck passed; the live auth test collected from rebuilt artifacts. - [x] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — the complete non-live project set passed in boundary-preserving lanes: `test:fast`, `test:integration` (488 files, 6,206 passed, 38 skipped), and `test:package`. - [x] Quality Gates section completed with required justifications or waivers - [x] No secrets, API keys, or credentials committed - [ ] `npm run docs` builds without warnings (doc changes only) - [ ] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [ ] New doc pages include SPDX header and frontmatter (new pages only) --- Signed-off-by: Carlos Villela <cvillela@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Improvements** - Command routing and completion metadata can be discovered from source without executing command code, with a unified loader and safer handling when the generated manifest is missing. - Expanded import-boundary violation reporting with transitive reachability analysis and an optional violation chain. - **Bug Fixes** - Strengthened detection of disallowed module-loading forms and improved safeguards to avoid unintentionally loading compiled internals. - Updated sandbox doctor flow mocking to align with runtime path resolution. - **Tests** - Added/updated contract and e2e suites, including a gateway scenario using injected TLS/launch helpers, new compiled-completion metadata coverage, and a fail-closed manifest check. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Carlos Villela <cvillela@nvidia.com>
…A#6707) ## Summary Vitest project validation now compares every filesystem test candidate with Vitest's complete eight-project roster, rejecting omissions, overlaps, wrong routing, unexpected files, and unexpected project names. The shared credential-free E2E workflow now applies Vitest's native e2e/credential-free tag filter in addition to the existing safe matrix scanner. The dashboard-port regression fixture also uses a coherent fake OpenShell 0.0.72 component set and an OS-assigned gateway port so the repo-wide gate stays hermetic. This is the final entry in the ordered NVIDIA#6692 stack after NVIDIA#6693, NVIDIA#6696, NVIDIA#6697, NVIDIA#6699, NVIDIA#6700, NVIDIA#6701, NVIDIA#6702, and NVIDIA#6705 landed. ## Related Issue Closes NVIDIA#6692 ## Changes - Discover broad test/spec JavaScript and TypeScript candidates under src, test, and nemoclaw/src, including nested dist, coverage, and .venv paths that Vitest would see. - Compare candidate routing with Vitest file listings and the complete roster from list-tags JSON, including empty and opt-in projects. - Produce sorted diagnostics for zero membership, overlap, wrong project, unsupported candidates, unexpected listed files, and missing or extra projects. - Invoke Vitest portably through process.execPath and node_modules/vitest/vitest.mjs. - Require the exact native credential-free tag filter in the shared E2E workflow contract while retaining the TypeScript scanner's path, project, ID, and declaration checks. - Keep the dashboard-port exhaustion regression independent of port 8080, developer OpenShell overrides, channel selection, and network installation. ## Type of Change - [x] 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) ## Quality Gates - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [ ] Docs updated for user-facing behavior changes - [x] Docs not applicable — justification: these are contributor/test-harness safeguards; AGENTS.md now states the exhaustive project-membership contract, the E2E README already documents the native module tag, and the required documentation-writer review found no user-facing change. - [x] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [x] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: independent review covered the shared credential-free workflow and onboarding regression fixture; it confirmed the filter preserves the existing scanner and the fixture's child-only environment cannot reach a real OpenShell install. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Verification - [x] PR description includes the DCO sign-off declaration and every commit appears as Verified in GitHub - [x] Normal pre-commit, commit-msg, and pre-push hooks passed, or npm run check:diff passed when hooks were skipped or unavailable - [x] Targeted behavior tests pass for the current change set, or tests are marked not applicable above — 46 integration tests passed across the boundary and dashboard-port files; 4 E2E-support workflow tests passed; project membership is exact for 1,537 candidates across 8 projects; CLI type-check, title style, Biome, and diff checks passed. The fixture also passed with hostile inherited OpenShell paths and dev-channel selection. - [x] Applicable broad gate passed — npm test passed 1,456 files / 16,515 tests before the final focused hardening; npm run check passed the repo-wide structural, CLI coverage, and plugin coverage gates, followed by focused reruns and normal hooks after the final child-environment pin. - [x] Quality Gates section completed with required justifications or waivers - [x] No secrets, API keys, or credentials committed - [ ] 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> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Tests** - Credential-free end-to-end test runs now execute only tests matching the credential-free tag. - Vitest project validation now checks for missing, overlapping, unsupported, wrong, zero-membership, and unexpected test-to-project assignments, plus roster mismatches. - Expanded boundary tests cover test candidate discovery, expected project mapping, Vitest invocation resolution, and listing/roster parsing. - Improved onboarding “dashboard port exhaustion” assertions for more hermetic, reliable verification. - **Documentation** - Updated testing guidance to require Vitest project globs be disjoint and exhaustive, enforced by the projects check. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Summary
Make live Vitest execution state-safe and restore four regression jobs that invoked Vitest without the repository's shared preparation. Live files now run serially against a clean CLI build, while the gateway-drift bypass remains limited to controlled non-live projects.
Related Issue
Part of #6692
Changes
e2e-liveproject while retaining zero whole-test retries.Type of Change
Quality Gates
Verification
Verifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run check:diffpassed when hooks were skipped or unavailablenpx vitest run --project cli --project integration --project e2e-support src/lib/adapters/openshell/gateway-drift.test.ts test/e2e/support/e2e-live-project-config.test.ts test/regression-e2e-workflow.test.ts --silent=false --reporter=default(38 passed); the final npm-script harness rerun passed 8/8 andnpm run source-shape:checkreported zero cases.npm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes —env -u SSH_CONNECTION -u SSH_CLIENT npm test -- --reporter=dot(1,418 files and 16,255 tests passed; 2 files and 39 tests skipped). The SSH variables were removed because the host session otherwise activates the dashboard command's intentional SSH hint; its isolated non-SSH rerun passed 15/15.npm run docsbuilds without warnings (doc changes only) — passed with 0 errors; Fern reported 2 existing unprinted warningsSigned-off-by: Carlos Villela cvillela@nvidia.com
Summary by CodeRabbit
New Features
Bug Fixes
Documentation