Skip to content

Commit d4522de

Browse files
rslitersenthilr-nv
andauthored
test: repair remaining migrated paths (NVIDIA#10226)
<!-- markdownlint-disable MD041 --> ## Summary Repair the seven repository references that still point to paths from before the test-directory migration. Merged PR NVIDIA#10219 fixed most migrated references, but its exact CI run still failed the station documentation ownership and OpenClaw dependency-review contracts because these remaining references were stale. ## Related Issue Related to NVIDIA#10155. This is the remaining migration-metadata repair after NVIDIA#10219. ## Changes - Point the vLLM pre-commit selector at its migrated E2E support test. - Update maintained security-review and messaging guidance references to their existing canonical test paths. - Correct the Station quickstart link expectations for the migrated test location. - Correct the opt-in reproduction command for the migrated policy test. ## 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: - [ ] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [x] Sensitive-path review completed or maintainer-approved waiver recorded. Justification: An independent nine-category review passed at exact commit `7e12b2b868a56acd8a3294d287bc863959862286`. It verified all seven replacement paths, the semantic E2E-phase selector, and the unchanged security and authorization boundaries. - [ ] Non-success, skipped, or missing CI check accepted by maintainer. Check name, approval link, and follow-up issue: ## 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 - [x] Targeted behavior tests pass for the current change set. The Station ownership, policy reproduction, and OpenClaw dependency-review suites passed 57 tests with 1 opt-in test skipped. The vLLM selector explicitly ran and passed the semantic E2E-phase hook. - [x] Applicable broad gate passed. `npm run test:changed -- --maxWorkers=4` passed 32 growth tests; `npm run checks:repository`, `npm run source-shape:check`, and `npm run test:e2e-phases:check` passed. - [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) ## Documentation Writer Review - [x] Documentation writer subagent reviewed the completed changes - Result: `no-docs-needed` - Evidence: Commit `7e12b2b868a56acd8a3294d287bc863959862286` corrects internal repository references after the test-directory migration. All new targets exist, all former canonical references are absent, and no public command, configuration, supported workflow, or operator procedure changes. The owning `AGENTS.md` and security-review references now resolve. - Agent: Codex Desktop <!-- docs-review-head-sha: 7e12b2b --> <!-- docs-review-agents-blob-sha: becb5c5 --> --- Signed-off-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Documentation** - Updated security review and contributor guidance to reflect reorganized test locations. - Corrected quickstart links for local vLLM setup and platform support pages. - **Tests** - Updated test commands, hook patterns, and assertions to use current paths. - Maintained coverage for messaging, policy, gateway authentication, storage, and configuration security scenarios. - Corrected repository path resolution for policy test execution. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com> Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com> Co-authored-by: Rebecca Sliter <571084+rsliter@users.noreply.github.com> Co-authored-by: Senthil Ravichandran <senthilr@nvidia.com>
1 parent 41a24b9 commit d4522de

7 files changed

Lines changed: 7 additions & 7 deletions

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ repos:
295295
entry: npm run test:e2e-phases:check
296296
language: system
297297
pass_filenames: false
298-
files: ^(\.github/workflows/e2e\.yaml|test/vllm-docker-storage\.test\.ts|test/e2e/live/.*\.ts|test/e2e/fixtures/.*\.ts|test/e2e/risk-signal-reporter\.ts|test/e2e/support/(e2e-semantic-phase-check|workflow-e2e-progress)\.test\.ts|tools/e2e/(check-semantic-phases|credential-free-tests|workflow-boundary|workflow-plan)\.mts|vitest\.config\.ts|package\.json)$
298+
files: ^(\.github/workflows/e2e\.yaml|test/platform/images/vllm-docker-storage\.test\.ts|test/e2e/live/.*\.ts|test/e2e/fixtures/.*\.ts|test/e2e/risk-signal-reporter\.ts|test/e2e/support/(e2e-semantic-phase-check|workflow-e2e-progress)\.test\.ts|tools/e2e/(check-semantic-phases|credential-free-tests|workflow-boundary|workflow-plan)\.mts|vitest\.config\.ts|package\.json)$
299299
priority: 20
300300

301301
- id: test-cli

internal/security-reviews/openclaw-2026.6.10-dependency-review.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ The descriptor-safe shields transition in `scripts/state-dir-guard.py` mirrors o
339339
Invalid state: archived executable plugin copies overwrite freshly rebuilt reviewed extensions, cleanup deletes a managed extension, a shields transition rejects or removes the reviewed peer link and leaves rollback incomplete, or a broader symlink allowance permits a link outside the exact reviewed boundaries.
340340
Source boundary: `src/lib/state/openclaw-managed-extensions.ts`, `scripts/state-dir-guard.py`, NemoClaw snapshot validation/restore, and the reviewed OpenClaw image extension layout.
341341
Source-fix constraint: upstream OpenClaw does not own NemoClaw snapshot archives or shields transitions, so the local boundary must enforce image ownership without following an external symlink target.
342-
Regression tests: `src/lib/state/openclaw-managed-extensions.test.ts` pins the complete managed set, restore exclusions, exact link predicate, target validation, and cleanup preservation; `test/state-dir-guard.test.ts` proves preflight, lock, and unlock preserve only the exact peer link while rejecting wrong targets, source shapes, extension IDs, and non-OpenClaw roots, refuse descriptor-observed cross-device traversal, and preserve extended attributes across fresh-inode lock/unlock; `test/state/snapshot.test.ts` and `test/security-sandbox-tar-traversal.test.ts` retain integration and traversal coverage; and the `messaging-providers` live rebuild now requires explicit complete post-restore success without a critical rollback warning.
342+
Regression tests: `src/lib/state/openclaw-managed-extensions.test.ts` pins the complete managed set, restore exclusions, exact link predicate, target validation, and cleanup preservation; `test/state/state-dir-guard.test.ts` proves preflight, lock, and unlock preserve only the exact peer link while rejecting wrong targets, source shapes, extension IDs, and non-OpenClaw roots, refuse descriptor-observed cross-device traversal, and preserve extended attributes across fresh-inode lock/unlock; `test/state/snapshot.test.ts` and `test/security/security-sandbox-tar-traversal.test.ts` retain integration and traversal coverage; and the `messaging-providers` live rebuild now requires explicit complete post-restore success without a critical rollback warning.
343343
Removal condition: retire the helper only when snapshot metadata records extension ownership structurally and the generic restore engine can exclude image-owned paths without an OpenClaw-specific policy.
344344

345345
### Slack Inbound `app_mention`

internal/security-reviews/openclaw-2026.7.1-dependency-review.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -706,7 +706,7 @@ parent without a warning.
706706
NemoClaw's generated OpenClaw audit configuration keeps intentional loopback
707707
`allowInsecureAuth` findings and provenance-known loopback device-auth opt-out
708708
findings visible as accepted findings.
709-
`test/generate-openclaw-config-security-audit.test.ts` locks the generated
709+
`test/generation/generate-openclaw-config-security-audit.test.ts` locks the generated
710710
suppression scope, and `test/agents/openclaw/openclaw-security-audit-suppressions-real.test.ts`
711711
locks the pinned OpenClaw check IDs and details.
712712
`test/e2e/live/dashboard-remote-bind.test.ts` proves that a clean-host remote

internal/security-reviews/openshell-0.0.71-gateway-auth-review.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Scope: NemoClaw Docker-driver gateway config generated for OpenShell `0.0.71`.
3838
Source boundary is the Hermes image entrypoint and `validate-hermes-env-secret-boundary.py`; NemoClaw re-runs that source validator through the topology-specific gateway controller before recovery/probe paths can succeed.
3939
The direct root-entrypoint supervisor validates the boundary in `agents/hermes/start.sh`, while the OpenShell-managed topology validates it in `scripts/managed-gateway-control.py`; both surface typed failures through the root-only gateway-control path.
4040
This PR cannot retroactively bake the validator into already-created older Hermes sandbox images, so missing-validator recovery fails closed with a re-image instruction instead of claiming the boundary was checked.
41-
Regression coverage lives in `test/process-recovery/process-recovery.test.ts`, `test/managed-gateway-control.test.ts`, and `test/agents/hermes/hermes-gateway-supervisor-recovery.test.ts`.
41+
Regression coverage lives in `test/process-recovery/process-recovery.test.ts`, `test/inference/managed/managed-gateway-control.test.ts`, and `test/agents/hermes/hermes-gateway-supervisor-recovery.test.ts`.
4242
Remove the NemoClaw recovery-side checks when every supported Hermes topology exposes a stable recovery entrypoint that always re-enters the validator.
4343
- Gateway JWT generation lock recovery: invalid state is a crashed NemoClaw process leaving `.jwt-generating` behind after taking the exclusive host-side bundle-generation lock.
4444
The source boundary is NemoClaw's own atomic JWT bundle writer; OpenShell consumes the resulting paths but does not own this lock, so the source fix belongs here.

src/lib/messaging/AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ Use the narrowest test that covers the changed surface:
9292
- Manifest shape and plan compilation: `npx vitest run src/lib/messaging/compiler src/lib/messaging/manifest src/lib/messaging/channels`
9393
- Hook behavior: `npx vitest run src/lib/messaging/hooks src/lib/messaging/channels/<channel>/hooks`
9494
- Host/OpenShell application: `npx vitest run src/lib/messaging/applier`
95-
- Build-time render/install behavior: `npx vitest run test/messaging-build-applier.test.ts`
95+
- Build-time render/install behavior: `npx vitest run test/runtime/messaging/messaging-build-applier.test.ts`
9696
- Onboard/channel CLI integration: `npx vitest run test/onboarding/onboard-messaging.test.ts test/channels/channels-add-preset.test.ts src/lib/onboard/messaging-channel-setup.test.ts`
9797

9898
Add focused negative tests for invalid credentials, unauthorized senders, denied network access, malformed configuration, and cleanup when those behaviors are in scope.

test/runtime/policy/policy-preset-noop-disclosure.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { afterEach, describe, expect, it } from "vitest";
99

1010
import * as policies from "../../../src/lib/policy";
1111

12-
const REPO_ROOT = path.join(import.meta.dirname, "../..");
12+
const REPO_ROOT = path.join(import.meta.dirname, "../../..");
1313
const POLICY_MODULE = JSON.stringify(path.join(REPO_ROOT, "src/lib/policy/index.ts"));
1414
const REGISTRY_MODULE = JSON.stringify(path.join(REPO_ROOT, "src/lib/state/registry.ts"));
1515
const SOURCE_NODE_ARGS = ["--import", "tsx"];

test/runtime/policy/repro-5978-policy-denial-hint.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ const START_SCRIPT = path.join(REPO_ROOT, "scripts", "nemoclaw-start.sh");
4444
// test/e2e-runtime/repro-4538-raw-doctor-perms.test.ts because it needs Docker and the
4545
// pulled base image. Run with:
4646
// NEMOCLAW_RUN_POLICY_HINT_DOCKER_E2E=1 vitest run \
47-
// test/repro-5978-policy-denial-hint.test.ts --project integration
47+
// test/runtime/policy/repro-5978-policy-denial-hint.test.ts --project integration
4848
//
4949
// Kept opt-in rather than promoted to a required CI lane on purpose: it requires
5050
// a Docker daemon plus the multi-hundred-MB sandbox base image, which the fast

0 commit comments

Comments
 (0)