mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-26 12:26:38 -06:00
2e4683ba7f
* fix(qa): bound parallel aggregate script runs Punchcard-Session: amber-workshop-workshop-36 Co-authored-by: Dallin Romney <6581799+RomneyDa@users.noreply.github.com> * test(tui): wait for adopted session frame Punchcard-Session: amber-workshop-workshop-36 --------- Co-authored-by: Dallin Romney <6581799+RomneyDa@users.noreply.github.com>
37 lines
1.7 KiB
YAML
37 lines
1.7 KiB
YAML
title: Gateway WebSocket runtime contracts
|
|
|
|
scenario:
|
|
id: gateway-websocket-protocol-contracts
|
|
surface: runtime
|
|
coverage:
|
|
primary:
|
|
- gateway.runtime-request-validation
|
|
- gateway.version-negotiation
|
|
- gateway.connect-challenge
|
|
- gateway.session-limits
|
|
- gateway.plugin-surface-urls
|
|
objective: Exercise Gateway WebSocket admission, runtime validation, negotiated policy, and scoped plugin surfaces through a real Gateway child.
|
|
successCriteria:
|
|
- The Gateway sends a nonce-bearing timestamped connect challenge before any client request.
|
|
- Invalid first requests close with policy violation, while valid post-connect envelopes reach runtime and method validators.
|
|
- The current protocol range connects and a disjoint range returns structured protocol-mismatch details.
|
|
- Hello policy reports the canonical payload, buffering, and tick limits.
|
|
- A fixture plugin surface URL is scoped, rotates through plugin.surface.refresh, and serves through the refreshed route.
|
|
docsRefs:
|
|
- docs/gateway/protocol.md
|
|
- docs/concepts/qa-e2e-automation.md
|
|
codeRefs:
|
|
- test/e2e/qa-lab/runtime/gateway-websocket-protocol-contracts.ts
|
|
- src/gateway/server/ws-connection/message-handler.ts
|
|
- src/gateway/server/ws-connection/connect-admission.ts
|
|
- src/gateway/server/ws-connection/connect-hello.ts
|
|
- src/gateway/server-methods/nodes.read.ts
|
|
execution:
|
|
kind: script
|
|
parallelSafe: true
|
|
path: test/e2e/qa-lab/runtime/gateway-websocket-protocol-contracts.ts
|
|
summary: Starts a real Gateway child, drives raw WebSocket clients, and fetches a capability-scoped fixture plugin route.
|
|
args:
|
|
- --artifact-base
|
|
- ${outputDir}
|