Skip to content

chore: link MCP gateway transport QA coverage#97609

Merged
RomneyDa merged 1 commit into
mainfrom
dallin/qa-mcp-transport-bridge
Jun 29, 2026
Merged

chore: link MCP gateway transport QA coverage#97609
RomneyDa merged 1 commit into
mainfrom
dallin/qa-mcp-transport-bridge

Conversation

@RomneyDa

@RomneyDa RomneyDa commented Jun 29, 2026

Copy link
Copy Markdown
Member

What Problem This Solves

The QA scenario inventory did not link existing Gateway/MCP transport evidence for the WebSocket connect request, protocol range, and startup retry behavior used by MCP channel bridge clients.

Why This Change Was Made

Adds a native QA scenario wrapper in qa/scenarios/runtime/mcp-gateway-connect-startup-retry.yaml with primary coverage for existing IDs only: gateway.connect-request, gateway.protocol-version-negotiation, and gateway.startup-retry.

It also finishes the script-to-QA migration for the MCP channel bridge helpers: the MCP Docker client and shared MCP fixture now live under test/e2e/qa-lab/runtime, while the shell runner remains in scripts/e2e as Docker orchestration. The standalone MCP connect-timeout and WebSocket-open scripts/tests are deleted.

Non-goal: no taxonomy changes, and no primary claim for anthropic.mcp-tool-bridge because these tests do not exercise the Anthropic Claude CLI bridge path.

User Impact

Operators get more accurate QA evidence for existing Gateway WebSocket coverage IDs without extra script-owned helper paths. The Docker MCP channel smoke keeps the same shell entrypoint, but its TypeScript assertions now live with the QA Lab E2E fixtures.

Evidence

  • node scripts/run-vitest.mjs test/e2e/qa-lab/runtime/mcp-gateway-transport.e2e.test.ts test/scripts/cron-mcp-cleanup-docker-client.test.ts test/scripts/test-projects.test.ts extensions/qa-lab/src/scenario-catalog.test.ts --reporter=verbose
  • git diff --check
  • pnpm openclaw qa suite --provider-mode mock-openai --scenario mcp-gateway-connect-startup-retry --output-dir .artifacts/qa-e2e/mcp-gateway-connect-startup-retry-qa-fixture-split
  • GW_URL= GW_TOKEN= node --import tsx test/e2e/qa-lab/runtime/mcp-channels-docker-client.ts (expected missing GW_URL after module imports)
  • .agents/skills/autoreview/scripts/autoreview --mode local

@openclaw-barnacle openclaw-barnacle Bot added scripts Repository scripts extensions: qa-lab size: M maintainer Maintainer-authored PR labels Jun 29, 2026
@clawsweeper

clawsweeper Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed June 28, 2026, 10:06 PM ET / 02:06 UTC.

Summary
Adds MCP Gateway QA scenario coverage metadata and moves MCP channel bridge Docker, timeout, and temp-state helpers into QA Lab runtime fixtures while updating changed-test routing.

PR surface: Tests -20, Other -107. Total -127 across 13 files.

Reproducibility: not applicable. this is QA coverage cleanup rather than a bug report. I checked the current-main absence, catalog discovery path, Docker harness mount path, and moved helper call paths instead of reproducing a failing user flow.

Review metrics: 1 noteworthy metric.

  • Gateway coverage IDs: 3 primary IDs linked. The new QA scenario claims existing Gateway connect-request, protocol negotiation, and startup-retry evidence, which is the main maintainer-visible review surface.

Stored data model
Persistent data-model change detected: serialized state: scripts/e2e/mcp-websocket-open.ts. Confirm migration or upgrade compatibility proof before merge.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🌊 off-meta tidepool
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • none.

Next step before merge

  • [P2] The PR has a protected maintainer label and no narrow automated repair target; the remaining action is ordinary maintainer review or landing once required checks are acceptable.

Security
Cleared: No concrete security or supply-chain concern found; the diff touches QA YAML, tests, and local E2E helpers without dependency, workflow, lockfile, secret, or permission changes.

Review details

Best possible solution:

Land the focused QA coverage cleanup after maintainer review and required checks, keeping coverage claims scoped to existing Gateway client tests and shared MCP bridge fixtures.

Do we have a high-confidence way to reproduce the issue?

Not applicable; this is QA coverage cleanup rather than a bug report. I checked the current-main absence, catalog discovery path, Docker harness mount path, and moved helper call paths instead of reproducing a failing user flow.

Is this the best way to solve the issue?

Yes; linking existing Gateway coverage through native YAML scenario metadata and consolidating one-use helper coverage is narrower than adding new taxonomy IDs or runtime behavior.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 938855082ade.

Label changes

Label justifications:

  • P3: This is low-risk internal QA/catalog and test-helper cleanup with no user-facing runtime behavior change.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🌊 off-meta tidepool and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Not applicable: The external-contributor proof gate does not apply because this is a repository-member PR; the body includes targeted command evidence for the changed QA/test surfaces.
Evidence reviewed

PR surface:

Tests -20, Other -107. Total -127 across 13 files.

View PR surface stats
Area Files Added Removed Net
Source 0 0 0 0
Tests 7 181 201 -20
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 6 44 151 -107
Total 13 225 352 -127

What I checked:

  • Repository policy read and applied: Root AGENTS.md plus scripts/AGENTS.md and test/AGENTS.md were read fully; the relevant guidance was maintainer-label handling, QA YAML scenario rules, script wrapper routing, and fake-timer test placement. (AGENTS.md:1, 938855082ade)
  • Protected PR state: Live PR metadata shows author RomneyDa is a repository member and the PR has the protected maintainer label at head 2aff6ea, so conservative cleanup close is not allowed. (2aff6eaecd54)
  • Scenario coverage claim: The PR's new QA scenario links three existing primary Gateway coverage IDs and points execution at the existing Gateway client test path rather than adding taxonomy or runtime behavior. (qa/scenarios/runtime/mcp-gateway-connect-startup-retry.yaml:7, 2aff6eaecd54)
  • Not already on current main: Current main does not have qa/scenarios/runtime/mcp-gateway-connect-startup-retry.yaml, so the central scenario inventory change is not obsolete. (938855082ade)
  • Current helper state: Current main still wires the MCP harness through standalone script helpers, which the PR consolidates under the QA Lab runtime fixture path. (scripts/e2e/mcp-channels-harness.ts:15, 938855082ade)
  • Scenario catalog discovery: The QA Lab catalog recursively loads nested YAML files under qa/scenarios and excludes only index.yaml, so the new runtime YAML is discoverable without index.yaml changes. (extensions/qa-lab/src/scenario-catalog.ts:421, 938855082ade)

Likely related people:

  • RomneyDa: Authored the recently merged QA Lab Gateway migration in Migrate Tool Search gateway E2E into QA Lab flow #97478, adjacent to this PR's QA scenario and Gateway coverage cleanup. (role: recent area contributor; confidence: high; commits: 4b8a0a8ecf83; files: qa/scenarios/runtime/tool-search-gateway-e2e.yaml, extensions/qa-lab/src/scenario-flow-runner.ts, extensions/qa-lab/src/tool-search-gateway.fixture.ts)
  • giodl73-repo: GitHub commit metadata and blame for the shallow current-main baseline point to this login for the QA catalog and MCP helper files this PR reorganizes. (role: current-main provenance signal; confidence: medium; commits: 9c5ee4676d07; files: extensions/qa-lab/src/scenario-catalog.ts, scripts/e2e/mcp-channels-harness.ts, scripts/e2e/mcp-client-temp-state.ts)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. labels Jun 29, 2026
@RomneyDa
RomneyDa force-pushed the dallin/qa-mcp-transport-bridge branch from 0f9e49c to 69657cf Compare June 29, 2026 01:43
@RomneyDa
RomneyDa force-pushed the dallin/qa-mcp-transport-bridge branch from 69657cf to 2aff6ea Compare June 29, 2026 02:01
@openclaw-barnacle openclaw-barnacle Bot added the docker Docker and sandbox tooling label Jun 29, 2026
@RomneyDa
RomneyDa force-pushed the dallin/qa-mcp-transport-bridge branch from 2aff6ea to 458d009 Compare June 29, 2026 02:09
@RomneyDa
RomneyDa merged commit a202dd0 into main Jun 29, 2026
71 checks passed
@RomneyDa
RomneyDa deleted the dallin/qa-mcp-transport-bridge branch June 29, 2026 02:20
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jun 29, 2026
QiuYuang pushed a commit to QiuYuang/openclaw that referenced this pull request Jul 1, 2026
chenyangjun-xy pushed a commit to chenyangjun-xy/openclaw that referenced this pull request Jul 1, 2026
chenyangjun-xy pushed a commit to chenyangjun-xy/openclaw that referenced this pull request Jul 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docker Docker and sandbox tooling extensions: qa-lab maintainer Maintainer-authored PR P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. scripts Repository scripts size: L status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant