e2e(mcp): Hermes restart cannot reuse its stored provider credential
- 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
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