Skip to content

test(e2e): align mcp-bridge-dev with the supported OpenShell version boundary #6426

Closed

Description

@apurvvkumaria

Agent Diagnostic

  • Investigated GitHub Actions run 28909889309, job mcp-bridge-dev, including the uploaded artifacts.
  • The workflow installed OpenShell 0.0.78-dev.6, while the checked-in credential-boundary manifest and runtime guard require exactly 0.0.72.
  • All six concurrent MCP-add attempts (two each for OpenClaw, Hermes, and DeepAgents) failed at the version gate before exercising MCP behavior.
  • The same lane failed identically in run 28839573992 against 0.0.78-dev.5; this is deterministic, not flaky.
  • The supported stable mcp-bridge lane passed on the same main SHA in run 28909147235.
  • Searched open issues for the exact lane/version-mismatch symptom; no dedicated tracker exists.

Description

The explicit mcp-bridge-dev E2E lane installs the moving OpenShell dev channel and then runs success-path MCP lifecycle assertions. NemoClaw intentionally fails closed unless the running OpenShell version exactly matches the reviewed credential-boundary manifest (0.0.72). As soon as the dev channel moves beyond the supported version, every MCP mutation is rejected and the success-path test is guaranteed to fail.

The security version gate is behaving correctly and must not be weakened. The E2E lane needs semantics that distinguish an expected unsupported-version rejection from an actual MCP compatibility regression.

Expected behavior: the explicit dev lane produces actionable compatibility evidence. When dev is outside the reviewed support boundary, it should verify and report the fail-closed mismatch intentionally rather than fail later because zero success-path mutations completed. Full MCP lifecycle assertions should run only after the dev runtime, credential manifest, and supported version boundary have been deliberately reviewed and aligned.

Actual behavior: all three agent scenarios fail the shared concurrency assertion because both add attempts are rejected by the exact-version gate.

Reproduction Steps

  1. Dispatch .github/workflows/e2e.yaml on main with jobs=mcp-bridge-dev.
  2. Observe that scripts/install-openshell.sh installs the current moving dev release (0.0.78-dev.6 in run 28909889309).
  3. Observe both concurrent nemoclaw <sandbox> mcp add ... attempts fail for OpenClaw, Hermes, and DeepAgents.
  4. Observe test/e2e/live/mcp-bridge.test.ts fail at the assertion requiring exactly one successful attempt.

Environment

  • Workflow: E2E (workflow_dispatch)
  • Run: 28909889309
  • Main SHA: c1c213861254ced036a45afa8722326718bc390b
  • Runner: GitHub-hosted Ubuntu 24.04 x86_64
  • Node.js: 22.23.1
  • Supported OpenShell: 0.0.72
  • Installed OpenShell dev artifact: 0.0.78-dev.6+ga7271169

Debug Output

CI-only E2E contract failure. Job logs and sanitized artifacts are attached to the linked workflow run. The supported stable MCP lane passed on the same main SHA.

Logs

OpenShell credential boundary runtime version check failed: expected 0.0.72, actual 0.0.78-dev.6+ga7271169 (version mismatch). Install OpenShell 0.0.72, or point NEMOCLAW_OPENSHELL_BIN to that version, then retry.

AssertionError: expected [] to have a length of 1 but got +0
  at assertConcurrentAddSerialized (test/e2e/live/mcp-bridge.test.ts:450)

Related Work

  • PR #5876 introduced the stable and explicit dev MCP lanes.
  • PR #6261 added the exact host OpenShell version gate.
  • Issue #6256 tracks the broader credential-boundary runtime attestation requirement.

Acceptance Criteria

  • The exact credential-boundary version gate remains fail closed.
  • mcp-bridge-dev handles a moving, unsupported OpenShell version as an explicit compatibility result instead of running success-path assertions that cannot pass.
  • Full dev MCP lifecycle assertions run only when the dev artifact and reviewed credential manifest/support boundary are aligned.
  • Workflow contract tests cover both the expected mismatch path and the aligned-runtime success path.
  • The stable mcp-bridge release-evidence lane remains unchanged and green.

Checklist

  • I confirmed this bug is reproducible
  • I searched existing issues and this is not a duplicate

Activity

  1. apurvvkumaria commented on Jul 8, 2026

    @apurvvkumaria
    CollaboratorAuthor

    Causality update

    This failure is pinpointed and deterministic; the prior green E2E history was not running this explicit-only lane.

    • PR #5876, merge bddbb3e2418766015b931829571202f443a788f1, introduced mcp-bridge-dev as moving OpenShell-dev compatibility evidence. Its workflow condition requires explicit selection, so scheduled/default E2E runs skip it.
    • The dev lane was not consistently green before this incident: OpenShell 0.0.76-dev.2 passed in run 28620518858, followed by dev-lane failures in run 28628019985 and run 28671909610. PR feat(mcp): add OpenShell-managed MCP servers #5876's final description records the moving-dev incompatibility and explicitly excludes the dev lane from release evidence.
    • PR #6261, merge f0d25491cacb430026d4e0fe6d85ba07a182b2f5, added the exact, uncached host openshell --version gate before every MCP provider/credential mutation. The reviewed manifest requires OpenShell 0.0.72.
    • The first selected main run after fix(mcp): reconcile Hermes runtime state #6261, run 28839573992, installed 0.0.78-dev.5 and failed on the exact-version mismatch. Run 28909889309 repeated the same failure with 0.0.78-dev.6; all six MCP-add attempts were rejected before exercising MCP behavior.
    • The stable mcp-bridge lane passed on the same main SHA as run 28909889309, confirming this is not a supported-runtime MCP regression.

    Therefore, the present failure is primarily the interaction between #6261's correct fail-closed version enforcement and #5876's success-path test against a moving, unsupported dev runtime. The version gate must remain fail closed; this issue should repair the explicit dev lane's contract rather than weaken the security boundary.

  2. self-assigned this
    on Jul 8, 2026
  3. added a commit that references this issue on Jul 8, 2026
    f64d2e7
  4. added a commit that references this issue on Jul 12, 2026
    7c3114e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions