fix(e2e): restore shared CLI artifact boundaries - #8333
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:
📝 WalkthroughWalkthroughThe E2E CLI artifact now packages ChangesCLI artifact boundary flow
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in commit 456b7dd in the TypeScript / code-coverage/cliThe overall coverage in commit 456b7dd in the Show a code coverage summary of the most impacted files.
Updated |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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 @.github/actions/restore-e2e-cli-artifact/action.yaml:
- Around line 161-182: Reject a symlinked or non-directory nemoclaw parent
before restoring the artifact: in
.github/actions/restore-e2e-cli-artifact/action.yaml, validate the parent itself
before extraction and mv. Apply the same non-symlink-directory invariant in
tools/e2e/cli-artifact-workflow-boundary.mts at lines 167-175, update the
related contract assertions at lines 69-74 and 189-199, and add the
symlinked-parent fixture at lines 498-516 verifying restoration fails without
creating an external dist directory.
🪄 Autofix
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: 7d74bf44-e9a5-4a2c-994d-603824e899e4
📒 Files selected for processing (4)
.github/actions/restore-e2e-cli-artifact/action.yaml.github/workflows/e2e.yamltest/e2e/support/cli-artifact-workflow-boundary.test.tstools/e2e/cli-artifact-workflow-boundary.mts
PR Review Advisor — No blocking findings reportedAdvisor assessment: No blocking advisor findings reported Model lanes
Second-opinion terminology and E2E selections are advisory. They do not change the primary assessment or E2E / PR Gate. 1 semantic terminology decisionTerminology decisions are advisory. They affect the assessment only when a separate finding identifies concrete semantic impact.
E2E guidanceAdvisory only. E2E / PR Gate selects and runs jobs independently. Recommended E2E: This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge. |
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
|
The required Evidence:
PR code cannot change the workflow or action loaded from main. Another PR commit cannot make this workflow-only correction affect its own required check. No check is waived. No admin bypass or merge is requested. Maintainer direction is required for a repository-approved bootstrap path that preserves the workflow trust boundary and the required check. |
|
Status for PR commit SHA
The workflow on main must be updated before the required check can validate this PR. No E2E result is waived. No admin bypass or auto-merge is requested. This PR is not approval-ready. Maintainer direction is required for the repository-approved bootstrap path. |
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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 `@test/e2e/support/cli-artifact-workflow-boundary.test.ts`:
- Around line 509-523: Update expectRestoreFailure to assert that both
destination boundaries, including nemoclaw/dist/, are absent after every failed
restore. Preserve the existing root dist/ assertion and add the corresponding
nested dist check so the invalid CLI entry point and shared module tests verify
cleanup before activation.
🪄 Autofix
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: b8dc4d5d-4b2c-4aa1-9b82-2f1543212202
📒 Files selected for processing (5)
.github/actions/restore-e2e-cli-artifact/action.yaml.github/workflows/e2e.yamltest/e2e/README.mdtest/e2e/support/cli-artifact-workflow-boundary.test.tstools/e2e/cli-artifact-workflow-boundary.mts
🚧 Files skipped from review as they are similar to previous changes (4)
- .github/actions/restore-e2e-cli-artifact/action.yaml
- test/e2e/README.md
- .github/workflows/e2e.yaml
- tools/e2e/cli-artifact-workflow-boundary.mts
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
|
Repository gate audit for PR commit
GitHub did not accept an approval from the PR author. The PR requires approval from another maintainer and a human merge decision. No bypass or merge occurred. |
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Summary
At base SHA
c6713c9dd17a9682654713ccb6829b8714f1b307, the E2E CLI artifact packages repository-rootdist/and all ofnemoclaw/dist/.It validates only
sandbox-name.cjsamong the shared modules.This change keeps repository-root
dist/and limits the plugin payload tonemoclaw/dist/shared/.The restore action requires all three shared modules to be nonempty regular files before CLI startup.
It rejects archive members outside the allowed directories, existing destination paths, and a
nemoclaw/parent that is a symbolic link.Related Issue
Follow-up to #7915.
Changes
dist/nemoclaw.js,dist/build-identity.json, and three compiled shared CLI modules before artifact publication.openshell-policy-boundary.cjs,sandbox-name.cjs, andsnapshot-sanitizer-boundary.cjsundernemoclaw/dist/shared/.dist/andnemoclaw/dist/shared/.nemoclaw/parent that is a symbolic link.d34b11e8b895760d6505d54e2cfc520332cb2a9c.test/e2e/README.md.Type of Change
Quality Gates
test/e2e/README.mddocuments the internal E2E artifact contract.39d5713cf40b81836d80e21bc9d2e8d2e8323074against base SHAc6713c9dd17a9682654713ccb6829b8714f1b307. Refer to Sensitive-Path Security Review.Documentation Writer Review
docs-updated39d5713cf40b81836d80e21bc9d2e8d2e8323074against base SHAc6713c9dd17a9682654713ccb6829b8714f1b307, I reviewed the complete five-file diff, terminology correction, immutable action repin, and live PR body underWRITING.md, the Controlled Word List, and the shared documentation review contract.test/e2e/README.mdaccurately documents the internal artifact contract. This change requires no public documentation underdocs/. GitHub Actions is authoritative; required checks are running.DGX Station Hardware Evidence
scripts/prepare-dgx-station-host.shdoes not change.Verification
Signed-off-by:line and every commit appears asVerifiedin GitHub — all 27 commits appear asVerified.pre-commit,commit-msg, andpre-pushhooks passed, ornpm run validate:prpassed after refreshingorigin/mainwhen hooks were skipped or unavailable.39d5713cf40b81836d80e21bc9d2e8d2e8323074.39d5713cf40b81836d80e21bc9d2e8d2e8323074.npm run docsbuilds without warnings (doc changes only)Sensitive-Path Security Review
Independent review passed for PR commit
39d5713cf40b81836d80e21bc9d2e8d2e8323074against base SHAc6713c9dd17a9682654713ccb6829b8714f1b307.d34b11e8b895760d6505d54e2cfc520332cb2a9c. Its action blob matches the reviewed action and SHA-256 valuef90d4532a64473817b183856e225b401b201d71aaafa75bd7cf8d63a3deeb76f.GitHub Actions
GitHub Actions is authoritative for PR commit
39d5713cf40b81836d80e21bc9d2e8d2e8323074against base SHAc6713c9dd17a9682654713ccb6829b8714f1b307.Required checks must pass before merge.
No required check has a maintainer waiver.
Signed-off-by: Carlos Villela cvillela@nvidia.com