Skip to content

test(e2e): restore OpenClaw rebuild fixture parity - #5855

Merged
cv merged 10 commits into
mainfrom
e2e-parity/5849-package-f
Jun 26, 2026
Merged

test(e2e): restore OpenClaw rebuild fixture parity#5855
cv merged 10 commits into
mainfrom
e2e-parity/5849-package-f

Conversation

@jyaunches

@jyaunches jyaunches commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Summary

Restore issue #5849 Package F parity for the migrated rebuild-openclaw-vitest fixture.

The legacy bash test builds Dockerfile.base with the full repository as Docker context after temporarily lowering nemoclaw-blueprint/blueprint.yaml. The migrated Vitest kept the checkout read-only by staging a minimal context, but after #5682 Dockerfile.base also copies scripts/lib/sandbox-rlimits.sh, so the Vitest old-base build failed before reaching the rebuild assertions.

Related Issues

Refs #5849
Refs #5800
Refs #5682

Scope gate

Parity map

ID Source / evidence Contract Vitest assertion / fix Status
F1 #5682, run 28214953054 Migrated OpenClaw rebuild Vitest must build the old base with every direct Dockerfile.base context dependency needed by the bash full-repo build. createOldBaseBuildContext() now stages nemoclaw-blueprint/blueprint.yaml and scripts/lib/sandbox-rlimits.sh before building Dockerfile.base. covered
F2 Future Dockerfile.base COPY drift If Dockerfile.base gains another direct COPY, the Package F fixture must fail fast before live E2E runtime. New support test test/e2e-scenario/support-tests/rebuild-openclaw-old-base-context.test.ts checks direct Dockerfile.base COPY sources are represented in the old-base context list. covered

Inference mode support

  • Default mode for touched live target: existing public-nvidia / hosted path for rebuild-openclaw-vitest; no inference mode behavior changed.
  • Real inference support preserved: yes; this PR only fixes pre-rebuild Docker build fixture setup.
  • Modes validated in this PR: local support/unit/build/typecheck. Live Docker validation requires GitHub runner because local Docker daemon is unavailable.

Validation

  • npx vitest run --project e2e-vitest-support test/e2e-scenario/support-tests/rebuild-openclaw-old-base-context.test.ts
  • npm run build:cli
  • npm run typecheck:cli
  • git diff --check
  • Selective rebuild-openclaw-vitest workflow on PR branch

Follow-ups / waivers

  • Local live run not attempted because Docker daemon is unavailable on this machine (Cannot connect to the Docker daemon at unix:///Users/jyaunches/.docker/run/docker.sock).

Signed-off-by: Julie Yaunches jyaunches@nvidia.com

Summary by CodeRabbit

  • New Features
    • Added end-to-end helper utilities to generate a temporary legacy Docker build context, stage required direct COPY sources, and rewrite the blueprint’s minimum OpenClaw version.
  • Bug Fixes
    • Strengthened Dockerfile parsing to include only supported direct COPY sources while excluding non-matching variants and secret-related inputs.
  • Tests
    • Added e2e test coverage for legacy context creation, correct COPY source selection, error handling for unsupported paths, and automatic cleanup of temp directories.
  • Refactor
    • Reused the shared legacy build-context helper in the rebuild scenario.

@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It 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 reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The old-base build-context logic moved into a shared helper module, and the live rebuild-openclaw test now imports it. New support tests verify staged context copying, direct COPY source parsing, and rejection of unsafe or secret-like sources.

Changes

OpenClaw rebuild context

Layer / File(s) Summary
Stage old-base context
test/e2e-scenario/live/rebuild-openclaw-old-base-context.ts
The helper module defines the source list, parses Dockerfile.base for direct COPY sources, validates and copies staged files into a temp context, and rewrites the blueprint's minimum version.
Wire old-base helper into the live scenario
test/e2e-scenario/live/rebuild-openclaw.test.ts
The live scenario test imports createOldBaseBuildContext from the helper module and removes the local blueprint path constants and inline implementation.
Check direct COPY sources
test/e2e-scenario/support-tests/rebuild-openclaw-old-base-context.test.ts
The support test cleans up temporary artifacts and verifies staged sources, Dockerfile.base COPY parsing, and rejection of unsafe or secret-like COPY targets.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested reviewers

  • ericksoa
  • cv

Poem

A bunny hopped through a builder's gate,
To stage old files and set the date.
It sniffed each COPY, neat and true,
Then blessed the blueprints old and new.

🚥 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 The title clearly matches the main change: restoring parity for the OpenClaw rebuild e2e fixture.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch e2e-parity/5849-package-f

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

@github-code-quality

github-code-quality Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in the e2e-parity/5849-pack... branch is 96%. Coverage data for the main branch is not yet available.

Show a code coverage summary of the most covered files.
File main e2e-parity/5849-pack... 0e6609d +/-
nemoclaw/src/se...cret-scanner.ts 100%
nemoclaw/src/commands/slash.ts 100%
nemoclaw/src/li...bprocess-env.ts 100%
nemoclaw/src/bl...eprint/state.ts 98%
nemoclaw/src/onboard/config.ts 98%
nemoclaw/src/bl...int/snapshot.ts 97%
nemoclaw/src/bl...print/runner.ts 95%
nemoclaw/src/co...ration-state.ts 94%
nemoclaw/src/bl...ate-networks.ts 94%
nemoclaw/src/index.ts 94%

TypeScript / code-coverage/cli

The overall coverage in the e2e-parity/5849-pack... branch is 47%. Coverage data for the main branch is not yet available.

Show a code coverage summary of the most covered files.
File main e2e-parity/5849-pack... 0e6609d +/-
src/lib/state/o...oard-session.ts 91%
src/lib/actions...dbox/rebuild.ts 72%
src/lib/sandbox/config.ts 72%
src/lib/onboard/preflight.ts 62%
src/lib/shields/index.ts 62%
src/lib/actions...licy-channel.ts 60%
src/lib/state/sandbox.ts 56%
src/lib/policy/index.ts 48%
src/lib/onboard...er-gpu-patch.ts 47%
src/lib/onboard.ts 19%

Updated June 26, 2026 15:31 UTC
Code Coverage is in Public Preview. Learn more and provide us with your feedback.

@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: rebuild-openclaw-vitest
Optional E2E: None

Dispatch hint: rebuild-openclaw-vitest

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • rebuild-openclaw-vitest (high): This is the directly modified live E2E job. It exercises the changed old-base build context helper, hosted-compatible inference route setup, OpenShell sandbox creation, nemoclaw rebuild, state preservation, and gateway-token rotation.

Optional E2E

  • None.

New E2E recommendations

  • None.

Dispatch hint

  • Workflow: e2e-vitest-scenarios.yaml
  • jobs input: rebuild-openclaw-vitest

@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Recommendation

Required Vitest E2E scenarios: rebuild-openclaw-vitest
Optional Vitest E2E scenarios: None

Dispatch required Vitest E2E scenarios:

  • gh workflow run e2e-vitest-scenarios.yaml --ref <pr-head-ref> --field jobs=rebuild-openclaw-vitest

Workflow run

Full Vitest E2E advisor summary

Vitest E2E Scenario Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required Vitest E2E scenarios

  • rebuild-openclaw-vitest: Focused free-standing Vitest job wired for changed live test test/e2e-scenario/live/rebuild-openclaw.test.ts.
    • Dispatch: gh workflow run e2e-vitest-scenarios.yaml --ref <pr-head-ref> --field jobs=rebuild-openclaw-vitest

Optional Vitest E2E scenarios

  • None.

Relevant changed files

  • test/e2e-scenario/live/rebuild-openclaw-old-base-context.ts
  • test/e2e-scenario/live/rebuild-openclaw.test.ts
  • test/e2e-scenario/support-tests/rebuild-openclaw-old-base-context.test.ts

@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — No blocking findings

Merge posture: No blocking advisor findings
Primary next action: Add or justify PRA-T1 and any related test follow-ups.
Open items: 0 required · 0 warnings · 0 suggestions · 4 test follow-ups
Since last review: 2 prior items resolved · 0 still apply · 0 new items found

Action checklist

  • PRA-T1 Add or justify test follow-up: Runtime validation
  • PRA-T2 Add or justify test follow-up: Runtime validation
  • PRA-T3 Add or justify test follow-up: Runtime validation
  • PRA-T4 Add or justify test follow-up: Acceptance clause
Test follow-ups to resolve or justify

If these cover changed behavior, prefer adding them in this PR; otherwise state why existing coverage is enough or link the follow-up.

  • PRA-T1 Runtime validation — Run the rebuild-openclaw live Vitest scenario with Docker and OpenShell available to prove the staged old-base context builds Dockerfile.base and reaches the post-rebuild state, token-rotation, backup-hygiene, and policy-preservation assertions.. The new support tests are sufficient for static parsing, staging, and negative-path behavior, but the changed helper controls a live Docker/OpenShell/NemoClaw rebuild scenario that read-only review cannot execute.
  • PRA-T2 Runtime validation — Add support coverage named `createOldBaseBuildContext lowers only the staged blueprint and leaves the checkout blueprint unchanged` to lock the key behavior difference from the legacy bash reference.. The new support tests are sufficient for static parsing, staging, and negative-path behavior, but the changed helper controls a live Docker/OpenShell/NemoClaw rebuild scenario that read-only review cannot execute.
  • PRA-T3 Runtime validation — Add support coverage named `rejects symlinked Dockerfile.base COPY sources that resolve outside the repository before staging` to harden the Docker build-context credential boundary against future fixture drift.. The new support tests are sufficient for static parsing, staging, and negative-path behavior, but the changed helper controls a live Docker/OpenShell/NemoClaw rebuild scenario that read-only review cannot execute.
  • PRA-T4 Acceptance clause — Modes validated in this PR: local support/unit/build/typecheck. Live Docker validation requires GitHub runner because local Docker daemon is unavailable. — add test evidence or identify existing coverage. The PR body lists validation commands, but read-only review cannot verify local command execution or Docker daemon availability. The remaining live Docker/OpenShell confidence gap is captured in testDepth.suggestedTests.

Workflow run details

This is an automated, non-binding review; it still expects maintainers and agents to respond to each required or warning item. Treat suggestions as current-PR improvements when they touch changed code; defer only with maintainer rationale or a linked follow-up. A human maintainer must make the final merge decision.

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ❌ Some jobs failed

Run: 28241415036
Workflow ref: e2e-parity/5849-package-f
Requested scenarios: (default — all supported)
Requested jobs: rebuild-openclaw-vitest
Summary: 0 passed, 1 failed, 0 cancelled, 0 skipped

Job Result
rebuild-openclaw-vitest ❌ failure

Failed jobs: rebuild-openclaw-vitest. Check run artifacts for logs.

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ❌ Some jobs failed

Run: 28242031263
Workflow ref: e2e-parity/5849-package-f
Requested scenarios: (default — all supported)
Requested jobs: rebuild-openclaw-vitest
Summary: 0 passed, 1 failed, 0 cancelled, 0 skipped

Job Result
rebuild-openclaw-vitest ❌ failure

Failed jobs: rebuild-openclaw-vitest. Check run artifacts for logs.

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
test/e2e-scenario/live/rebuild-openclaw-old-base-context.ts (1)

21-42: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Handle multiline COPY instructions before tokenizing.

This parser works on physical lines, so a valid continued form like COPY a \ / b /dest will record only a and silently miss b. Because the support test calls the same helper, that drift would also evade the new guard and only surface later when createOldBaseBuildContext() stages an incomplete context. Please join \-continued lines into logical Dockerfile instructions before applying the current token checks.

🤖 Prompt for 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.

In `@test/e2e-scenario/live/rebuild-openclaw-old-base-context.ts` around lines 21
- 42, Update the Dockerfile COPY parser in the helper used by the
rebuild-openclaw-old-base-context test so it processes logical instructions, not
just physical lines. Right now the loop tokenizes each raw line directly, so
multiline COPY forms with backslash continuations can lose later path tokens and
slip past the existing COPY validation. Fold `\`-continued lines together before
the current `instructionMatch`/token checks, then keep the existing source
extraction and stage-source guard in place so `createOldBaseBuildContext()` sees
the full COPY source list.
🧹 Nitpick comments (1)
test/e2e-scenario/support-tests/rebuild-openclaw-old-base-context.test.ts (1)

47-59: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Cover the COPY --from build form too.

This guard only exercises --from=..., but directDockerfileBaseCopySources() also has a separate branch for the space-delimited --from syntax. Add that variant here so the support test actually locks both exclusions down.

Suggested test fixture update
       [
         "FROM base AS build",
         "copy scripts/lib/sandbox-rlimits.sh /tmp/lowercase",
         "COPY\tnemoclaw-blueprint/blueprint.yaml /tmp/tabbed",
+        "COPY --from build /tmp/ignored-space /tmp/ignored-space",
         "COPY --from=build /tmp/ignored /tmp/ignored",
       ].join("\n"),
       "utf8",
     );
🤖 Prompt for 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.

In `@test/e2e-scenario/support-tests/rebuild-openclaw-old-base-context.test.ts`
around lines 47 - 59, The support test for directDockerfileBaseCopySources only
covers the equals-style --from form, so it misses the space-delimited --from
branch. Update the fixture in rebuild-openclaw-old-base-context.test.ts to
include a COPY --from build case alongside the existing COPY --from=build case,
and keep the expectation focused on verifying both forms are excluded from the
returned base copy sources.
🤖 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.

Outside diff comments:
In `@test/e2e-scenario/live/rebuild-openclaw-old-base-context.ts`:
- Around line 21-42: Update the Dockerfile COPY parser in the helper used by the
rebuild-openclaw-old-base-context test so it processes logical instructions, not
just physical lines. Right now the loop tokenizes each raw line directly, so
multiline COPY forms with backslash continuations can lose later path tokens and
slip past the existing COPY validation. Fold `\`-continued lines together before
the current `instructionMatch`/token checks, then keep the existing source
extraction and stage-source guard in place so `createOldBaseBuildContext()` sees
the full COPY source list.

---

Nitpick comments:
In `@test/e2e-scenario/support-tests/rebuild-openclaw-old-base-context.test.ts`:
- Around line 47-59: The support test for directDockerfileBaseCopySources only
covers the equals-style --from form, so it misses the space-delimited --from
branch. Update the fixture in rebuild-openclaw-old-base-context.test.ts to
include a COPY --from build case alongside the existing COPY --from=build case,
and keep the expectation focused on verifying both forms are excluded from the
returned base copy sources.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 1eea2611-f030-4df0-90eb-d0df986711fd

📥 Commits

Reviewing files that changed from the base of the PR and between c224e10 and eebcce7.

📒 Files selected for processing (2)
  • test/e2e-scenario/live/rebuild-openclaw-old-base-context.ts
  • test/e2e-scenario/support-tests/rebuild-openclaw-old-base-context.test.ts

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ❌ Some jobs failed

Run: 28242713033
Workflow ref: e2e-parity/5849-package-f
Requested scenarios: (default — all supported)
Requested jobs: rebuild-openclaw-vitest
Summary: 0 passed, 1 failed, 0 cancelled, 0 skipped

Job Result
rebuild-openclaw-vitest ❌ failure

Failed jobs: rebuild-openclaw-vitest. Check run artifacts for logs.

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ❌ Some jobs failed

Run: 28243892150
Workflow ref: e2e-parity/5849-package-f
Requested scenarios: (default — all supported)
Requested jobs: rebuild-openclaw-vitest
Summary: 0 passed, 1 failed, 0 cancelled, 0 skipped

Job Result
rebuild-openclaw-vitest ❌ failure

Failed jobs: rebuild-openclaw-vitest. Check run artifacts for logs.

@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ❌ Some jobs failed

Run: 28244425002
Workflow ref: e2e-parity/5849-package-f
Requested scenarios: (default — all supported)
Requested jobs: rebuild-openclaw-vitest
Summary: 0 passed, 1 failed, 0 cancelled, 0 skipped

Job Result
rebuild-openclaw-vitest ❌ failure

Failed jobs: rebuild-openclaw-vitest. Check run artifacts for logs.

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ❌ Some jobs failed

Run: 28246460827
Workflow ref: e2e-parity/5849-package-f
Requested scenarios: (default — all supported)
Requested jobs: rebuild-openclaw-vitest
Summary: 0 passed, 1 failed, 0 cancelled, 0 skipped

Job Result
rebuild-openclaw-vitest ❌ failure

Failed jobs: rebuild-openclaw-vitest. Check run artifacts for logs.

Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ✅ All requested jobs passed

Run: 28247006896
Workflow ref: e2e-parity/5849-package-f
Requested scenarios: (default — all supported)
Requested jobs: rebuild-openclaw-vitest
Summary: 1 passed, 0 failed, 0 cancelled, 0 skipped

Job Result
rebuild-openclaw-vitest ✅ success

@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Results — ✅ All requested jobs passed

Run: 28248247005
Workflow ref: e2e-parity/5849-package-f
Requested scenarios: (default — all supported)
Requested jobs: rebuild-openclaw-vitest
Summary: 1 passed, 0 failed, 0 cancelled, 0 skipped

Job Result
rebuild-openclaw-vitest ✅ success

@wscurran wscurran added area: e2e End-to-end tests, nightly failures, or validation infrastructure bug-fix PR fixes a bug or regression integration: openclaw OpenClaw integration behavior labels Jun 26, 2026
@cv
cv merged commit 7566e22 into main Jun 26, 2026
109 checks passed
@cv
cv deleted the e2e-parity/5849-package-f branch June 26, 2026 16:11
@cv cv added the v0.0.69 label Jun 27, 2026
Hadar301 pushed a commit to Hadar301/NemoClaw-OpenShift that referenced this pull request Jul 12, 2026
## Summary
Restore issue NVIDIA#5849 Package F parity for the migrated
`rebuild-openclaw-vitest` fixture.

The legacy bash test builds `Dockerfile.base` with the full repository
as Docker context after temporarily lowering
`nemoclaw-blueprint/blueprint.yaml`. The migrated Vitest kept the
checkout read-only by staging a minimal context, but after NVIDIA#5682
`Dockerfile.base` also copies `scripts/lib/sandbox-rlimits.sh`, so the
Vitest old-base build failed before reaching the rebuild assertions.

## Related Issues
Refs NVIDIA#5849
Refs NVIDIA#5800
Refs NVIDIA#5682

## Scope gate
- Package: `Package F — OpenClaw rebuild fixture parity`
- Included input: NVIDIA#5682 is the explicit Vitest-fixture exception
documented in NVIDIA#5849; it did not touch legacy bash, but exposed migrated
Vitest setup drift against the bash reference.
- Bash reference: `test/e2e/test-rebuild-openclaw.sh`
- Out of scope: shell lane retirement / PR NVIDIA#5756 cleanup; OpenClaw
version bump PR NVIDIA#5595; Hermes rebuild fixes.

## Parity map
| ID | Source / evidence | Contract | Vitest assertion / fix | Status |
| --- | --- | --- | --- | --- |
| F1 | NVIDIA#5682, run 28214953054 | Migrated OpenClaw rebuild Vitest must
build the old base with every direct `Dockerfile.base` context
dependency needed by the bash full-repo build. |
`createOldBaseBuildContext()` now stages
`nemoclaw-blueprint/blueprint.yaml` and `scripts/lib/sandbox-rlimits.sh`
before building `Dockerfile.base`. | covered |
| F2 | Future `Dockerfile.base` COPY drift | If `Dockerfile.base` gains
another direct `COPY`, the Package F fixture must fail fast before live
E2E runtime. | New support test
`test/e2e-scenario/support-tests/rebuild-openclaw-old-base-context.test.ts`
checks direct `Dockerfile.base` COPY sources are represented in the
old-base context list. | covered |

## Inference mode support
- Default mode for touched live target: existing `public-nvidia` /
hosted path for `rebuild-openclaw-vitest`; no inference mode behavior
changed.
- Real inference support preserved: yes; this PR only fixes pre-rebuild
Docker build fixture setup.
- Modes validated in this PR: local support/unit/build/typecheck. Live
Docker validation requires GitHub runner because local Docker daemon is
unavailable.

## Validation
- [x] `npx vitest run --project e2e-vitest-support
test/e2e-scenario/support-tests/rebuild-openclaw-old-base-context.test.ts`
- [x] `npm run build:cli`
- [x] `npm run typecheck:cli`
- [x] `git diff --check`
- [ ] Selective `rebuild-openclaw-vitest` workflow on PR branch

## Follow-ups / waivers
- Local live run not attempted because Docker daemon is unavailable on
this machine (`Cannot connect to the Docker daemon at
unix:///Users/jyaunches/.docker/run/docker.sock`).

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 end-to-end helper utilities to generate a temporary legacy
Docker build context, stage required direct `COPY` sources, and rewrite
the blueprint’s minimum OpenClaw version.
* **Bug Fixes**
* Strengthened Dockerfile parsing to include only supported direct
`COPY` sources while excluding non-matching variants and secret-related
inputs.
* **Tests**
* Added e2e test coverage for legacy context creation, correct `COPY`
source selection, error handling for unsupported paths, and automatic
cleanup of temp directories.
* **Refactor**
* Reused the shared legacy build-context helper in the rebuild scenario.
<!-- 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: e2e End-to-end tests, nightly failures, or validation infrastructure bug-fix PR fixes a bug or regression integration: openclaw OpenClaw integration behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants