e2e(plugin): EXDEV fixture is unreadable before cross-device install
- Dominant language
- TypeScript
- Stars
- 22.5k
- Forks
- 3.1k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 715
Description
## Investigation Summary
- [openclaw-plugin-runtime-exdev](https://github.com/NVIDIA/NemoClaw/actions/runs/33730208977/job/100568882532) onboards successfully, then fails almost immediately copying the fixture.
- The same permission failure repeats on [later main](https://github.com/NVIDIA/NemoClaw/actions/runs/33761515943/job/100678904454).
- `cp -R /opt/weather-plugin/. ...` returns permission denied.
- The target never reaches the cross-device rename/copy behavior it is intended to qualify.
## Description
The EXDEV regression test has a broken source fixture or fixture ownership contract. It reports red while providing no evidence about EXDEV fallback behavior.
Expected: the runtime user can read the plugin fixture, and installation crosses the intended filesystem boundary.
Actual: the initial source copy fails with permissions.
## Reproduction Steps
1. Run `openclaw-plugin-runtime-exdev` from either linked candidate.
2. Allow onboarding to complete.
3. Observe the first copy from `/opt/weather-plugin` fail before EXDEV behavior.
## Environment
- GitHub Actions Docker E2E
- Runs: [33730208977](https://github.com/NVIDIA/NemoClaw/actions/runs/33730208977), [33761515943](https://github.com/NVIDIA/NemoClaw/actions/runs/33761515943)
## Debug Output
```text
cp -R /opt/weather-plugin/. ...: Permission denied
```
## Acceptance Criteria
- Build the fixture with explicit readable ownership/mode for the runtime user.
- Assert that the test actually observes the intended EXDEV path.
- Run the test from the packaged image without relying on workspace ownership.
## Candidate Fix
- [PR #10808 — test(e2e): fix EXDEV fixture permissions](https://github.com/NVIDIA/NemoClaw/pull/10808), authored by @rsliter.
- Status at linkage: draft; review required.
- Coverage: directly moves the weather-plugin fixture into a policy-readable path and validates the intended EXDEV boundary.
- Keep this issue open until the PR is merged and the EXDEV target passes on the merged candidate and subsequent full-suite qualification.
## Latest Evidence
- The exact-candidate [run 33915961523](https://github.com/NVIDIA/NemoClaw/actions/runs/33915961523) still fails [openclaw-plugin-runtime-exdev](https://github.com/NVIDIA/NemoClaw/actions/runs/33915961523/job/101163747181).
- [PR #10808](https://github.com/NVIDIA/NemoClaw/pull/10808) remains the open draft candidate. Keep this issue open until that PR is current and the exact target passes.
Contributor guide
Assessment
This issue has not been assessed yet.