Skip to content

ci(e2e): retire legacy Brev source-install validation - #7632

Merged
jyaunches merged 3 commits into
mainfrom
codex/issue-7490-brev-retirement
Jul 29, 2026
Merged

ci(e2e): retire legacy Brev source-install validation#7632
jyaunches merged 3 commits into
mainfrom
codex/issue-7490-brev-retirement

Conversation

@jyaunches

@jyaunches jyaunches commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

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

  • Remove the legacy reusable Brev workflow, nightly caller, Vitest project, remote runner, helpers, tests, and configuration.
  • Run dashboard remote-bind on the unified Ubuntu E2E runner with step-scoped inference credentials, redaction, and terminal cleanup.
  • Document the disposition of all eight legacy selectors: full uses exact-staging Launchable, six platform-neutral suites use unified E2E, gpu uses the dedicated unified GPU lane, and all is retired.
  • Update workflow contracts, project-boundary checks, source-shape budgets, and contributor test documentation for the seven remaining Vitest projects.

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)

Quality Gates

  • Tests added or updated for changed behavior
  • Existing tests cover changed behavior — justification:
  • Tests not applicable — justification:
  • Docs updated for user-facing behavior changes
  • Docs not applicable — justification: This changes internal CI and test ownership, not supported product behavior or configuration. Internal E2E and contributor guidance is updated.
  • 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: Codex Desktop reviewed head 465cf5c18 across 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.
  • Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: The maintainer authorized merge without CI/CD success for head 465cf5c18. Local npm run check:diff completed every applicable check except repository-checks, which found unrelated stale base debt: src/lib/core/shell-quote.ts fan-in is 26 while its limit is 27. No PR change or follow-up is required for this issue-scoped change.

Documentation Writer Review

  • Documentation writer subagent reviewed the completed changes
  • Result: docs-updated
  • Evidence: .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 under docs/ is needed because the change concerns internal E2E ownership.
  • Agent: Codex Desktop

DGX Station Hardware Evidence

  • Tested on DGX Station
  • Tested commit: Not applicable; scripts/prepare-dgx-station-host.sh is unchanged.
  • Station profile/scenario: Not applicable.
  • Result: Not applicable.
  • Supporting evidence: Not applicable.

Verification

  • PR description includes a Signed-off-by: line and every commit appears as Verified in GitHub
  • Normal pre-commit, commit-msg, and pre-push hooks passed, or npm run check:diff passed 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.
  • Targeted behavior tests pass for the current change set, or tests are marked not applicable above — changed e2e-support: 51 passed; affected integration tests: 99 passed; npm run typecheck:cli, npm run test:projects:check, and npm run source-shape:check passed.
  • Applicable broad gate passed — npm test for broad runtime/test-harness changes; npm run check for repo-wide validation/coverage changes — command/result: Not run; maintainer authorized merge without CI/CD completion.
  • Quality Gates section completed with required justifications or waivers
  • 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: J. Yaunches jmyaunch@gmail.com
Signed-off-by: Julie Yaunches jyaunches@nvidia.com

Summary by CodeRabbit

  • New Features
    • Added live end-to-end coverage for dashboard remote binding, including connection flow, cleanup tracking, and audit validation.
    • Included dashboard remote-binding results in pull-request E2E reporting.
  • Documentation
    • Updated E2E CI workflow documentation with hosted-runner recovery behavior, baked-candidate validation details, and retirement guidance for Brev source-install coverage.
  • Testing
    • Added workflow contract safeguards to ensure the dashboard remote-binding job is correctly configured and receives required credentials.
  • Chores
    • Retired the previous branch-validation Brev workflow/test lane from CI and related checks.

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: d55bcdb8-69c7-4669-bb8a-94b2c64bc4ac

📥 Commits

Reviewing files that changed from the base of the PR and between c57cfcc and 465cf5c.

📒 Files selected for processing (4)
  • .github/workflows/e2e.yaml
  • .github/workflows/regression-e2e.yaml
  • ci/source-shape-test-budget.json
  • scripts/checks/vitest-project-overlap.mts

📝 Walkthrough

Walkthrough

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

Changes

E2E coverage consolidation

