NVIDIA / NVIDIA/NemoClaw

e2e(mcp): Hermes restart cannot reuse its stored provider credential

Open
#11,081 0 comments 0 reactions 0 assignees View on GitHub
area: e2e area: sandbox area: security integration: hermes
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 MCP onboarding, managed add, gateway restart, and the corrected strict/compatibility integrity check passed.
- The next lifecycle step, restarting the same MCP server without re-exporting its host secret, failed with: MCP server 'fake' cannot reuse its stored credential.
- This is later than and independent of the SECRET_BOUNDARY_REFUSED failure fixed by #11071 and tracked in #10963.

## Description

The Hermes MCP lifecycle expects an exact, still-attached OpenShell provider to be reusable without reading or re-exporting its host-only secret. After the gateway restart succeeds, NemoClaw rejects that reuse.

Expected: restarting an unchanged MCP server can reuse the exact recorded provider identity and credential binding without exposing or reading the credential value.

Actual: restart fails closed and asks for credential recovery even though the provider was already created and attached earlier in the same lifecycle.

## Reproduction Steps

1. Add an authenticated MCP server to a Hermes sandbox.
2. Restart the Hermes gateway and verify the managed configuration.
3. Run mcp restart for the unchanged server without exporting the host secret again.
4. Observe the stored-provider reuse failure.

## Environment

- GitHub Actions Docker E2E
- Candidate: 0ddc3ea52efe8a5d63099b92f43cbe0a43c88a01
- Run: [33915961523](https://github.com/NVIDIA/NemoClaw/actions/runs/33915961523)
- Job: [MCP bridge (Hermes)](https://github.com/NVIDIA/NemoClaw/actions/runs/33915961523/job/101163747453)

## Acceptance Criteria

- Decide whether exact attached-provider reuse without a host environment value remains the supported contract.
- If supported, verify immutable provider identity, credential-key shape, attachment, and revision without reading the secret, then allow the restart.
- If a host value is required, update the CLI contract and E2E flow explicitly without weakening the host-only credential boundary.
- Preserve fail-closed behavior for missing, drifted, or mismatched providers.
- The complete Hermes MCP bridge target passes on the fixing commit.

Contributor guide

Open the contributing guide

Research direction

Start with the Hermes MCP bridge E2E target and the `mcp restart` flow described in the reproduction; compare provider identity, credential-key, attachment, and revision checks after the gateway restart. Done means the complete target passes, exact attached providers reuse without reading the host secret, and missing, drifted, or mismatched providers still fail closed.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, github-actions, typescript
Domain
cli, security, testing
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.