e2e(hermes): security child-process census changes after restart
- Dominant language
- TypeScript
- Stars
- 22.5k
- Forks
- 3.1k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 715
Description
## Investigation Summary
- The exact-candidate [PR #11071 E2E run](https://github.com/NVIDIA/NemoClaw/actions/runs/33915961523) tested commit 0ddc3ea52efe8a5d63099b92f43cbe0a43c88a01.
- Hermes installation, health, live inference, and managed gateway restart progressed past the path validation failure fixed by #11071.
- The security target then failed because the bounded nemoclaw-start child-process census changed while the test was selecting a stable supervisor set.
- No open issue currently tracks this later security-posture failure.
## Description
The Hermes security target takes two bounded snapshots of child supervisors and requires an identical process set. A legitimate or unstable child transition after gateway restart can change the set between snapshots, so the target fails before completing the remaining posture assertions.
Expected: the test obtains a stable, identity-bound child-supervisor view or reports the exact process transition that prevents stability.
Actual: the child-process census changes during acquisition and the whole security target fails without a separate lifecycle classification.
## Reproduction Steps
1. Run the Hermes security-posture target.
2. Complete installation, health, inference, and managed gateway restart.
3. Acquire the bounded nemoclaw-start child-supervisor census.
4. Observe the process set or identity change between the stability samples.
## Environment
- GitHub Actions Docker E2E
- Candidate: 0ddc3ea52efe8a5d63099b92f43cbe0a43c88a01
- Run: [33915961523](https://github.com/NVIDIA/NemoClaw/actions/runs/33915961523)
- Job: [Security: Hermes](https://github.com/NVIDIA/NemoClaw/actions/runs/33915961523/job/101163752434)
## Acceptance Criteria
- Capture the exact child process added, removed, or replaced between census samples.
- Distinguish a legitimate supervised lifecycle transition from an unstable or escaped process.
- Use a bounded stabilization rule tied to process identity, not an unbounded retry or a weaker count-only assertion.
- Keep the security posture checks fail-closed for unknown or escaped children.
- The Hermes security-posture target passes repeatedly on the fixing commit.
## Exact Failure
The completed job reported that the nemoclaw-start child supervisor census did not stabilize after four attempts. The first sample contained PID identities 874 and 45916; the second also contained child PID 45920 under 45916. This confirms a changing child lifecycle rather than the earlier Hermes path refusal.
Contributor guide
Research direction
Start by running the Hermes security-posture target from the referenced GitHub Actions Docker E2E job and inspect the nemoclaw-start child-supervisor census acquisition and its stability-sample logs. Done means reporting the exact process transition, distinguishing supervised lifecycle changes from escaped children, using bounded identity-based stabilization, preserving fail-closed checks, and passing repeatedly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, github-actions, typescript
- Domain
- ci-cd, security, testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100