Layer / File(s) Summary
Retire legacy Brev validation
.github/workflows/e2e-branch-validation.yaml, vitest.config.ts, test/e2e/..., test/*
Removes the generic Brev validation workflow, project gating, related tests, regression coverage, support code, and obsolete project expectations.
Integrate dashboard remote-bind E2E
.github/workflows/e2e.yaml, .github/workflows/regression-e2e.yaml, test/e2e/live/dashboard-remote-bind.test.ts, tools/e2e/workflow-boundary.mts, test/e2e/support/e2e-workflow.test.ts
Adds unified dashboard remote-bind execution, environment setup, cleanup, artifact upload, CLI checks, selection changes, and workflow contract validation.
Update coverage documentation and checks
test/e2e/README.md, test/e2e/docs/README.md, AGENTS.md, ci/source-shape-test-budget.json, test/runner.test.ts
Documents retired Brev coverage and baked-candidate boundaries, removes obsolete test-shape exceptions, updates testing guidance, and verifies Jetson script executability.

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
Loading

Possibly related issues

Possibly related PRs

Suggested reviewers: cv, apurvvkumaria, ericksoa

🚥 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 It clearly summarizes the main change: retiring legacy Brev source-install validation.
Linked Issues check ✅ Passed The legacy Brev source-install lane is removed, dashboard remote-bind is moved to unified E2E, and related runners, tests, config, and docs are updated.
Out of Scope Changes check ✅ Passed The changes stay focused on retiring or migrating the Brev E2E lane; no unrelated feature work stands out.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Fix failing CI checks
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/issue-7490-brev-retirement

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

@github-code-quality

github-code-quality Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in commit 465cf5c in the codex/issue-7490-bre... branch remains at 96%, unchanged from commit 2734a4b in the main branch.


Updated July 29, 2026 15:42 UTC

@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — No blocking findings reported

Advisor assessment: No blocking advisor findings reported
Next action: Review the warnings below.
Findings: 0 blockers · 1 warning · 0 suggestions

Model lanes

  • GPT-5.6 Terra (primary): Completed · high confidence · 0 blockers · 1 warning · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Failed

Nemotron output stays in workflow artifacts and does not change the assessment above.

E2E guidance

Advisory only. E2E / PR Gate selects and runs jobs independently.

Recommended E2E: cloud-inference, cloud-onboard, security-posture, onboard-repair, onboard-resume

1 optional E2E recommendation
  • gpu-e2e
1 warning · 0 suggestions

Warnings

Warnings do not block.

PRA-1 Warning — Document the actual credential-sanitization replacement

  • Location: test/e2e/README.md:61
  • Category: docs
  • Problem: The retired Brev coverage table names `credential-sanitization` as a Unified E2E owner, but no supported `e2e.yaml` job has that ID. The checked-in compatibility helper routes this retired selector to a CLI test instead.
  • Impact: Operators following the migration map can select a nonexistent E2E job and cannot identify the test that now covers credential sanitization.
  • Recommendation: Replace the table row with the retired-selector compatibility disposition and the CLI replacement test, or add the intended supported Unified E2E job if that is the current contract.
  • Verification: Compare the table row with `REPLACEMENTS["credential-sanitization"]` in `tools/e2e/retired-selector-compatibility.mts` and the E2E workflow job inventory.
  • Test coverage: Add a documentation-contract test that verifies each retired Brev coverage-table owner either exists in the supported E2E inventory or matches the retired-selector replacement map.
  • Evidence: test/e2e/README.md:61 lists `credential-sanitization` as Unified E2E with owner `credential-sanitization`. tools/e2e/retired-selector-compatibility.mts:50-57 maps the retired selector to `src/lib/security/credential-filter-secret-patterns.test.ts` in the `cli` project. The checked-in E2E job inventory does not include `credential-sanitization`.

Workflow run details

This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge.

@cjagwani cjagwani added v0.0.98 and removed v0.0.97 labels Jul 28, 2026
@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 labels Jul 28, 2026
@jyaunches
jyaunches enabled auto-merge (squash) July 29, 2026 15:24
@jyaunches
jyaunches merged commit 3aea38c into main Jul 29, 2026
62 of 71 checks passed
@jyaunches
jyaunches deleted the codex/issue-7490-brev-retirement branch July 29, 2026 15:45
jyaunches added a commit that referenced this pull request Jul 29, 2026
<!-- 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>
jyaunches added a commit that referenced this pull request Jul 29, 2026
<!-- 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>
jyaunches added a commit that referenced this pull request Jul 29, 2026
<!-- 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>
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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ci(e2e): migrate or retire legacy Brev source-install validation

4 participants