Skip to content

fix(e2e): align double-onboard stale-registry test with non-destructive status (#4578)#4635

Closed
hunglp6d wants to merge 1 commit into
NVIDIA:mainfrom
hunglp6d:fix/nightly-e2e-status-stale-reconcile-451f26f
Closed

fix(e2e): align double-onboard stale-registry test with non-destructive status (#4578)#4635
hunglp6d wants to merge 1 commit into
NVIDIA:mainfrom
hunglp6d:fix/nightly-e2e-status-stale-reconcile-451f26f

Conversation

@hunglp6d

@hunglp6d hunglp6d commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Summary

✨ [AI-generated PR]

The double-onboard-e2e nightly job failed at Phase 5 (Stale registry reconciliation) because the test expected nemoclaw status to reconcile stale registry entries, but commit 4f7ae09 (fix(status): preserve registry on missing live sandbox (#4578)) intentionally made status non-destructive — it now prints guidance instead of removing entries. This PR aligns the test with the new behavior: it first verifies the non-destructive status output, then triggers actual reconciliation via connect --probe-only (which still calls ensureLiveSandboxOrExit).

Related Issue

Fixes #4639

Changes

  • test/e2e/test-double-onboard.sh: Replace the single nemoclaw status reconciliation assertion with a two-step sequence:
    1. Verify status exits 1 and preserves the registry entry ("No local registry entry was removed")
    2. Trigger reconciliation via connect --probe-only and verify "Removed stale local registry entry"

Validation

A focused custom-e2e.yaml workflow was run on a sibling branch to confirm this fix repairs the regression. The workflow re-runs only the jobs from the original nightly that this PR targets, on ubuntu-latest, off the same fix commit as this PR.

The validation branch is intentionally not the head of this PR — it carries an extra .github/workflows/custom-e2e.yaml commit that is scaffolding, not part of the fix. Re-run the validation by pushing any commit to the validation branch.

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)

Verification

  • npx prek run --all-files passes
  • npm test passes
  • Tests added or updated for new or changed behavior
  • No secrets, API keys, or credentials committed
  • Docs updated for user-facing behavior changes

AI Disclosure

  • AI-assisted — tool: Claude Code

Signed-off-by: Hung Le hple@nvidia.com

…ve status (NVIDIA#4578)

Commit 4f7ae09 made `nemoclaw status` non-destructive: it no longer
removes stale local registry entries, keeping that cleanup in
active-use paths like `connect`.  The double-onboard E2E Phase 5 still
expected `nemoclaw status` to reconcile (remove) the stale entry.

Update the test to:
1. Verify that `status` preserves the registry entry and emits the
   new "No local registry entry was removed" guidance.
2. Trigger actual reconciliation via `connect --probe-only`, which
   calls ensureLiveSandboxOrExit and removes the stale entry.

Signed-off-by: Hung Le <hple@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Jun 2, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@coderabbitai

coderabbitai Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 5ac6e339-b147-4c3b-a924-b15435db8d6e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@sandl99

sandl99 commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Closing in favor of #4672, which carries the same diff on an upstream NVIDIA/NemoClaw branch so maintainers can dispatch E2E from the replacement PR.

@sandl99 sandl99 closed this Jun 2, 2026
cv added a commit that referenced this pull request Jun 3, 2026
…ve status (#4578) (#4672)

<!-- markdownlint-disable MD041 -->
## Summary

Replaces #4635 with the same diff on an upstream `NVIDIA/NemoClaw`
branch so maintainers can dispatch E2E from the replacement PR. The
`double-onboard-e2e` nightly job failed at Phase 5 because the test
expected `nemoclaw status` to reconcile stale registry entries, but
#4578 intentionally made `status` non-destructive. This PR aligns the
test with that behavior by verifying the non-destructive `status` output
first, then triggering actual reconciliation via `connect --probe-only`.

## Related Issue

Fixes #4639

## Changes

- `test/e2e/test-double-onboard.sh`: replace the single `nemoclaw
status` reconciliation assertion with a two-step sequence.
- Verify `status` exits 1 and preserves the registry entry with the "No
local registry entry was removed" guidance.
- Trigger reconciliation via `connect --probe-only` and verify "Removed
stale local registry entry" plus final registry cleanup.

## 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)

## Verification

- [ ] `npx prek run --all-files` passes
- [ ] `npm test` passes
- [x] Tests added or updated for new or changed behavior
- [x] No secrets, API keys, or credentials committed
- [ ] Docs updated for user-facing behavior changes

Note: local checks were not rerun for this replacement branch; it copies
#4635 unchanged. #4635 reported focused validation for
`double-onboard-e2e` on the same fix commit:
https://github.com/hunglp6d/NemoClaw/actions/runs/26792577152.

---
Signed-off-by: San Dang <sdang@nvidia.com>

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Improvements**
* Clarified that the status command is non-destructive and explicitly
reports when it does not remove local registry entries.
* Status and connect now intentionally preserve stale registry entries
unless destroyed.
* Cleanup now relies on the explicit destroy action to remove registry
entries.
* Tests updated to verify the non-destructive status message and to
avoid forcing reconciliation after teardown.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Hung Le <hple@nvidia.com>
Signed-off-by: San Dang <sdang@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Co-authored-by: Hung Le <hple@nvidia.com>
Co-authored-by: Carlos Villela <cvillela@nvidia.com>
@wscurran wscurran added the bug-fix PR fixes a bug or regression label Jun 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug-fix PR fixes a bug or regression

Projects

None yet

Development

Successfully merging this pull request may close these issues.

nightly-e2e: double-onboard-e2e stale-registry reconciliation misaligned with #4578 (run 26790528855)

3 participants