ci(e2e): retire legacy Brev source-install validation - #7632
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughThe PR retires generic Brev source-install validation, removes its workflow and Vitest integration, documents replacement coverage, and adds dashboard remote-bind execution and boundary validation to unified E2E. ChangesE2E coverage consolidation
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant Workflow as e2e.yaml
participant Test as dashboard-remote-bind.test.ts
participant CLI as nemoclaw/openshell
participant Artifacts as upload-e2e-artifacts
Workflow->>Test: Start dashboard-remote-bind E2E job
Test->>CLI: Clean sandbox and install prerequisites
Test->>CLI: Connect and run dashboard binding checks
Test->>Artifacts: Upload E2E artifacts
Possibly related issues
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
PR Review Advisor — No blocking findings reportedAdvisor assessment: No blocking advisor findings reported Model lanes
Nemotron output stays in workflow artifacts and does not change the assessment above. E2E guidanceAdvisory only. E2E / PR Gate selects and runs jobs independently. Recommended E2E: 1 optional E2E recommendation
1 warning · 0 suggestionsWarningsWarnings do not block.
|
<!-- markdownlint-disable MD041 --> ## Summary Unify internal and fork pull-request E2E authorization under one maintainer-only `approve-e2e` operation. This removes the protected-environment and approval-history machinery proposed in #7678 while preserving the existing dispatch integrity checks. ## Changes - Require current `maintain` or `admin` repository permission for every `approve-e2e` request. - Use the same authorization and dispatch path for internal and fork pull requests. - Remove the fork protected-environment job, approval-coordinate outputs, GraphQL approval-history parsing, and separate fork command mode. - Preserve exact pull request, head SHA, base SHA, plan, workflow revision, pending-check, and live-state validation. - Update maintainer guidance, E2E operational documentation, and workflow contract tests for the unified flow. - Ratchet the `shell-quote.ts` fan-in budget from 27 to 26 after the source-install path removed by #7632 reduced its consumers. ## 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: No user-facing product behavior changed; internal maintainer and E2E operational guidance was updated with the workflow. - [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: Local NemoClaw maintainer security review passed with no findings across all nine review categories. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Documentation Writer Review - [x] Documentation writer subagent reviewed the completed changes - Result: `docs-updated` - Evidence: `.agents/skills/nemoclaw-maintainer-day/MERGE-GATE.md` and `test/e2e/README.md` accurately document the unified maintainer-only approval flow; no Fern documentation change is needed. - Agent: Codex Desktop <!-- docs-review-head-sha: 9001231 --> <!-- docs-review-agents-blob-sha: 0082a58 --> ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: - Station profile/scenario: - Result: - Supporting evidence: ## Verification - [x] PR description includes a `Signed-off-by:` line 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 — command/result or justification: `npm exec -- vitest run --project integration test/pr-e2e-gate*.test.ts test/pr-e2e-required.test.ts test/maintainer-skills-policy.test.ts` — 16 files and 276 tests passed; focused fork-approval rerun — 19 tests passed. - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — command/result: `npm run check` was attempted; the focused architecture test passed, but the full host suite had 275 unrelated environment failures from missing Python `yaml`, an absent official OpenShell Homebrew formula, macOS `/private/tmp` path alias effects, and cascading timeouts. CI provides the authoritative Linux result. - [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: Julie Yaunches <jyaunches@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Consolidated PR E2E maintainer approval into a single `approve-e2e` workflow flow, with updated dispatch behavior. - Added/strengthened pre-approval validation for PR number, expected head/base SHAs, and review reason. - **Documentation** - Refined maintainer approval and fork approval guidance, including updated gate wording and authorization expectations. - **Bug Fixes** - Hardened the gate so approval credentials and sensitive approval outputs aren’t emitted until authorization requirements are satisfied. - **Tests** - Updated E2E gate and lifecycle tests to match the new `approve-e2e` flow and messages. - **Chores** - Minor workflow/tooling budget adjustment. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Summary Routine pull-request validation now uses the explicit `validate:pr` command, custom repository checks use `checks:repository`, and the broad baseline remains `check`. This PR replaces #7633 with signed, GitHub-verified commits because repository rules forbid repairing its unsigned published history. ## Related Issue Fixes #7550 ## Changes - Added canonical validation commands and non-breaking compatibility aliases. - Updated current hook, lint, contributor, skill, and pull-request-template terminology. - Extended the package-script contract to protect command scopes, file routing, and compatibility aliases. - Lowered the stale `src/lib/core/shell-quote.ts` fan-in budget from 27 to the measured value of 26. Merged PR #7632 reduced the fan-in, and the existing source-architecture check protects this limit. ## 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: - [ ] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [ ] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Documentation Writer Review - [x] Documentation writer subagent reviewed the completed changes - Result: `docs-updated` - Evidence: Contributor validation commands and fallback guidance are documented consistently, including the legacy `npm run checks` scope notice and refreshing `origin/main` before `npm run validate:pr`; focused contract tests, the actual legacy alias, repository checks, normal hooks, and the docs build passed. - Agent: Codex Desktop <!-- docs-review-head-sha: 9303fd6 --> <!-- docs-review-agents-blob-sha: d6ebb79 --> ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: Not applicable - Station profile/scenario: Not applicable - Result: Not applicable - Supporting evidence: Not applicable ## Verification - [x] PR description includes a `Signed-off-by:` line 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 exec -- vitest run test/pr-workflow-contract.test.ts` passed 21 tests; `npm run checks` printed the migration/scope notice and passed; repository checks, source-shape, and test-title validation passed. - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — local structural checks and plugin coverage passed; CLI coverage encountered unrelated host-environment and timeout failures, so CI remains authoritative. - [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: Remy the Refactoror <jmyaunch@gmail.com> Signed-off-by: Julie Yaunches <jyaunches@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a dedicated pull request validation command. * Added a separate repository checks command and clarified command routing for linting and legacy aliases. * **Documentation** * Updated contributor, maintainer, and verification guidance to use the standardized validation workflow. * Clarified the distinction between pull request validation, repository checks, and broader project checks. * **Tests** * Expanded validation coverage for command routing, compatibility aliases, and repository-check behavior. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Julie Yaunches <jyaunches@nvidia.com> Signed-off-by: Remy the Refactoror <jmyaunch@gmail.com>
<!-- markdownlint-disable MD041 --> ## Summary PR #7632 moved dashboard remote-bind coverage into unified E2E, but the target supplied `NEMOCLAW_DASHBOARD_BIND` only when reconnecting, after install and onboarding had generated loopback-only configuration. This change enforces the remote-bind opt-in in the target command environment so onboarding prepares remote exposure before `connect`. The first exact-head replay then reached `connect` and re-established the dashboard forward, but the test recognized only the older background-forward message. The test now accepts the current recovery proof before its existing forward-list assertions verify the actual all-interface bind. ## Changes - Add a dashboard remote-bind environment builder that preserves the sanitized fixture `PATH` and keeps `NEMOCLAW_DASHBOARD_BIND=0.0.0.0` fixed after command overlays. - Use the shared environment for both install/onboarding and reconnect so the generated configuration and forward request agree. - Recognize `Dashboard port forward re-established.` as proof when `connect` has no numeric exit code; the following assertions still require an actual forward for the sandbox and port bound to `0.0.0.0`. - Add fast E2E-support coverage for the required onboarding values, fixed remote-bind opt-in, and positive and negative connect-proof results. The helper serves only the `dashboard-remote-bind` live target; an install-only inline change would leave reconnect and future target commands free to drift. ## 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 changes only an internal live E2E target and its fast contract coverage; supported product behavior and user-facing configuration are unchanged. - [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: Reviewed the test-only environment boundary to confirm the all-interface bind remains confined to the explicitly opted-in `dashboard-remote-bind` target, command overlays cannot weaken it, secrets remain scoped to the install step, and no production path changes. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Documentation Writer Review - [x] Documentation writer subagent reviewed the completed changes - Result: `no-docs-needed` - Evidence: No documentation paths changed. Reviewed `test/e2e/live/dashboard-remote-bind.test.ts`, `test/e2e/live/dashboard-remote-bind-env.ts`, and `test/e2e/support/dashboard-remote-bind-env.test.ts` against the writing contract and controlled word list; final review approved with no findings. - Agent: Codex Desktop <!-- docs-review-head-sha: 6f999c4 --> <!-- docs-review-agents-blob-sha: c052d60 --> ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: - Station profile/scenario: - Result: - Supporting evidence: ## Verification - [x] PR description includes a `Signed-off-by:` line and every commit appears as `Verified` in GitHub - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or `npm run validate:pr` passed after refreshing `origin/main` when hooks were skipped or unavailable - [x] Targeted behavior tests pass for the current change set, or tests are marked not applicable above — focused E2E-support tests passed 4 tests; `npm run test:changed` passed 4 tests; Biome and `git diff --check` passed. - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — not applicable to this target-scoped live E2E environment fix. - [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: Julie Yaunches <jyaunches@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Improved remote dashboard setup so dashboard services consistently bind to all network interfaces when configured for remote access. - Sandbox setup now applies the selected sandbox name and supports forwarding optional inference credentials. - **Bug Fixes** - Prevented command-level environment overrides from unintentionally disabling remote dashboard exposure. - **Tests** - Added coverage for remote dashboard environment configuration, sandbox recreation, credential forwarding, and bind-address enforcement. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Summary
Retires the generic Brev source-install validation lane so Brev qualification uses exact-staging Launchable and platform-neutral coverage runs in unified E2E. Moves dashboard remote-bind coverage into unified E2E with an owned install, onboarding, artifact, and cleanup lifecycle.
Related Issue
Fixes #7490
Changes
fulluses exact-staging Launchable, six platform-neutral suites use unified E2E,gpuuses the dedicated unified GPU lane, andallis retired.Type of Change
Quality Gates
465cf5c18across all nine security categories. PASS with no findings; immutable actions, step-scoped and redacted secrets, explicit dashboard exposure, security-audit assertions, and terminal cleanup are preserved.465cf5c18. Localnpm run check:diffcompleted every applicable check exceptrepository-checks, which found unrelated stale base debt:src/lib/core/shell-quote.tsfan-in is 26 while its limit is 27. No PR change or follow-up is required for this issue-scoped change.Documentation Writer Review
docs-updated.agents/skills/nemoclaw-maintainer-verify-stale/reference/environment-and-reproducer.md,AGENTS.md,test/e2e/README.md,test/e2e/docs/README.md. No Fern page underdocs/is needed because the change concerns internal E2E ownership.DGX Station Hardware Evidence
scripts/prepare-dgx-station-host.shis unchanged.Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run check:diffpassed when hooks were skipped or unavailable — the installed pre-commit hook could not tag intentionally deleted files. The fallback passed all applicable checks except the unrelated stale source-architecture limit described above. Commitlint and all pre-push checks passed separately.e2e-support: 51 passed; affected integration tests: 99 passed;npm run typecheck:cli,npm run test:projects:check, andnpm run source-shape:checkpassed.npm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes — command/result: Not run; maintainer authorized merge without CI/CD completion.npm run docsbuilds without warnings (doc changes only)Signed-off-by: J. Yaunches jmyaunch@gmail.com
Signed-off-by: Julie Yaunches jyaunches@nvidia.com
Summary by CodeRabbit