NVIDIA / NVIDIA/NemoClaw

Preserve Hermes Portable exclusion from stock managed-runtime activation

Open
#9,634 0 comments 0 reactions 1 assignee Claimed by @ericksoa View on GitHub
area: onboarding area: sandbox integration: hermes needs: cleanup-review security v0.0.127
Dominant language
TypeScript
Stars
22.5k
Forks
3.1k
Avg merge
1d 1h
Merged PRs (30d)
715

Description

## Problem

The stock managed-runtime activation decision currently excludes OpenClaw Portable through `portableLifecycle`, but Hermes Portable is represented separately by `hermesPortableLifecycle`. The call in `src/lib/onboard/sandbox-create/orchestration.ts` passes only `resolvePortableLifecycleMode(agent)` into `shouldActivateStockManagedRuntime`.

As a result, Hermes Portable can select the stock managed runtime even though its lifecycle must retain the shipped Hermes Dockerfile path. The later Hermes Portable guard then encounters a managed-image workload and fails instead of preserving the portable path.

## Required change

- Treat both OpenClaw Portable and Hermes Portable as excluded from stock managed-runtime activation.
- Keep normal managed activation unchanged for shipped non-Portable OpenClaw, Hermes, and Deep Agents Code.
- Add focused regression coverage at the activation decision/call site proving Hermes Portable cannot select managed bootstrap.
- Preserve the existing fail-closed Hermes Portable managed-bootstrap assertion as defense in depth.

## Acceptance criteria

- Hermes Portable selects the legacy shipped Hermes Dockerfile workload, not a managed image.
- OpenClaw Portable remains excluded exactly as before.
- Non-Portable shipped agents still activate stock managed runtime.
- Focused unit tests cover all three cases.

## Relationship

Follow-up preservation fix for #9140 and the cutover in #9323. Implement as a stacked PR based on the #9323 branch; do not broaden the current full-E2E dispatch work.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.